Commit graph

56 commits

Author SHA1 Message Date
Pere Lev
5d0f707c55
DB: Allow to record the delegator-Grant sent by people to projects/teams 2023-11-21 20:44:09 +02:00
Pere Lev
7517db9619
Client, UI: Team: Creation, invite/join display, list in personal overview 2023-11-21 18:28:05 +02:00
Pere Lev
8d543c0016
S2S: Group: Implement Create handler, sending back an admin-Grant 2023-11-21 16:52:16 +02:00
Pere Lev
ea7476db9d
C2S: Implement team creation 2023-11-21 15:48:14 +02:00
Pere Lev
2797e5f3be
UI: Team & team members HTML page + AP JSON object 2023-11-21 15:01:51 +02:00
Pere Lev
b420c982c0
UI: Add page for publishing a Resolve with custom ticket and OCAP URIs 2023-11-05 20:41:24 +02:00
Pere Lev
91ed2c82b5
UI: Add reopen-this-ticket button to ticket page 2023-11-05 17:50:55 +02:00
Pere Lev
cbd81d1d0b
C2S, UI: Deck ticket closing button on ticket page
Ticket closing can now be done via the new C2S, and the "Close ticket"
button on TicketR page is back, and uses that new C2S.

S2S, C2S and pseudo-client are implemented for both Deck and Loom, but
the actual button and POST handler are provided here only for Deck. Will
add ones for Loom soon, as needed.
2023-11-05 16:13:09 +02:00
Pere Lev
df6ece2889
UI: Deck: 'Approve' button for accepting invites-to-projects 2023-11-02 22:27:54 +02:00
Pere Lev
47f993d63f
Client: Project UI for adding a component 2023-11-02 18:03:28 +02:00
Pere Lev
fe6f95d497
UI: Deck: Projects list page 2023-11-02 14:48:22 +02:00
Pere Lev
afb83b7761
Add a ProjectCollabLiveR route for use as Grant revocation URI 2023-06-28 22:24:01 +03:00
Pere Lev
5e87dd99d3
DB: Make the Accept unique per CollabFulfillsInvite 2023-06-28 14:18:45 +03:00
Pere Lev
afc45257b4
S2S: topicInvite, projectInvite: If approved, send an Accept 2023-06-28 14:10:09 +03:00
Pere Lev
b2657589dd
Switch Invite/Join/Remove to use resource collabs URI
Until now, the resource object itself would be specified. This no longer
works, because it's unclear whether we're adding/removing a collaborator
or a component.

