Commit graph

1412 commits

Author SHA1 Message Date
Pere Lev
94762ca76c
UI, C2S, S2S: Factory: Make allowed types editable
I added a new activity type, Patch. There's already a ForgeFed type with
the same name, used for representing patches of course. Perhaps the
duplication will work, since these types are used in different
situations. I'd happily change to Edit, but Patch may become the
standard name in Fediverse software. So let's go with that.
2024-08-07 13:16:25 +03:00
Pere Lev
b74d0d46c4
S2S: Factory: Implement collaborators and teams
Teams now serve as a way to offer factories to remote instances
2024-08-06 17:28:14 +03:00
Pere Lev
df4a2b221e
DB, S2S: Factory: Record set of allowed types 2024-08-06 15:37:49 +03:00
Pere Lev
18bcfb88f2
Fix "no people" bug in migration 554 2024-08-06 12:54:21 +03:00
Pere Lev
e196ee6f34
Switch to factory-based creation of Deck, Project and Group
- UI for creating a Factory
- UI for specifying a Factory when creating resource actors
- Old way of creation doesn't work anymore, except for Factory itself
- UI indicates whether you're an admin user
- Settings allow to choose "resident" factories, i.e. ones automatically
  offered to every newly verified user

Caveats:

- Factories are all-in-one, no mechanism yet for choosing actor types
- No UI/logic for auto-offering a Factory to all users of a different
  instance, and signaling other instances about newly verified local
  users
2024-08-06 12:33:02 +03:00
Pere Lev
66870458b7
Add a new actor type: Factory
- No factories inserted to DB yet
- Admin user list specified in settings
- Admins can create a Factory via C2S
- Creating other actors via C2S the old way still works as well
- Factory S2S handler implementation still blank
2024-08-02 18:31:06 +03:00
Pere Lev
a74b24f61a
Make push-to-repo SSH events sequential via the Repo actor
Until now, `Vervis.Ssh` was freely running git/darcs commands,
regardless of what the `Repo` actor is doing at the same time. It means
that in the `Repo` actor implementation, every repo manipulation must
take into account the possibility for a simultaneous push.

This commit gives more control, clarity and safety to the `Repo` actor.
Since moving the push logic itself to the `Repo` actor would be
cumbersome and complicated, the push logic remains in `Vervis.Ssh`, but
some thingss happen differently:

