e325175a9c
Before, there was a single key used as a personal key for all actors. Now, things work like this: - There are 2 keys, each time one is rotated, this way the old key remains valid and we can freely rotate without a risk of race conditions on other servers and end up with our posts being rejected - The keys are explicitly instance-scope keys, all actors refer to them - We add the ActivityPub-Actor header to all activity POSTs we send, to declare for which specific actor our signature applies. Activities and otherwise different payloads may have varying ways to specify attribution; using this header will be a standard uniform way to specify the actor, regardless of payload format. Of course, servers should make sure the actual activity is attributed to the same actor we specified in the header. (This is important with instance-scope keys; for personal keys it's not critical)
238 lines
5 KiB
Text
238 lines
5 KiB
Text
-- This file is part of Vervis.
|
|
--
|
|
-- Written in 2016, 2018, 2019 by fr33domlover <fr33domlover@riseup.net>.
|
|
--
|
|
-- ♡ 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/>.
|
|
|
|
-------------------------------------------------------------------------------
|
|
-- People
|
|
-------------------------------------------------------------------------------
|
|
|
|
Sharer
|
|
ident ShrIdent
|
|
name Text Maybe
|
|
created UTCTime
|
|
|
|
UniqueSharer ident
|
|
|
|
Person
|
|
ident SharerId
|
|
login Text
|
|
passphraseHash ByteString
|
|
email EmailAddress
|
|
verified Bool
|
|
verifiedKey Text
|
|
verifiedKeyCreated UTCTime
|
|
resetPassKey Text
|
|
resetPassKeyCreated UTCTime
|
|
about Text
|
|
|
|
UniquePersonIdent ident
|
|
UniquePersonLogin login
|
|
UniquePersonEmail email
|
|
|
|
VerifKey
|
|
ident URI
|
|
instance InstanceId
|
|
expires UTCTime Maybe
|
|
public PublicKey
|
|
sharer RemoteSharerId Maybe
|
|
|
|
UniqueVerifKey ident
|
|
|
|
RemoteSharer
|
|
ident URI
|
|
instance InstanceId
|
|
|
|
UniqueRemoteSharer ident
|
|
|
|
Instance
|
|
host Text
|
|
|
|
UniqueInstance host
|
|
|
|
SshKey
|
|
ident KyIdent
|
|
person PersonId
|
|
algo ByteString
|
|
content ByteString
|
|
|
|
UniqueSshKey person ident
|
|
|
|
Group
|
|
ident SharerId
|
|
|
|
UniqueGroup ident
|
|
|
|
GroupMember
|
|
person PersonId
|
|
group GroupId
|
|
role GroupRole
|
|
joined UTCTime
|
|
|
|
UniqueGroupMember person group
|
|
|
|
ProjectRole
|
|
ident RlIdent
|
|
sharer SharerId
|
|
desc Text
|
|
|
|
UniqueProjectRole sharer ident
|
|
|
|
ProjectRoleInherit
|
|
parent ProjectRoleId
|
|
child ProjectRoleId
|
|
|
|
UniqueProjectRoleInherit parent child
|
|
|
|
ProjectAccess
|
|
role ProjectRoleId
|
|
op ProjectOperation
|
|
|
|
UniqueProjectAccess role op
|
|
|
|
RepoCollab
|
|
repo RepoId
|
|
person PersonId
|
|
role ProjectRoleId Maybe
|
|
|
|
UniqueRepoCollab repo person
|
|
|
|
ProjectCollab
|
|
project ProjectId
|
|
person PersonId
|
|
role ProjectRoleId Maybe
|
|
|
|
UniqueProjectCollab project person
|
|
|
|
-------------------------------------------------------------------------------
|
|
-- Projects
|
|
-------------------------------------------------------------------------------
|
|
|
|
Project
|
|
ident PrjIdent
|
|
sharer SharerId
|
|
name Text Maybe
|
|
desc Text Maybe
|
|
workflow WorkflowId
|
|
nextTicket Int
|
|
wiki RepoId Maybe
|
|
collabUser ProjectRoleId Maybe
|
|
collabAnon ProjectRoleId Maybe
|
|
|
|
UniqueProject ident sharer
|
|
|
|
Repo
|
|
ident RpIdent
|
|
sharer SharerId
|
|
vcs VersionControlSystem
|
|
project ProjectId Maybe
|
|
desc Text Maybe
|
|
mainBranch Text
|
|
collabUser ProjectRoleId Maybe
|
|
collabAnon ProjectRoleId Maybe
|
|
|
|
UniqueRepo ident sharer
|
|
|
|
Workflow
|
|
sharer SharerId
|
|
ident WflIdent
|
|
name Text Maybe
|
|
desc Text Maybe
|
|
scope WorkflowScope
|
|
|
|
UniqueWorkflow sharer ident
|
|
|
|
WorkflowField
|
|
workflow WorkflowId
|
|
ident FldIdent
|
|
name Text
|
|
desc Text Maybe
|
|
type WorkflowFieldType
|
|
enm WorkflowFieldEnumId Maybe
|
|
required Bool
|
|
constant Bool
|
|
filterNew Bool
|
|
filterTodo Bool
|
|
filterClosed Bool
|
|
|
|
UniqueWorkflowField workflow ident
|
|
|
|
WorkflowFieldEnum
|
|
workflow WorkflowId
|
|
ident EnmIdent
|
|
name Text
|
|
desc Text Maybe
|
|
|
|
UniqueWorkflowFieldEnum workflow ident
|
|
|
|
WorkflowFieldEnumCtor
|
|
enum WorkflowFieldEnumId
|
|
name Text
|
|
desc Text Maybe
|
|
|
|
UniqueWorkflowFieldEnumCtor enum name
|
|
|
|
TicketParamText
|
|
ticket TicketId
|
|
field WorkflowFieldId
|
|
value Text
|
|
|
|
UniqueTicketParamText ticket field
|
|
|
|
TicketParamEnum
|
|
ticket TicketId
|
|
field WorkflowFieldId
|
|
value WorkflowFieldEnumCtorId
|
|
|
|
UniqueTicketParamEnum ticket field value
|
|
|
|
Ticket
|
|
project ProjectId
|
|
number Int
|
|
created UTCTime
|
|
creator PersonId
|
|
title Text
|
|
desc Text -- Assume this is Pandoc Markdown
|
|
assignee PersonId Maybe
|
|
status TicketStatus
|
|
closed UTCTime
|
|
closer PersonId
|
|
discuss DiscussionId
|
|
|
|
UniqueTicket project number
|
|
|
|
TicketDependency
|
|
parent TicketId
|
|
child TicketId
|
|
|
|
UniqueTicketDependency parent child
|
|
|
|
TicketClaimRequest
|
|
person PersonId
|
|
ticket TicketId
|
|
message Text -- Assume this is Pandoc Markdown
|
|
created UTCTime
|
|
|
|
UniqueTicketClaimRequest person ticket
|
|
|
|
Discussion
|
|
nextMessage Int
|
|
|
|
Message
|
|
author PersonId
|
|
created UTCTime
|
|
content Text -- Assume this is Pandoc Markdown
|
|
parent MessageId Maybe
|
|
root DiscussionId
|
|
number Int
|
|
|
|
UniqueMessage root number
|