From f0f58dade886d88fc178b78c04e1a4067ddfda04 Mon Sep 17 00:00:00 2001 From: zotlabs Date: Tue, 6 Mar 2018 15:31:45 -0800 Subject: federated polls: add poll_author which will be necessary for Diaspora federation --- install/schema_mysql.sql | 2 ++ install/schema_postgres.sql | 2 ++ 2 files changed, 4 insertions(+) (limited to 'install') diff --git a/install/schema_mysql.sql b/install/schema_mysql.sql index 5cd04467d..9d60d9eb2 100644 --- a/install/schema_mysql.sql +++ b/install/schema_mysql.sql @@ -969,12 +969,14 @@ CREATE TABLE IF NOT EXISTS `poll` ( `poll_id` int(10) unsigned NOT NULL AUTO_INCREMENT, `poll_guid` varchar(191) NOT NULL, `poll_channel` int(10) unsigned NOT NULL DEFAULT 0 , + `poll_author` varchar(191) NOT NULL, `poll_desc` text NOT NULL, `poll_flags` int(11) NOT NULL DEFAULT 0 , `poll_votes` int(11) NOT NULL DEFAULT 0 , PRIMARY KEY (`poll_id`), KEY `poll_guid` (`poll_guid`), KEY `poll_channel` (`poll_channel`), + KEY `poll_author` (`poll_author`), KEY `poll_flags` (`poll_flags`), KEY `poll_votes` (`poll_votes`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; diff --git a/install/schema_postgres.sql b/install/schema_postgres.sql index 84b6a554a..d8bbd89f4 100644 --- a/install/schema_postgres.sql +++ b/install/schema_postgres.sql @@ -944,6 +944,7 @@ CREATE TABLE "poll" ( "poll_id" serial NOT NULL, "poll_guid" text NOT NULL, "poll_channel" bigint NOT NULL DEFAULT '0', + "poll_author" text NOT NULL, "poll_desc" text NOT NULL, "poll_flags" bigint NOT NULL DEFAULT '0', "poll_votes" bigint NOT NULL DEFAULT '0', @@ -952,6 +953,7 @@ CREATE TABLE "poll" ( ); create index "poll_guid" on poll ("poll_guid"); create index "poll_channel" on poll ("poll_channel"); +create index "poll_author" on poll ("poll_author"); create index "poll_flags" on poll ("poll_flags"); create index "poll_votes" on poll ("poll_votes"); CREATE TABLE "poll_elm" ( -- cgit v1.2.3 From a454aad124f999e59e8bffb625c103b975aef107 Mon Sep 17 00:00:00 2001 From: zotlabs Date: Wed, 7 Mar 2018 15:39:14 -0800 Subject: federated polls: GNU-Social requires us to preserve the original order of the poll answers for use in making a vote, unlike diaspora (which selects by guid) and activitypub (which selects by non-localisable text). --- install/schema_mysql.sql | 4 +++- install/schema_postgres.sql | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) (limited to 'install') diff --git a/install/schema_mysql.sql b/install/schema_mysql.sql index 9d60d9eb2..62cf6a5f2 100644 --- a/install/schema_mysql.sql +++ b/install/schema_mysql.sql @@ -988,10 +988,12 @@ CREATE TABLE IF NOT EXISTS `poll_elm` ( `pelm_desc` text NOT NULL, `pelm_flags` int(11) NOT NULL DEFAULT 0 , `pelm_result` float NOT NULL DEFAULT 0 , + `pelm_order` int(11) NOT NULL DEFAULT 0 , PRIMARY KEY (`pelm_id`), KEY `pelm_guid` (`pelm_guid`), KEY `pelm_poll` (`pelm_poll`), - KEY `pelm_result` (`pelm_result`) + KEY `pelm_result` (`pelm_result`), + KEY `pelm_order` (`pelm_order`), ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `profdef` ( diff --git a/install/schema_postgres.sql b/install/schema_postgres.sql index d8bbd89f4..a4f6e9253 100644 --- a/install/schema_postgres.sql +++ b/install/schema_postgres.sql @@ -963,11 +963,13 @@ CREATE TABLE "poll_elm" ( "pelm_desc" text NOT NULL, "pelm_flags" bigint NOT NULL DEFAULT '0', "pelm_result" float NOT NULL DEFAULT '0', + "pelm_order" numeric(6) NOT NULL DEFAULT '0', PRIMARY KEY ("pelm_id") ); create index "pelm_guid" on poll_elm ("pelm_guid"); create index "pelm_poll" on poll_elm ("pelm_poll"); create index "pelm_result" on poll_elm ("pelm_result"); +create index "pelm_order" on poll_elm ("pelm_order"); CREATE TABLE "profdef" ( "id" serial NOT NULL, -- cgit v1.2.3 From 9c02c66ed3838c753f4d50354716abdf0dcc2a6d Mon Sep 17 00:00:00 2001 From: Mario Vavti Date: Fri, 9 Mar 2018 09:17:57 +0100 Subject: remove redundant comma --- install/schema_mysql.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'install') diff --git a/install/schema_mysql.sql b/install/schema_mysql.sql index 62cf6a5f2..1f396ee0e 100644 --- a/install/schema_mysql.sql +++ b/install/schema_mysql.sql @@ -993,7 +993,7 @@ CREATE TABLE IF NOT EXISTS `poll_elm` ( KEY `pelm_guid` (`pelm_guid`), KEY `pelm_poll` (`pelm_poll`), KEY `pelm_result` (`pelm_result`), - KEY `pelm_order` (`pelm_order`), + KEY `pelm_order` (`pelm_order`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `profdef` ( -- cgit v1.2.3 From ade11568f9dc094b124a442914d107cd3235f6e8 Mon Sep 17 00:00:00 2001 From: Mario Vavti Date: Sun, 11 Mar 2018 13:53:15 +0100 Subject: update mysql schema --- install/schema_mysql.sql | 3 --- 1 file changed, 3 deletions(-) (limited to 'install') diff --git a/install/schema_mysql.sql b/install/schema_mysql.sql index 1f396ee0e..0d098d661 100644 --- a/install/schema_mysql.sql +++ b/install/schema_mysql.sql @@ -659,13 +659,10 @@ CREATE TABLE IF NOT EXISTS `item` ( KEY `uid_item_retained` (`uid`, `item_retained`), KEY `uid_item_private` (`uid`, `item_private`), KEY `uid_resource_type` (`uid`, `resource_type`), - KEY `aid` (`aid`), KEY `owner_xchan` (`owner_xchan`), KEY `author_xchan` (`author_xchan`), KEY `resource_id` (`resource_id`), KEY `resource_type` (`resource_type`), - KEY `item_restrict` (`item_restrict`), - KEY `item_flags` (`item_flags`), KEY `commented` (`commented`), KEY `verb` (`verb`), KEY `obj_type` (`obj_type`), -- cgit v1.2.3 From 4915a4efbb5a25668a917a953b8d8c49a3181e1c Mon Sep 17 00:00:00 2001 From: zotlabs Date: Tue, 3 Apr 2018 21:08:40 -0700 Subject: OAuth2 integration --- install/schema_mysql.sql | 52 +++++++++++++++++++++++++++++++++++++++++++ install/schema_postgres.sql | 54 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 106 insertions(+) (limited to 'install') diff --git a/install/schema_mysql.sql b/install/schema_mysql.sql index 0d098d661..bfb49d195 100644 --- a/install/schema_mysql.sql +++ b/install/schema_mysql.sql @@ -1597,3 +1597,55 @@ CREATE TABLE if not exists calendarinstances ( UNIQUE(calendarid, principaluri), UNIQUE(calendarid, share_href) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + + +CREATE TABLE if not exists oauth_clients ( + client_id VARCHAR(80) NOT NULL, + client_secret VARCHAR(80), + redirect_uri VARCHAR(2000), + grant_types VARCHAR(80), + scope VARCHAR(4000), + user_id VARCHAR(80), + PRIMARY KEY (client_id) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE if not exists oauth_access_tokens ( + access_token VARCHAR(40) NOT NULL, + client_id VARCHAR(80) NOT NULL, + user_id VARCHAR(255), + expires TIMESTAMP NOT NULL, + scope VARCHAR(4000), + PRIMARY KEY (access_token) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE if not exists oauth_authorization_codes ( + authorization_code VARCHAR(40) NOT NULL, + client_id VARCHAR(80) NOT NULL, + user_id VARCHAR(255), + redirect_uri VARCHAR(2000), + expires TIMESTAMP NOT NULL, + scope VARCHAR(4000), + id_token VARCHAR(1000), + PRIMARY KEY (authorization_code) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE if not exists oauth_refresh_tokens ( + refresh_token VARCHAR(40) NOT NULL, + client_id VARCHAR(80) NOT NULL, + user_id VARCHAR(255), + expires TIMESTAMP NOT NULL, + scope VARCHAR(4000), + PRIMARY KEY (refresh_token) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE if not exists oauth_scopes ( + scope VARCHAR(191) NOT NULL, + is_default TINYINT(1), + PRIMARY KEY (scope) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE if not exists oauth_jwt ( + client_id VARCHAR(80) NOT NULL, + subject VARCHAR(80), + public_key VARCHAR(2000) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; diff --git a/install/schema_postgres.sql b/install/schema_postgres.sql index a4f6e9253..df94712fe 100644 --- a/install/schema_postgres.sql +++ b/install/schema_postgres.sql @@ -1610,3 +1610,57 @@ ALTER TABLE ONLY users CREATE UNIQUE INDEX users_ukey ON users USING btree (username); + + +CREATE TABLE oauth_clients ( + client_id VARCHAR(80) NOT NULL, + client_secret VARCHAR(80), + redirect_uri VARCHAR(2000), + grant_types VARCHAR(80), + scope VARCHAR(4000), + user_id VARCHAR(80), + PRIMARY KEY (client_id) +); + +CREATE TABLE oauth_access_tokens ( + access_token VARCHAR(40) NOT NULL, + client_id VARCHAR(80) NOT NULL, + user_id VARCHAR(255), + expires TIMESTAMP NOT NULL, + scope VARCHAR(4000), + PRIMARY KEY (access_token) +); + +CREATE TABLE oauth_authorization_codes ( + authorization_code VARCHAR(40) NOT NULL, + client_id VARCHAR(80) NOT NULL, + user_id VARCHAR(255), + redirect_uri VARCHAR(2000), + expires TIMESTAMP NOT NULL, + scope VARCHAR(4000), + id_token VARCHAR(1000), + PRIMARY KEY (authorization_code) +); + +CREATE TABLE oauth_refresh_tokens ( + refresh_token VARCHAR(40) NOT NULL, + client_id VARCHAR(80) NOT NULL, + user_id VARCHAR(255), + expires TIMESTAMP NOT NULL, + scope VARCHAR(4000), + PRIMARY KEY (refresh_token) +); + +CREATE TABLE oauth_scopes ( + scope VARCHAR(191) NOT NULL, + is_default SMALLINT, + PRIMARY KEY (scope) +); + +CREATE TABLE oauth_jwt ( + client_id VARCHAR(80) NOT NULL, + subject VARCHAR(80), + public_key VARCHAR(2000) NOT NULL +); + + -- cgit v1.2.3 From 43e55eb9a6cb66ad040064fca8b8296bcd298a03 Mon Sep 17 00:00:00 2001 From: zotlabs Date: Mon, 16 Apr 2018 21:40:43 -0700 Subject: Active channels information is a bit imprecise. Provide a higher accuracy method. This will require a transition period --- install/schema_mysql.sql | 2 ++ install/schema_postgres.sql | 2 ++ 2 files changed, 4 insertions(+) (limited to 'install') diff --git a/install/schema_mysql.sql b/install/schema_mysql.sql index bfb49d195..1e91619e3 100644 --- a/install/schema_mysql.sql +++ b/install/schema_mysql.sql @@ -259,6 +259,7 @@ CREATE TABLE IF NOT EXISTS `channel` ( `channel_dirdate` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `channel_lastpost` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `channel_deleted` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', + `channel_active` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `channel_max_anon_mail` int(10) unsigned NOT NULL DEFAULT 10, `channel_max_friend_req` int(10) unsigned NOT NULL DEFAULT 10, `channel_expire_days` int(11) NOT NULL DEFAULT 0 , @@ -308,6 +309,7 @@ CREATE TABLE IF NOT EXISTS `channel` ( KEY `channel_hash` (`channel_hash`), KEY `channel_expire_days` (`channel_expire_days`), KEY `channel_deleted` (`channel_deleted`), + KEY `channel_active` (`channel_active`), KEY `channel_dirdate` (`channel_dirdate`), KEY `channel_removed` (`channel_removed`), KEY `channel_system` (`channel_system`), diff --git a/install/schema_postgres.sql b/install/schema_postgres.sql index df94712fe..fb845ce9d 100644 --- a/install/schema_postgres.sql +++ b/install/schema_postgres.sql @@ -252,6 +252,7 @@ CREATE TABLE "channel" ( "channel_dirdate" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00', "channel_lastpost" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00', "channel_deleted" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00', + "channel_active" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00', "channel_max_anon_mail" bigint NOT NULL DEFAULT '10', "channel_max_friend_req" bigint NOT NULL DEFAULT '10', "channel_expire_days" bigint NOT NULL DEFAULT '0', @@ -284,6 +285,7 @@ create index "channel_guid" on channel ("channel_guid"); create index "channel_hash" on channel ("channel_hash"); create index "channel_expire_days" on channel ("channel_expire_days"); create index "channel_deleted" on channel ("channel_deleted"); +create index "channel_active" on channel ("channel_active"); create index "channel_dirdate" on channel ("channel_dirdate"); create index "channel_lastpost" on channel ("channel_lastpost"); create index "channel_removed" on channel ("channel_removed"); -- cgit v1.2.3