37 lines
1.6 KiB
MySQL
37 lines
1.6 KiB
MySQL
|
-- The Activitypub activity table
|
||
|
-- All user actions must create a row here.
|
||
|
create table activity (
|
||
|
id serial primary key,
|
||
|
user_id int references user_ on update cascade on delete cascade not null, -- Ensures that the user is set up here.
|
||
|
data jsonb not null,
|
||
|
local boolean not null default true,
|
||
|
published timestamp not null default now(),
|
||
|
updated timestamp
|
||
|
);
|
||
|
|
||
|
-- Making sure that id is unique
|
||
|
create unique index idx_activity_unique_apid on activity ((data ->> 'id'::text));
|
||
|
|
||
|
-- Add federation columns to the two actor tables
|
||
|
alter table user_
|
||
|
-- TODO uniqueness constraints should be added on these 3 columns later
|
||
|
add column actor_id character varying(255) not null default 'changeme', -- This needs to be checked and updated in code, building from the site url if local
|
||
|
add column bio text, -- not on community, already has description
|
||
|
add column local boolean not null default true,
|
||
|
add column private_key text, -- These need to be generated from code
|
||
|
add column public_key text,
|
||
|
add column last_refreshed_at timestamp not null default now() -- Used to re-fetch federated actor periodically
|
||
|
;
|
||
|
|
||
|
-- Community
|
||
|
alter table community
|
||
|
add column actor_id character varying(255) not null default 'changeme', -- This needs to be checked and updated in code, building from the site url if local
|
||
|
add column local boolean not null default true,
|
||
|
add column private_key text, -- These need to be generated from code
|
||
|
add column public_key text,
|
||
|
add column last_refreshed_at timestamp not null default now() -- Used to re-fetch federated actor periodically
|
||
|
;
|
||
|
|
||
|
-- Don't worry about rebuilding the views right now.
|
||
|
|