1. Before running the git/darcs command that handles the push, it waits
   for the `Repo` actor to be available (as if pushing is one of the
   `Repo` actor's methods)
2. In the method handler, the `Repo` actor waits for `Vervis.Ssh` to say
   that the push handler is done
3. When the git/darcs command returns, `Vervis.Ssh` sends the
   notification to release the `Repo` actor from the waiting

So, from now on, `Repo` and `Loom` code, in particular code that handles PRs,
can be sure no simultaneous pushing will happen.
2024-07-29 23:06:42 +03:00
Pere Lev
ea463703b5
Upgrade actor system, now using HList, to allow per-actor method type 2024-07-29 12:29:38 +03:00
Pere Lev
3ddae07d26
Fix migrations 594 & 595 that were requiring a Person in DB 2024-07-29 12:25:50 +03:00
Pere Lev
e0935ee6db
S2S: Invite: Remove Invite-based add-component code 2024-07-23 19:31:52 +03:00
Pere Lev
1fa71b6b9c
Docs: API.md: Info about the specific inbox activity types 2024-07-19 18:08:44 +03:00
Pere Lev
bdb8c44cd6
Docs: Start sections about inbox and outbox 2024-07-19 00:54:16 +03:00
Pere Lev
d2ff048b2e
Tools for type-level-property-powered ForgeFed parsing-serializing 2024-07-18 22:30:34 +03:00
Pere Lev
b9ab5e546a
Upgrade to LTS 18 (last LTS with GHC 8)
The major changes:

- No more hit and hit-* packages
- No more diagram and SVG font stuff
- Dependency on darcs is not yet removed
- No more persistent-graph i.e. recursive SQL queries
- Some hit-network stuff still in use, now part of Vervis itself
- Git operations use the git command-line program, a convenient API is provided
  in Data.Git.Local
- No more patch parsing and no diff view, patches are treated as a piece of
  text and displayed as-is (although I could add syntax-highlighting as a nice
  touch for the HTML view)
2024-07-18 13:57:41 +03:00
Pere Lev
9ce745c725
UI, DB: Store debug reports in DB and link to them from navbar 2024-07-06 12:53:31 +03:00
Pere Lev
b8922b3157
Implement /register 2024-07-06 00:14:36 +03:00
Pere Lev
19194426c2
Implement /register/available 2024-07-05 23:27:35 +03:00
Pere Lev
3db1668a6f
Implement /register/enabled endpoint 2024-07-05 22:23:29 +03:00
Pere Lev
17f1583808
Document registration API that I'm about to implement 2024-07-05 21:38:00 +03:00
Pere Lev
37f1665f16
OAuth: Upgrade Dvara version, fxing some bugs 2024-07-05 20:01:23 +03:00
Pere Lev
cd1bc1aee3
Pass theater to runSsh 2024-07-04 22:26:52 +03:00
Pere Lev
1b322f9606
Update more deps that switched from Darcs to Git 2024-07-04 21:54:33 +03:00
Pere Lev
0af8046ce1
Update deps that moved from Darcs to Git 2024-07-04 21:19:17 +03:00
Pere Lev
a5699898c5
Docs: Start API.md documentation file 2024-07-04 19:45:10 +03:00
Pere Lev
26ace5f9b8
Serve AP version of component projects collection 2024-07-04 14:17:21 +03:00
Pere Lev
ef8151c7cb
S2S: Project: Upon component-Revoke-start-Grant, remove whole Component record 2024-07-01 18:27:16 +03:00
Pere Lev
4d06d8e840
S2S: Component: Remove: Port team-mode from Project 2024-07-01 16:51:00 +03:00
Pere Lev
02f46a21f9
S2S: Component: Grant: Port team-mode from Project 2024-07-01 15:54:12 +03:00
Pere Lev
10a1f74847
S2S: Component: Grant: Refactor, prepare for adding team-mode 2024-07-01 15:35:23 +03:00
Pere Lev
40ab419946
S2S: Component: Accept: Port team-mode from Project 2024-07-01 13:44:23 +03:00
Pere Lev
cdd43292bc
S2S: Component: Add: Port team-mode from Project 2024-06-27 20:32:44 +03:00
Pere Lev
7a5147aad9
S2S: Project: Remove: Implement team mode 2024-06-26 20:39:30 +03:00
Pere Lev
3359974af7
S2S: Project: Grant: Implement team mode 2024-06-26 19:20:38 +03:00
Pere Lev
68141fa7da
S2S: Project: Accept: Implement team mode 2024-06-25 00:06:15 +03:00
Pere Lev
3c8b8dbc48
S2S: Project: Add: Implement team mode 2024-06-24 20:05:54 +03:00
Pere Lev
5d88036fc3
S2S: Group: Revoke: Implement resource mode 2024-06-20 21:48:48 +03:00
Pere Lev
4d37d1293a
S2S: Group: Remove: Implement resource-passive mode 2024-06-20 18:37:22 +03:00
Pere Lev
9df437a043
S2S: Group: Remove: Implement resource-active mode 2024-06-20 17:58:26 +03:00
Pere Lev
a36eda1e2b
S2S: Group: Grant: Implement resource mode 2024-06-20 17:13:54 +03:00
Pere Lev
c385dad10b
S2S: Group: Accept: Implement remove-resource mode 2024-06-20 16:26:06 +03:00
Pere Lev
cd18217f08
S2S: Group: Accept: Implement resource mode 2024-06-20 15:24:42 +03:00
Pere Lev
47736bb0a8
More tweaking & clarification of groupAccept comment and code 2024-06-15 17:51:24 +03:00
Pere Lev
a84ea09dd9
Reorder comment on groupAccept 2024-06-15 16:09:58 +03:00
Pere Lev
83590ba6ff
S2S: Group: Add: Implement resource-passive mode 2024-06-15 15:51:31 +03:00
Pere Lev
f7d3d6d957
S2S: Group: Add: Implement resource-active mode 2024-06-15 14:05:56 +03:00
Pere Lev
fe7ae763db
UI: Repo, Loom: Project add-approve-remove buttons 2024-06-10 17:07:32 +03:00
Pere Lev
1bdd1e9e9b
S2S: Component: Implement Revoke handler 2024-06-10 15:30:03 +03:00
Pere Lev
ae659dbba2
S2S: Project: Remove: Implement component-passive mode 2024-06-07 19:10:06 +03:00
Pere Lev
7af44d693c
S2S: Project: Remove: Child-active: Revoke Grants-for-teams 2024-06-06 21:36:39 +03:00
Pere Lev
3afdfbf3d7
S2S: Project: Revoke: Collab: Delete and send Revokes on extensions 2024-05-29 00:55:41 +03:00