2016-02-14 10:10:21 +01:00
|
|
|
-- This file is part of Vervis.
|
|
|
|
--
|
2022-06-22 08:19:37 +02:00
|
|
|
-- Written in 2016, 2018, 2019, 2020, 2022
|
|
|
|
-- by fr33domlover <fr33domlover@riseup.net>.
|
2016-02-14 10:10:21 +01:00
|
|
|
--
|
|
|
|
-- ♡ Copying is an act of love. Please copy, reuse and share.
|
|
|
|
--
|
|
|
|
-- The author(s) have dedicated all copyright and related and neighboring
|
|
|
|
-- rights to this software to the public domain worldwide. This software is
|
|
|
|
-- distributed without any warranty.
|
|
|
|
--
|
|
|
|
-- You should have received a copy of the CC0 Public Domain Dedication along
|
|
|
|
-- with this software. If not, see
|
|
|
|
-- <http://creativecommons.org/publicdomain/zero/1.0/>.
|
|
|
|
|
2019-11-06 20:47:50 +01:00
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
-- Instances
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
Instance
|
|
|
|
host Host
|
|
|
|
|
|
|
|
UniqueInstance host
|
|
|
|
|
2019-11-05 05:08:36 +01:00
|
|
|
RemoteObject
|
|
|
|
instance InstanceId
|
|
|
|
ident LocalURI
|
|
|
|
|
|
|
|
UniqueRemoteObject instance ident
|
|
|
|
|
2016-05-24 10:28:57 +02:00
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
-- People
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
|
2022-07-19 14:12:49 +02:00
|
|
|
Actor
|
|
|
|
name Text
|
|
|
|
desc Text
|
|
|
|
createdAt UTCTime
|
|
|
|
inbox InboxId
|
|
|
|
outbox OutboxId
|
|
|
|
followers FollowerSetId
|
|
|
|
|
|
|
|
UniqueActorInbox inbox
|
|
|
|
UniqueActorOutbox outbox
|
|
|
|
UniqueActorFollowers followers
|
|
|
|
|
2016-02-16 12:41:13 +01:00
|
|
|
Sharer
|
2016-05-24 10:34:40 +02:00
|
|
|
ident ShrIdent
|
|
|
|
name Text Maybe
|
2016-08-20 19:32:27 +02:00
|
|
|
created UTCTime
|
2016-02-16 12:41:13 +01:00
|
|
|
|
2016-05-23 22:46:54 +02:00
|
|
|
UniqueSharer ident
|
2016-02-16 12:41:13 +01:00
|
|
|
|
|
|
|
Person
|
2018-04-01 05:02:35 +02:00
|
|
|
ident SharerId
|
|
|
|
login Text
|
|
|
|
passphraseHash ByteString
|
|
|
|
email EmailAddress
|
|
|
|
verified Bool
|
|
|
|
verifiedKey Text
|
|
|
|
verifiedKeyCreated UTCTime
|
|
|
|
resetPassKey Text
|
|
|
|
resetPassKeyCreated UTCTime
|
2019-01-27 00:39:13 +01:00
|
|
|
about Text
|
2019-06-09 15:16:32 +02:00
|
|
|
inbox InboxId
|
2019-06-15 20:51:26 +02:00
|
|
|
outbox OutboxId
|
2019-09-09 02:27:45 +02:00
|
|
|
followers FollowerSetId
|
2016-02-16 12:41:13 +01:00
|
|
|
|
|
|
|
UniquePersonIdent ident
|
|
|
|
UniquePersonLogin login
|
2018-04-11 13:09:42 +02:00
|
|
|
UniquePersonEmail email
|
2019-06-09 17:56:42 +02:00
|
|
|
UniquePersonInbox inbox
|
2019-06-15 20:51:26 +02:00
|
|
|
UniquePersonOutbox outbox
|
2019-09-09 02:27:45 +02:00
|
|
|
UniquePersonFollowers followers
|
2019-06-15 20:51:26 +02:00
|
|
|
|
|
|
|
Outbox
|
2016-02-16 12:41:13 +01:00
|
|
|
|
2019-03-28 22:08:30 +01:00
|
|
|
OutboxItem
|
2019-06-15 20:51:26 +02:00
|
|
|
outbox OutboxId
|
2019-06-29 05:19:00 +02:00
|
|
|
activity PersistJSONObject
|
2019-03-28 22:08:30 +01:00
|
|
|
published UTCTime
|
|
|
|
|
2019-06-09 15:16:32 +02:00
|
|
|
Inbox
|
|
|
|
|
2019-05-05 12:20:55 +02:00
|
|
|
InboxItem
|
2019-05-22 23:50:30 +02:00
|
|
|
unread Bool
|
2019-05-05 12:20:55 +02:00
|
|
|
|
2019-04-11 15:44:44 +02:00
|
|
|
InboxItemLocal
|
2019-06-09 15:16:32 +02:00
|
|
|
inbox InboxId
|
2019-04-11 15:44:44 +02:00
|
|
|
activity OutboxItemId
|
2019-05-05 12:20:55 +02:00
|
|
|
item InboxItemId
|
2019-04-11 15:44:44 +02:00
|
|
|
|
2019-06-09 15:16:32 +02:00
|
|
|
UniqueInboxItemLocal inbox activity
|
2019-05-05 12:20:55 +02:00
|
|
|
UniqueInboxItemLocalItem item
|
2019-04-11 15:44:44 +02:00
|
|
|
|
2019-04-23 04:57:53 +02:00
|
|
|
RemoteActivity
|
2019-11-05 05:08:36 +01:00
|
|
|
ident RemoteObjectId
|
2019-04-23 04:57:53 +02:00
|
|
|
content PersistJSONObject
|
|
|
|
received UTCTime
|
|
|
|
|
2019-11-05 05:08:36 +01:00
|
|
|
UniqueRemoteActivity ident
|
2019-04-23 04:57:53 +02:00
|
|
|
|
|
|
|
InboxItemRemote
|
2019-06-09 15:16:32 +02:00
|
|
|
inbox InboxId
|
2019-04-23 04:57:53 +02:00
|
|
|
activity RemoteActivityId
|
2019-05-05 12:20:55 +02:00
|
|
|
item InboxItemId
|
2019-04-23 04:57:53 +02:00
|
|
|
|
2019-06-09 15:16:32 +02:00
|
|
|
UniqueInboxItemRemote inbox activity
|
2019-05-05 12:20:55 +02:00
|
|
|
UniqueInboxItemRemoteItem item
|
2019-04-23 04:57:53 +02:00
|
|
|
|
2019-04-16 16:27:50 +02:00
|
|
|
UnlinkedDelivery
|
2019-05-02 11:31:56 +02:00
|
|
|
recipient UnfetchedRemoteActorId
|
|
|
|
activity OutboxItemId
|
|
|
|
forwarding Bool
|
|
|
|
running Bool
|
2019-04-16 16:27:50 +02:00
|
|
|
|
|
|
|
UniqueUnlinkedDelivery recipient activity
|
|
|
|
|
|
|
|
Delivery
|
2019-05-02 11:31:56 +02:00
|
|
|
recipient RemoteActorId
|
|
|
|
activity OutboxItemId
|
|
|
|
forwarding Bool
|
|
|
|
running Bool
|
2019-04-16 16:27:50 +02:00
|
|
|
|
|
|
|
UniqueDelivery recipient activity
|
|
|
|
|
2019-05-03 23:04:53 +02:00
|
|
|
Forwarding
|
|
|
|
recipient RemoteActorId
|
|
|
|
activity RemoteActivityId
|
|
|
|
activityRaw ByteString
|
|
|
|
signature ByteString
|
|
|
|
running Bool
|
|
|
|
|
|
|
|
UniqueForwarding recipient activity
|
|
|
|
|
2020-05-13 15:06:28 +02:00
|
|
|
ForwarderSharer
|
|
|
|
task ForwardingId
|
|
|
|
sender SharerId
|
|
|
|
|
|
|
|
UniqueForwarderSharer task
|
|
|
|
|
|
|
|
ForwarderProject
|
|
|
|
task ForwardingId
|
|
|
|
sender ProjectId
|
|
|
|
|
|
|
|
UniqueForwarderProject task
|
|
|
|
|
2020-05-25 15:36:34 +02:00
|
|
|
ForwarderRepo
|
|
|
|
task ForwardingId
|
|
|
|
sender RepoId
|
|
|
|
|
|
|
|
UniqueForwarderRepo task
|
|
|
|
|
2019-02-03 14:58:14 +01:00
|
|
|
VerifKey
|
2019-07-23 15:59:48 +02:00
|
|
|
ident LocalRefURI
|
2019-02-06 03:48:23 +01:00
|
|
|
instance InstanceId
|
|
|
|
expires UTCTime Maybe
|
2019-03-11 00:15:42 +01:00
|
|
|
public PublicVerifKey
|
2019-04-12 02:56:27 +02:00
|
|
|
sharer RemoteActorId Maybe
|
2019-02-03 14:58:14 +01:00
|
|
|
|
2019-02-22 00:59:53 +01:00
|
|
|
UniqueVerifKey instance ident
|
2019-02-03 14:58:14 +01:00
|
|
|
|
Record usage of instance keys in the DB
When we verify an HTTP signature,
* If we know the key, check in the DB whether we know the actor lists it. If it
doesn't, and there's room left for keys, HTTP GET the actor and update the DB
accordingly.
* If we know the key but had to update it, do the same, check usage in DB and
update DB if needed
* If we don't know the key, record usage in DB
However,
* If we're GETing a key and discovering it's a shared key, we GET the actor to
verify it lists the key. When we don't know the key at all yet, that's fine
(can be further optimized but it's marginal), but if it's a key we do know,
it means we already know the actor and for now it's enough for us to rely
only on the DB to test usage.
2019-02-19 11:54:55 +01:00
|
|
|
VerifKeySharedUsage
|
|
|
|
key VerifKeyId
|
2019-04-12 02:56:27 +02:00
|
|
|
user RemoteActorId
|
Record usage of instance keys in the DB
When we verify an HTTP signature,
* If we know the key, check in the DB whether we know the actor lists it. If it
doesn't, and there's room left for keys, HTTP GET the actor and update the DB
accordingly.
* If we know the key but had to update it, do the same, check usage in DB and
update DB if needed
* If we don't know the key, record usage in DB
However,
* If we're GETing a key and discovering it's a shared key, we GET the actor to
verify it lists the key. When we don't know the key at all yet, that's fine
(can be further optimized but it's marginal), but if it's a key we do know,
it means we already know the actor and for now it's enough for us to rely
only on the DB to test usage.
2019-02-19 11:54:55 +01:00
|
|
|
|
|
|
|
UniqueVerifKeySharedUsage key user
|
|
|
|
|
2019-04-16 16:27:50 +02:00
|
|
|
UnfetchedRemoteActor
|
2019-11-06 20:47:50 +01:00
|
|
|
ident RemoteObjectId
|
|
|
|
since UTCTime Maybe
|
2019-04-16 16:27:50 +02:00
|
|
|
|
2019-11-06 20:47:50 +01:00
|
|
|
UniqueUnfetchedRemoteActor ident
|
2019-04-16 16:27:50 +02:00
|
|
|
|
2019-04-12 02:56:27 +02:00
|
|
|
RemoteActor
|
2019-11-06 20:47:50 +01:00
|
|
|
ident RemoteObjectId
|
2019-05-21 10:44:11 +02:00
|
|
|
name Text Maybe
|
2019-04-12 03:09:45 +02:00
|
|
|
inbox LocalURI
|
2020-04-11 16:58:38 +02:00
|
|
|
followers LocalURI Maybe
|
|
|
|
errorSince UTCTime Maybe
|
Support remote actors specifying 2 keys, and DB storage of these keys
It's now possible for activities we be attributed to actors that have more than
one key. We allow up to 2 keys. We also store in the DB. Scaling to support any
number of keys is trivial, but I'm limiting to 2 to avoid potential trouble and
because 2 is the actual number we need.
By having 2 keys, and replacing only one of them in each rotation, we avoid
race conditions. With 1 key, the following can happen:
1. We send an activity to another server
2. We rotate our key
3. The server reaches the activity in its processing queue, tries to verify our
request signature, but fails because it can't fetch the key. It's the old
key and we discarded it already, replaced it with the new one
When we use 2 keys, the previous key remains available and other servers have
time to finish processing our requests signed with that key. We can safely
rotate, without worrying about whether the user sent anything right before the
rotation time.
Caveat: With this feature, we allow OTHER servers to rotate freely. It's safe
because it's optional, but it's just Vervis right now. Once Vervis itself
starts using 2 keys, it will be able to rotate freely without race condition
risk, but probably Mastodon etc. won't accept its signatures because of the use
of 2 keys and because they're server-scope keys.
Maybe I can get these features adopted by the fediverse?
2019-02-04 20:38:50 +01:00
|
|
|
|
2019-11-06 20:47:50 +01:00
|
|
|
UniqueRemoteActor ident
|
2019-02-06 03:48:23 +01:00
|
|
|
|
2019-05-18 00:42:01 +02:00
|
|
|
RemoteCollection
|
2019-11-06 20:47:50 +01:00
|
|
|
ident RemoteObjectId
|
2019-05-18 00:42:01 +02:00
|
|
|
|
2019-11-06 20:47:50 +01:00
|
|
|
UniqueRemoteCollection ident
|
2019-05-18 00:42:01 +02:00
|
|
|
|
2019-09-25 12:43:05 +02:00
|
|
|
FollowRemoteRequest
|
|
|
|
person PersonId
|
|
|
|
target FedURI
|
|
|
|
recip FedURI Maybe
|
|
|
|
public Bool
|
|
|
|
activity OutboxItemId
|
|
|
|
|
|
|
|
UniqueFollowRemoteRequest person target
|
|
|
|
UniqueFollowRemoteRequestActivity activity
|
|
|
|
|
|
|
|
FollowRemote
|
|
|
|
person PersonId
|
|
|
|
recip RemoteActorId -- actor managing the followed object
|
|
|
|
target FedURI -- the followed object
|
|
|
|
public Bool
|
|
|
|
follow OutboxItemId
|
|
|
|
accept RemoteActivityId
|
|
|
|
|
|
|
|
UniqueFollowRemote person target
|
|
|
|
UniqueFollowRemoteFollow follow
|
|
|
|
UniqueFollowRemoteAccept accept
|
|
|
|
|
2019-04-11 15:26:57 +02:00
|
|
|
FollowerSet
|
|
|
|
|
|
|
|
Follow
|
|
|
|
person PersonId
|
|
|
|
target FollowerSetId
|
2019-09-09 02:33:36 +02:00
|
|
|
public Bool
|
2019-09-25 12:43:05 +02:00
|
|
|
follow OutboxItemId
|
|
|
|
accept OutboxItemId
|
2019-04-11 15:26:57 +02:00
|
|
|
|
|
|
|
UniqueFollow person target
|
2019-09-25 12:43:05 +02:00
|
|
|
UniqueFollowFollow follow
|
|
|
|
UniqueFollowAccept accept
|
2019-04-11 15:26:57 +02:00
|
|
|
|
|
|
|
RemoteFollow
|
2019-04-12 02:56:27 +02:00
|
|
|
actor RemoteActorId
|
2019-04-11 15:26:57 +02:00
|
|
|
target FollowerSetId
|
2019-09-09 02:33:36 +02:00
|
|
|
public Bool
|
2019-09-25 12:43:05 +02:00
|
|
|
follow RemoteActivityId
|
|
|
|
accept OutboxItemId
|
2019-04-11 15:26:57 +02:00
|
|
|
|
|
|
|
UniqueRemoteFollow actor target
|
2019-09-25 12:43:05 +02:00
|
|
|
UniqueRemoteFollowFollow follow
|
|
|
|
UniqueRemoteFollowAccept accept
|
2019-04-11 15:26:57 +02:00
|
|
|
|
2016-03-06 12:58:48 +01:00
|
|
|
SshKey
|
2016-05-23 22:46:54 +02:00
|
|
|
ident KyIdent
|
2016-03-06 12:58:48 +01:00
|
|
|
person PersonId
|
|
|
|
algo ByteString
|
|
|
|
content ByteString
|
|
|
|
|
2016-05-23 22:46:54 +02:00
|
|
|
UniqueSshKey person ident
|
2016-03-06 12:58:48 +01:00
|
|
|
|
2016-02-16 12:41:13 +01:00
|
|
|
Group
|
|
|
|
ident SharerId
|
|
|
|
|
2016-05-24 10:28:57 +02:00
|
|
|
UniqueGroup ident
|
|
|
|
|
|
|
|
GroupMember
|
|
|
|
person PersonId
|
|
|
|
group GroupId
|
2016-05-25 17:52:15 +02:00
|
|
|
role GroupRole
|
2016-05-26 18:25:23 +02:00
|
|
|
joined UTCTime
|
2016-05-24 10:28:57 +02:00
|
|
|
|
|
|
|
UniqueGroupMember person group
|
|
|
|
|
2019-05-31 17:02:57 +02:00
|
|
|
Role
|
2016-06-01 10:52:14 +02:00
|
|
|
ident RlIdent
|
2016-06-06 19:29:54 +02:00
|
|
|
sharer SharerId
|
2016-06-01 10:52:14 +02:00
|
|
|
desc Text
|
|
|
|
|
2019-05-31 17:02:57 +02:00
|
|
|
UniqueRole sharer ident
|
2016-06-01 10:52:14 +02:00
|
|
|
|
2019-05-31 17:02:57 +02:00
|
|
|
RoleInherit
|
|
|
|
parent RoleId
|
|
|
|
child RoleId
|
2016-06-21 09:35:19 +02:00
|
|
|
|
2019-05-31 17:02:57 +02:00
|
|
|
UniqueRoleInherit parent child
|
2016-06-21 09:35:19 +02:00
|
|
|
|
2019-05-31 17:02:57 +02:00
|
|
|
RoleAccess
|
|
|
|
role RoleId
|
2016-06-01 10:52:14 +02:00
|
|
|
op ProjectOperation
|
|
|
|
|
2019-05-31 17:02:57 +02:00
|
|
|
UniqueRoleAccess role op
|
2016-06-01 10:52:14 +02:00
|
|
|
|
2016-05-24 10:28:57 +02:00
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
-- Projects
|
|
|
|
-------------------------------------------------------------------------------
|
2016-02-16 12:41:13 +01:00
|
|
|
|
|
|
|
Project
|
2022-07-19 14:12:49 +02:00
|
|
|
actor ActorId
|
2016-05-23 22:46:54 +02:00
|
|
|
ident PrjIdent
|
2016-04-30 22:40:33 +02:00
|
|
|
sharer SharerId
|
2019-01-29 23:24:32 +01:00
|
|
|
name Text Maybe
|
|
|
|
desc Text Maybe
|
2016-08-08 21:05:22 +02:00
|
|
|
workflow WorkflowId
|
2016-08-08 20:35:01 +02:00
|
|
|
nextTicket Int
|
2019-01-29 23:24:32 +01:00
|
|
|
wiki RepoId Maybe
|
2019-05-31 17:02:57 +02:00
|
|
|
collabUser RoleId Maybe
|
|
|
|
collabAnon RoleId Maybe
|
2022-07-25 19:15:22 +02:00
|
|
|
create OutboxItemId
|
2016-02-16 12:41:13 +01:00
|
|
|
|
2022-07-25 19:15:22 +02:00
|
|
|
UniqueProjectActor actor
|
|
|
|
UniqueProjectCreate create
|
2016-02-16 12:41:13 +01:00
|
|
|
UniqueProject ident sharer
|
|
|
|
|
|
|
|
Repo
|
2016-05-23 22:46:54 +02:00
|
|
|
ident RpIdent
|
2016-04-12 19:37:31 +02:00
|
|
|
sharer SharerId
|
2016-08-08 20:35:01 +02:00
|
|
|
vcs VersionControlSystem
|
2016-05-03 01:51:53 +02:00
|
|
|
project ProjectId Maybe
|
|
|
|
desc Text Maybe
|
2016-08-08 20:35:01 +02:00
|
|
|
mainBranch Text
|
2019-05-31 17:02:57 +02:00
|
|
|
collabUser RoleId Maybe
|
|
|
|
collabAnon RoleId Maybe
|
2019-09-09 02:27:45 +02:00
|
|
|
inbox InboxId
|
2019-09-11 10:12:20 +02:00
|
|
|
outbox OutboxId
|
2019-09-09 02:27:45 +02:00
|
|
|
followers FollowerSetId
|
2016-02-16 12:41:13 +01:00
|
|
|
|
2016-04-12 19:37:31 +02:00
|
|
|
UniqueRepo ident sharer
|
2019-09-09 02:27:45 +02:00
|
|
|
UniqueRepoInbox inbox
|
2019-09-11 10:12:20 +02:00
|
|
|
UniqueRepoOutbox outbox
|
2019-09-09 02:27:45 +02:00
|
|
|
UniqueRepoFollowers followers
|
2016-02-16 12:41:13 +01:00
|
|
|
|
2016-08-08 13:05:19 +02:00
|
|
|
Workflow
|
|
|
|
sharer SharerId
|
|
|
|
ident WflIdent
|
|
|
|
name Text Maybe
|
|
|
|
desc Text Maybe
|
2016-09-01 19:40:02 +02:00
|
|
|
scope WorkflowScope
|
2016-08-08 13:05:19 +02:00
|
|
|
|
|
|
|
UniqueWorkflow sharer ident
|
|
|
|
|
2016-08-08 16:01:06 +02:00
|
|
|
WorkflowField
|
2016-08-11 11:27:30 +02:00
|
|
|
workflow WorkflowId
|
|
|
|
ident FldIdent
|
|
|
|
name Text
|
2020-01-05 13:04:17 +01:00
|
|
|
desc Text Maybe
|
2016-08-11 11:27:30 +02:00
|
|
|
type WorkflowFieldType
|
2020-01-05 13:04:17 +01:00
|
|
|
enm WorkflowEnumId Maybe
|
2016-08-11 11:27:30 +02:00
|
|
|
required Bool
|
|
|
|
constant Bool
|
|
|
|
filterNew Bool
|
|
|
|
filterTodo Bool
|
|
|
|
filterClosed Bool
|
2020-01-16 11:29:47 +01:00
|
|
|
color Int Maybe
|
2016-08-08 16:01:06 +02:00
|
|
|
|
|
|
|
UniqueWorkflowField workflow ident
|
|
|
|
|
2020-01-05 13:04:17 +01:00
|
|
|
WorkflowEnum
|
2016-08-08 16:48:38 +02:00
|
|
|
workflow WorkflowId
|
|
|
|
ident EnmIdent
|
|
|
|
name Text
|
|
|
|
desc Text Maybe
|
|
|
|
|
2020-01-05 13:04:17 +01:00
|
|
|
UniqueWorkflowEnum workflow ident
|
2016-08-08 16:48:38 +02:00
|
|
|
|
2020-01-05 13:04:17 +01:00
|
|
|
WorkflowEnumCtor
|
|
|
|
enum WorkflowEnumId
|
2016-08-08 19:05:09 +02:00
|
|
|
name Text
|
2020-01-05 13:04:17 +01:00
|
|
|
desc Text Maybe
|
2016-08-08 19:05:09 +02:00
|
|
|
|
2020-01-05 13:04:17 +01:00
|
|
|
UniqueWorkflowEnumCtor enum name
|
2016-08-08 19:05:09 +02:00
|
|
|
|
2016-08-08 22:51:58 +02:00
|
|
|
TicketParamText
|
|
|
|
ticket TicketId
|
|
|
|
field WorkflowFieldId
|
|
|
|
value Text
|
|
|
|
|
|
|
|
UniqueTicketParamText ticket field
|
|
|
|
|
2016-08-09 13:36:14 +02:00
|
|
|
TicketParamEnum
|
|
|
|
ticket TicketId
|
|
|
|
field WorkflowFieldId
|
2020-01-05 13:04:17 +01:00
|
|
|
value WorkflowEnumCtorId
|
2016-08-09 13:36:14 +02:00
|
|
|
|
|
|
|
UniqueTicketParamEnum ticket field value
|
|
|
|
|
2020-01-05 15:33:10 +01:00
|
|
|
TicketParamClass
|
|
|
|
ticket TicketId
|
|
|
|
field WorkflowFieldId
|
|
|
|
|
|
|
|
UniqueTicketParamClass ticket field
|
|
|
|
|
2016-04-30 22:40:33 +02:00
|
|
|
Ticket
|
2020-02-03 16:44:16 +01:00
|
|
|
number Int Maybe
|
2019-06-03 14:45:02 +02:00
|
|
|
created UTCTime
|
2019-06-17 21:55:03 +02:00
|
|
|
title Text -- HTML
|
2019-06-03 14:45:02 +02:00
|
|
|
source Text -- Pandoc Markdown
|
|
|
|
description Text -- HTML
|
|
|
|
assignee PersonId Maybe
|
|
|
|
status TicketStatus
|
2016-04-30 22:40:33 +02:00
|
|
|
|
2020-02-03 16:44:16 +01:00
|
|
|
-- UniqueTicket project number
|
2016-05-17 22:34:22 +02:00
|
|
|
|
2020-02-05 13:08:39 +01:00
|
|
|
LocalTicket
|
|
|
|
ticket TicketId
|
|
|
|
discuss DiscussionId
|
|
|
|
followers FollowerSetId
|
|
|
|
|
|
|
|
UniqueLocalTicket ticket
|
|
|
|
UniqueLocalTicketDiscussion discuss
|
|
|
|
UniqueLocalTicketFollowers followers
|
|
|
|
|
2020-04-11 15:57:43 +02:00
|
|
|
RemoteTicket
|
|
|
|
ticket TicketAuthorRemoteId
|
|
|
|
ident RemoteObjectId
|
2020-04-14 20:24:19 +02:00
|
|
|
discuss RemoteDiscussionId
|
2020-04-11 15:57:43 +02:00
|
|
|
|
2020-04-14 20:24:19 +02:00
|
|
|
UniqueRemoteTicket ticket
|
|
|
|
UniqueRemoteTicketIdent ident
|
|
|
|
UniqueRemoteTicketDiscuss discuss
|
2020-04-11 15:57:43 +02:00
|
|
|
|
2020-05-18 12:28:43 +02:00
|
|
|
TicketContextLocal
|
2020-02-06 05:18:19 +01:00
|
|
|
ticket TicketId
|
|
|
|
accept OutboxItemId
|
|
|
|
|
2020-05-18 12:28:43 +02:00
|
|
|
UniqueTicketContextLocal ticket
|
|
|
|
UniqueTicketContextLocalAccept accept
|
|
|
|
|
|
|
|
TicketProjectLocal
|
|
|
|
context TicketContextLocalId
|
|
|
|
project ProjectId
|
|
|
|
|
|
|
|
UniqueTicketProjectLocal context
|
|
|
|
|
|
|
|
TicketRepoLocal
|
|
|
|
context TicketContextLocalId
|
|
|
|
repo RepoId
|
2020-05-25 14:39:25 +02:00
|
|
|
branch Text Maybe
|
2020-05-18 12:28:43 +02:00
|
|
|
|
|
|
|
UniqueTicketRepoLocal context
|
2020-02-06 05:18:19 +01:00
|
|
|
|
2020-02-22 20:45:27 +01:00
|
|
|
TicketProjectRemote
|
|
|
|
ticket TicketAuthorLocalId
|
|
|
|
tracker RemoteActorId
|
|
|
|
project RemoteObjectId Maybe -- specify if not same as tracker
|
2020-07-22 15:00:48 +02:00
|
|
|
-- For MRs it may be either a remote repo or
|
|
|
|
-- a branch of it
|
2020-02-22 20:45:27 +01:00
|
|
|
|
|
|
|
UniqueTicketProjectRemote ticket
|
|
|
|
|
2020-04-08 19:02:04 +02:00
|
|
|
TicketProjectRemoteAccept
|
|
|
|
ticket TicketProjectRemoteId
|
|
|
|
activity RemoteActivityId
|
|
|
|
accept Bool
|
|
|
|
result LocalURI Maybe
|
|
|
|
|
|
|
|
UniqueTicketProjectRemoteAccept ticket
|
|
|
|
UniqueTicketProjectRemoteAcceptActivity activity
|
|
|
|
|
2019-06-07 06:26:32 +02:00
|
|
|
TicketAuthorLocal
|
2020-02-06 04:41:16 +01:00
|
|
|
ticket LocalTicketId
|
2019-06-07 06:26:32 +02:00
|
|
|
author PersonId
|
2020-02-08 10:35:35 +01:00
|
|
|
open OutboxItemId
|
2019-06-07 06:26:32 +02:00
|
|
|
|
2020-02-08 10:35:35 +01:00
|
|
|
UniqueTicketAuthorLocal ticket
|
|
|
|
UniqueTicketAuthorLocalOpen open
|
2019-06-07 06:26:32 +02:00
|
|
|
|
|
|
|
TicketAuthorRemote
|
2020-05-18 12:28:43 +02:00
|
|
|
ticket TicketContextLocalId
|
2019-06-07 06:26:32 +02:00
|
|
|
author RemoteActorId
|
2020-02-08 10:35:35 +01:00
|
|
|
open RemoteActivityId
|
2019-06-07 06:26:32 +02:00
|
|
|
|
2020-02-08 10:35:35 +01:00
|
|
|
UniqueTicketAuthorRemote ticket
|
|
|
|
UniqueTicketAuthorRemoteOpen open
|
2019-06-07 06:26:32 +02:00
|
|
|
|
2020-02-08 12:49:30 +01:00
|
|
|
TicketUnderProject
|
2020-05-18 12:28:43 +02:00
|
|
|
project TicketContextLocalId
|
2020-02-08 12:49:30 +01:00
|
|
|
author TicketAuthorLocalId
|
|
|
|
|
2020-02-08 16:24:36 +01:00
|
|
|
UniqueTicketUnderProjectProject project
|
|
|
|
UniqueTicketUnderProjectAuthor author
|
2020-02-08 12:49:30 +01:00
|
|
|
|
2020-08-13 12:26:20 +02:00
|
|
|
Bundle
|
|
|
|
ticket TicketId
|
|
|
|
|
2020-05-24 11:17:49 +02:00
|
|
|
Patch
|
2020-08-13 12:26:20 +02:00
|
|
|
bundle BundleId
|
2020-05-25 11:40:48 +02:00
|
|
|
created UTCTime
|
2020-08-14 23:16:33 +02:00
|
|
|
type PatchMediaType
|
2020-05-24 11:17:49 +02:00
|
|
|
content Text
|
|
|
|
|
2020-06-21 10:02:05 +02:00
|
|
|
TicketDependencyOffer
|
|
|
|
offer InboxItemId
|
2020-06-18 12:38:04 +02:00
|
|
|
child LocalTicketId
|
|
|
|
|
2020-06-21 10:02:05 +02:00
|
|
|
UniqueTicketDependencyOffer offer
|
|
|
|
|
|
|
|
RemoteTicketDependency
|
|
|
|
ident RemoteObjectId
|
|
|
|
child LocalTicketId
|
|
|
|
accept RemoteActivityId
|
|
|
|
|
2020-06-18 12:38:04 +02:00
|
|
|
UniqueRemoteTicketDependency ident
|
2020-06-21 10:02:05 +02:00
|
|
|
UniqueRemoteTicketDependencyAccept accept
|
2020-06-18 12:38:04 +02:00
|
|
|
|
|
|
|
LocalTicketDependency
|
|
|
|
parent LocalTicketId
|
2019-07-11 17:14:16 +02:00
|
|
|
created UTCTime
|
2020-06-18 12:38:04 +02:00
|
|
|
accept OutboxItemId
|
|
|
|
|
|
|
|
TicketDependencyChildLocal
|
|
|
|
dep LocalTicketDependencyId
|
|
|
|
child LocalTicketId
|
|
|
|
|
|
|
|
UniqueTicketDependencyChildLocal dep
|
|
|
|
|
|
|
|
TicketDependencyChildRemote
|
|
|
|
dep LocalTicketDependencyId
|
|
|
|
child RemoteObjectId
|
|
|
|
|
|
|
|
UniqueTicketDependencyChildRemote dep
|
|
|
|
|
|
|
|
TicketDependencyAuthorLocal
|
|
|
|
dep LocalTicketDependencyId
|
|
|
|
author PersonId
|
|
|
|
open OutboxItemId
|
|
|
|
|
|
|
|
UniqueTicketDependencyAuthorLocal dep
|
|
|
|
UniqueTicketDependencyAuthorLocalOpen open
|
|
|
|
|
|
|
|
TicketDependencyAuthorRemote
|
|
|
|
dep LocalTicketDependencyId
|
|
|
|
author RemoteActorId
|
|
|
|
open RemoteActivityId
|
2016-06-07 22:16:15 +02:00
|
|
|
|
2020-06-18 12:38:04 +02:00
|
|
|
UniqueTicketDependencyAuthorRemote dep
|
|
|
|
UniqueTicketDependencyAuthorRemoteOpen open
|
2016-06-07 22:16:15 +02:00
|
|
|
|
2016-06-07 12:01:57 +02:00
|
|
|
TicketClaimRequest
|
|
|
|
person PersonId
|
|
|
|
ticket TicketId
|
2016-06-07 18:31:55 +02:00
|
|
|
message Text -- Assume this is Pandoc Markdown
|
2016-06-07 12:01:57 +02:00
|
|
|
created UTCTime
|
|
|
|
|
|
|
|
UniqueTicketClaimRequest person ticket
|
|
|
|
|
2020-07-28 11:35:27 +02:00
|
|
|
TicketResolve
|
|
|
|
ticket LocalTicketId
|
|
|
|
accept OutboxItemId
|
|
|
|
|
|
|
|
UniqueTicketResolve ticket
|
|
|
|
UniqueTicketResolveAccept accept
|
|
|
|
|
|
|
|
TicketResolveLocal
|
|
|
|
ticket TicketResolveId
|
|
|
|
activity OutboxItemId
|
|
|
|
|
|
|
|
UniqueTicketResolveLocal ticket
|
|
|
|
UniqueTicketResolveLocalActivity activity
|
|
|
|
|
|
|
|
TicketResolveRemote
|
|
|
|
ticket TicketResolveId
|
|
|
|
activity RemoteActivityId
|
|
|
|
actor RemoteActorId
|
|
|
|
|
|
|
|
UniqueTicketResolveRemote ticket
|
|
|
|
UniqueTicketResolveRemoteActivity activity
|
|
|
|
|
2016-05-17 22:34:22 +02:00
|
|
|
Discussion
|
|
|
|
|
2019-03-22 21:46:42 +01:00
|
|
|
RemoteDiscussion
|
2020-02-08 11:55:19 +01:00
|
|
|
ident RemoteObjectId
|
|
|
|
discuss DiscussionId
|
2019-03-22 21:46:42 +01:00
|
|
|
|
2020-02-08 11:55:19 +01:00
|
|
|
UniqueRemoteDiscussionIdent ident
|
|
|
|
UniqueRemoteDiscussion discuss
|
2019-03-22 21:46:42 +01:00
|
|
|
|
2016-05-17 22:34:22 +02:00
|
|
|
Message
|
|
|
|
created UTCTime
|
2019-06-02 14:04:35 +02:00
|
|
|
source Text -- Pandoc Markdown
|
2019-06-02 16:41:51 +02:00
|
|
|
content Text -- HTML
|
2016-05-17 22:34:22 +02:00
|
|
|
parent MessageId Maybe
|
|
|
|
root DiscussionId
|
2019-02-12 12:46:12 +01:00
|
|
|
|
2019-03-20 09:07:37 +01:00
|
|
|
LocalMessage
|
2019-03-28 22:08:30 +01:00
|
|
|
author PersonId
|
|
|
|
rest MessageId
|
2019-05-25 05:23:57 +02:00
|
|
|
create OutboxItemId
|
2019-03-28 22:08:30 +01:00
|
|
|
unlinkedParent FedURI Maybe
|
2019-03-20 09:07:37 +01:00
|
|
|
|
|
|
|
UniqueLocalMessage rest
|
2019-05-25 14:59:54 +02:00
|
|
|
UniqueLocalMessageCreate create
|
2019-03-20 09:07:37 +01:00
|
|
|
|
|
|
|
RemoteMessage
|
2019-04-12 02:56:27 +02:00
|
|
|
author RemoteActorId
|
2020-02-10 15:07:00 +01:00
|
|
|
ident RemoteObjectId
|
2019-03-21 23:57:15 +01:00
|
|
|
rest MessageId
|
2019-04-23 04:57:53 +02:00
|
|
|
create RemoteActivityId
|
2019-03-22 21:46:42 +01:00
|
|
|
lostParent FedURI Maybe
|
2019-03-21 23:57:15 +01:00
|
|
|
|
2020-02-10 15:07:00 +01:00
|
|
|
UniqueRemoteMessageIdent ident
|
|
|
|
UniqueRemoteMessage rest
|
2019-06-09 20:41:37 +02:00
|
|
|
UniqueRemoteMessageCreate create
|
2019-03-20 09:07:37 +01:00
|
|
|
|
2022-06-22 08:19:37 +02:00
|
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
-- Collaborators
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
Collab
|
|
|
|
|
|
|
|
-------------------------------- Collab topic --------------------------------
|
|
|
|
|
|
|
|
CollabRoleLocal
|
|
|
|
collab CollabId
|
|
|
|
role RoleId
|
|
|
|
|
|
|
|
UniqueCollabRoleLocal collab
|
|
|
|
|
|
|
|
CollabTopicLocalRepo
|
|
|
|
collab CollabId
|
2019-02-12 12:46:12 +01:00
|
|
|
repo RepoId
|
|
|
|
|
2022-06-22 08:19:37 +02:00
|
|
|
UniqueCollabTopicLocalRepo collab
|
2019-02-12 12:46:12 +01:00
|
|
|
|
2022-06-22 08:19:37 +02:00
|
|
|
CollabTopicLocalProject
|
|
|
|
collab CollabId
|
2019-02-12 12:46:12 +01:00
|
|
|
project ProjectId
|
|
|
|
|
2022-06-22 08:19:37 +02:00
|
|
|
UniqueCollabTopicLocalProject collab
|
|
|
|
|
|
|
|
CollabTopicRemote
|
|
|
|
collab CollabId
|
|
|
|
topic RemoteObjectId
|
|
|
|
role LocalURI Maybe
|
|
|
|
|
|
|
|
UniqueCollabTopicRemote collab
|
|
|
|
|
|
|
|
-------------------------------- Collab sender -------------------------------
|
|
|
|
|
|
|
|
CollabSenderLocal
|
|
|
|
collab CollabId
|
|
|
|
activity OutboxItemId
|
|
|
|
|
|
|
|
UniqueCollabSenderLocal collab
|
|
|
|
UniqueCollabSenderLocalActivity activity
|
|
|
|
|
|
|
|
CollabSenderRemote
|
|
|
|
collab CollabId
|
|
|
|
actor RemoteActorId
|
|
|
|
activity RemoteActivityId
|
|
|
|
|
|
|
|
UniqueCollabSenderRemote collab
|
|
|
|
UniqueCollabSenderRemoteActivity activity
|
|
|
|
|
|
|
|
-------------------------------- Collab recipient ----------------------------
|
|
|
|
|
|
|
|
CollabRecipLocal
|
|
|
|
collab CollabId
|
|
|
|
person PersonId
|
|
|
|
|
|
|
|
UniqueCollabRecipLocal collab
|
|
|
|
|
|
|
|
CollabRecipRemote
|
|
|
|
collab CollabId
|
|
|
|
actor RemoteActorId
|
|
|
|
|
|
|
|
UniqueCollabRecipRemote collab
|
2022-07-25 19:15:22 +02:00
|
|
|
|
|
|
|
-------------------------------- Collab reason -------------------------------
|
|
|
|
|
|
|
|
CollabFulfillsLocalTopicCreation
|
|
|
|
collab CollabId
|
|
|
|
|
|
|
|
UniqueCollabFulfillsLocalTopicCreation collab
|