From now on, adding a collaborator is done by pointing to the resource's
'collaborators' URI, not to the resource itself
2023-06-28 00:30:35 +03:00
Pere Lev
034194f2aa
DB & Vocab: Specify role in Add, store it in Component & Stem 2023-06-27 22:56:52 +03:00
Pere Lev
1fd46b0590
UI & Vocab: Project components list & link from collabs JSON to project 2023-06-27 21:07:21 +03:00
Pere Lev
6ae079a310
S2S: Project Add handler 2023-06-27 17:55:59 +03:00
Pere Lev
89185164b8
DB: Store the 'type' of remote actors 2023-06-27 13:27:51 +03:00
Pere Lev
224025b9b6
DB: Entities for project-component system 2023-06-27 03:20:30 +03:00
Pere Lev
372fd35f2c
Project routes, handlers and creation UI 2023-06-26 22:02:54 +03:00
Pere Lev
3db602e3bd
DB entity for Project 2023-06-26 17:26:20 +03:00
Pere Lev
0bd2ca8d5d
DB: Allow actors to mark they've just been created by someone
This will be used for sending that someone a grant with Admin access
2023-06-19 11:38:25 +03:00
Pere Lev
581838e550
Support the 6 ForgeFed roles + launch repo/deck/loom actor upon creation 2023-06-17 21:35:00 +03:00
Pere Lev
c8c2106eab
UI: In deck collaborator list, have a Remove button for each 2023-06-17 01:27:28 +03:00
Pere Lev
58518811e3
UI for publishing a Remove 2023-06-17 00:39:02 +03:00
Pere Lev
928ad8f9a9
UI in deck collaborators list, for adding a new collaborator 2023-06-16 20:12:40 +03:00
Pere Lev
aaa92d8141
UI for publishing an Invite 2023-06-16 17:39:11 +03:00
Pere Lev
d33f272ede
Switch to converged handlers than handle both local and remote activities
I was writing a topicLocalInvite handler when I realized how cumbersome
it's becoming, to have separate handlers for local activities. While it
allows me to pick custom specific message names and parameters (which is
why I took that approach in the first place), it causes a lot of
duplication and complexity (because I have to write the remote-activity
handlers anyway; adding local ones doesn't reduce complexity).

So this commit switches the entire system to communicate only using
AP/FF activities, including between local actors.
2023-06-15 15:44:43 +03:00
fr33domlover
c9db823c8c Implement actor-model system and start moving Person actor to it
This patch makes Vervis temporarily unusable, because all actors' inbox POST
handlers use the new system, but the actual federation handler code hasn't been
ported. The next patches will port all the S2S activities supported so far, as
well as C2S.
2023-04-29 10:40:44 +00:00
fr33domlover
72796a6bdc UI, S2S: Implement Join flow in S2S + deck devs page now lists join requests 2022-11-14 15:11:25 +00:00
fr33domlover
fa7f765e2e DB: Remote Ticket.status field 2022-10-20 15:41:47 +00:00
fr33domlover
fdf6a83c40 DB, UI: Prepare DB schema for Join flow + display deck collaborators & invites 2022-10-20 12:53:54 +00:00
fr33domlover
118b787416 UI: New ticket/MR creation form + deck/loom navigation links 2022-10-17 15:08:00 +00:00
fr33domlover
b99d864429 UI, Web: Re-enable ticket/MR replies view and commenting forms/buttons 2022-10-16 20:34:00 +00:00
fr33domlover
71bceec18b C2S, S2S: Re-enable createNoteC and personCreateNoteF 2022-10-16 11:26:24 +00:00
fr33domlover
32c87e3839 Improve the AP async HTTP delivery API and per-actor key support
New iteration of the ActivityPub delivery implementation and interface.
Advantages over previous interface:

* When sending a ByteString body, the sender is explicitly passed as a
  parameter instead of JSON-parsing it out of the ByteString
* Clear 3 operations provided: Send, Resend and Forward
* Support for per-actor keys
* Actor-type-specific functions (e.g. deliverRemoteDB_D) removed
* Only the most high-level API is exposed to Activity handler code, making
  handler code more concise and clear

Also added in this patch:

* Foundation for per-actor key support
* 1 key per actor allowed in DB
* Disabled C2S and S2S handlers now un-exported for clarity
* Audience and capability parsing automatically done for all C2S handlers
* Audience and activity composition automatically done for Vervis.Client
  builder functions

Caveats:

* Actor documents still don't link to their per-actor keys; that should be the
  last piece to complete per-actor key support
* No moderation and anti-spam tools yet
* Delivery API doesn't yet have good integration of persistence layer, e.g.
  activity is separately encoded into bytestring for DB and for HTTP; this will
  be improved in the next iteration
* Periodic delivery now done in 3 separate steps, running sequentially; it
  simplifies the code, but may be changed for efficiency/robustness in the next
  iterations
* Periodic delivery collects per-actor keys in a
  1-DB-transaction-for-each-delivery fashion, rather than grabbing them in the
  big Esqueleto query (or keeping the signed output in the DB; this isn't done
  currently to allow for smooth actor key renewal)
* No support yet in the API for delivery where the actor key has already been
  fetched, rather than doing a DB transaction to grab it; such support would be
  just an optimization, so it's low-priority, but will be added in later
  iterations
2022-10-12 16:50:11 +00:00
fr33domlover
cc9facdf5a UI: Tweak and re-enable UI for uploading personal SSH keys 2022-09-26 12:51:06 +00:00
fr33domlover
f10655f2c1 Client, UI: "Apply" button for local MRs & PublishMergeR form for remote MRs 2022-09-24 21:15:40 +00:00
fr33domlover
0d922b0e5a Client, UI: Git merge request submission form 2022-09-23 05:20:39 +00:00
fr33domlover
9cb90c58c0 DB: Remember whether a Bundle came from person input or auto-generated 2022-09-22 17:23:33 +00:00
fr33domlover
de2e29d505 C2S: offerTicketC re-enabled and supporting looms and remote origin repo
What's missing:

- Match patch VCS, origin repo VCS and target repo VCS
- Hook into postPersonInboxR
- If only origin is provided, generate patches / otherwise somehow remember the
  commits proposed
2022-09-21 12:50:26 +00:00
fr33domlover
9906231d04 DB, Web: Allow origin repo for Cloths, mention in getClothR JSON 2022-09-18 15:55:42 +00:00
fr33domlover
9deba96cf2 UI: Serve HTML in getClothR, copied from getTicketR 2022-09-18 07:44:00 +00:00
fr33domlover
1db56ced39 UI: Re-enable ticket page, some pieces still missing, mostly buttons 2022-09-17 17:42:04 +00:00
fr33domlover
c495d78d05 C2S, UI: Loom creation and Repo linking to a Loom
RepoSourceR, for a repo that doesn't have a loom, lists looms that want to
serve that repo with buttons for bidirectionally linking the repo to a loom

Once linked, the repo navbar has a Patches/MRs link pointing to the LoomClothsR
of the linked Loom
2022-09-17 08:31:22 +00:00
fr33domlover
40f741e504 UI: Fix and re-enable getRepoSourceR (repo content file/dir browsing) 2022-09-16 13:47:10 +00:00
fr33domlover
ac867e56f2 S2S: Switch from Grant->Accept->Enable to Invite->Accept->Grant
Giving access now starts with an Invite activity, followed by Accept from the
Invite's recipient. Finally, the resource sends a Grant, which is the actual
OCap.
2022-09-05 16:19:52 +00:00
fr33domlover
0d96ee0775 DB: Add CollabTopicLocalReceive and CollabRecipLocalReceive tables
I was going to link the matching Accept tables to them, but then switched to
the Invite-Accept-Grant model and going to implement it in the next patches. So
I'm committing these new tables just in case I decide to revert to the current
model.
2022-09-01 17:44:43 +00:00
fr33domlover
4269385e15 DB: Add received::UTCTime field to InboxItem
To record *when* an activity, local or remote, was inserted into the specific
inbox. I'm surprised I haven't been keeping that data until now :P
2022-09-01 11:21:31 +00:00