Commit Graph

55 Commits

Author SHA1 Message Date
Evan Jarrett
136c0a0ecc billing refactor, move billing to appview, move webhooks to appview 2026-02-26 22:28:09 -06:00
Evan Jarrett
dc31ca2f35 more work on webhook, implement getMetadata endpoint for appview and link holds to a preferred appview 2026-02-22 22:49:33 -06:00
Evan Jarrett
f340158a79 tweaks related to did:plc, fix bluesky profile creation, update deploys to build locally then scp 2026-02-14 21:00:07 -06:00
Evan Jarrett
e3843db9d8 Implement did:plc support for holds with the ability to import/export CARs.
did:plc Identity Support (pkg/hold/pds/did.go, pkg/hold/config.go, pkg/hold/server.go)

  The big feature — holds can now use did:plc identities instead of only did:web. This adds:
  - LoadOrCreateDID() — resolves hold DID by priority: config DID > did.txt on disk > create new
  - CreatePLCIdentity() — builds a genesis operation, signs with rotation key, submits to PLC directory
  - EnsurePLCCurrent() — on boot, compares local signing key + URL against PLC directory and auto-updates if they've drifted (requires rotation key)
  - New config fields: did_method (web/plc), did, plc_directory_url, rotation_key_path
  - GenerateDIDDocument() now uses the stored DID instead of always deriving did:web from URL
  - NewHoldServer wired up to call LoadOrCreateDID instead of GenerateDIDFromURL

  CAR Export/Import (pkg/hold/pds/export.go, pkg/hold/pds/import.go, cmd/hold/repo.go)

  New CLI subcommands for repo backup/restore:
  - atcr-hold repo export — streams the hold's repo as a CAR file to stdout
  - atcr-hold repo import <file>... — reads CAR files, upserts all records in a single atomic commit. Uses a bulkImportRecords method that opens a delta session, checks each record for
  create vs update, commits once, and fires repo events.
  - openHoldPDS() helper to spin up a HoldPDS from config for offline CLI operations

  Admin UI Fixes (pkg/hold/admin/)

  - Logout changed from GET to POST — nav template now uses a <form method=POST> instead of an <a> link (prevents CSRF on logout)
  - Removed return_to parameter from login flow — simplified redirect logic, auth middleware now redirects to /admin/auth/login without query params

  Config/Deploy

  - config-hold.example.yaml and deploy/upcloud/configs/hold.yaml.tmpl updated with the four new did:plc config fields
  - go.mod / go.sum — added github.com/did-method-plc/go-didplc dependency
2026-02-14 15:17:53 -06:00
Evan Jarrett
34f342f637 lots of refactor and cleanup to allow for branding overrides 2026-02-02 22:42:15 -06:00
Evan Jarrett
57593a8683 remove the filesystem and buffered upload ability on the holds. going forward the only supported storage is s3. adds extra mocks and tests around uploading 2026-01-19 16:59:03 -06:00
Evan Jarrett
9e600649a6 begin s3 garbage collection implementation, more envvar cleanup 2026-01-08 23:31:56 -06:00
Evan Jarrett
51f6917444 add log shipper begin envvar cleanup 2026-01-08 22:52:32 -06:00
Evan Jarrett
3409af6c67 implement hold discovery dropdown in settings. implement a data privacy export feature 2026-01-07 22:41:14 -06:00
Evan Jarrett
f5979b8f08 implement a basic crew management admin panel 2026-01-05 21:30:42 -06:00
Evan Jarrett
487fc8a47e wording 2026-01-04 23:37:31 -06:00
Evan Jarrett
aa4b32bbd6 basic implementation of quotas 2026-01-04 20:09:41 -06:00
Evan Jarrett
045aeb2de5 add index table to mst so listRecords is more efficient 2026-01-01 21:19:38 -06:00
Evan Jarrett
044d408cf8 deployment fixes. add open graph 2025-12-18 11:19:49 -06:00
Evan Jarrett
ba97e19ef3 begin moving to slog 2025-10-25 09:54:26 -05:00
Evan Jarrett
dd79b8a0ee actually wrap them in a envvar check 2025-10-23 16:43:58 -05:00
Evan Jarrett
b5a0e19843 try and implement firehose cursor for subscribeRepo 2025-10-22 23:17:51 -05:00
Evan Jarrett
97d1b3cdd5 fix realip 2025-10-22 22:49:42 -05:00
Evan Jarrett
30ea5256f3 try and add cursor=0 to subscribe 2025-10-22 22:20:23 -05:00
Evan Jarrett
aff5d7248c try and implement getsession and app-password 2025-10-22 21:20:40 -05:00
Evan Jarrett
3809bcab25 add bluesky post with status 2025-10-22 18:38:43 -05:00
Evan Jarrett
0e4dd9af20 add middleware logging to xprc requests in hold. add tangled profile creation 2025-10-22 17:06:10 -05:00
Evan Jarrett
3e9a496a5d refactor how annotations are stored. add ability to create bsky profile for hold user 2025-10-22 11:08:13 -05:00
Evan Jarrett
7228b532ba bug fixes, code cleanup, tests. trying to get multipart uploads working for the 12th time 2025-10-19 20:55:18 -05:00
Evan Jarrett
1b3a4eea47 refactor hold pkg to separate oci image endpoints 2025-10-19 17:23:46 -05:00
Evan Jarrett
fa931aca3b combine s3 into multipart 2025-10-19 09:14:47 -05:00
Evan Jarrett
48414be75d lots of unit testing for xrpc endpoints. start pointing appview to the new endpoints. remove legacy api endpoints 2025-10-17 15:41:20 -05:00
Evan Jarrett
003dab263d remove older endpoints add docs for blob migration to xrpc 2025-10-16 21:34:55 -05:00
Evan Jarrett
963786f7cc begin getRepo and subscribeRepos 2025-10-16 20:16:59 -05:00
Evan Jarrett
70e802764b crazy refactor to start using holds embedded pds for crew/captain validation 2025-10-16 00:05:45 -05:00
Evan Jarrett
fade86abaa remove user oauth flow. hold now contains captain record indicating owner 2025-10-15 14:47:53 -05:00
Evan Jarrett
12935490d4 try and create a crew record for the hold owner 2025-10-14 21:41:14 -05:00
Evan Jarrett
18fe0684d3 begin embedded pds with xrpc endpoints and well-known 2025-10-14 20:25:08 -05:00
Evan Jarrett
8c048d6279 implement writes for everyone 2025-10-13 10:40:03 -05:00
Evan Jarrett
256cc883c9 consolidate presigned url endpoint. fix manifest pull blob from pds 2025-10-11 23:13:20 -05:00
Evan Jarrett
ace980cff6 clean up logging, consolidate presigned handlers 2025-10-11 22:32:13 -05:00
Evan Jarrett
a9e2a56568 fix up multipart uploads. test filesystem and s3 storage drivers work as a fallback for s3 presigned urls 2025-10-11 22:08:07 -05:00
Evan Jarrett
3761ade947 refactor hold/main.go into pkg files 2025-10-11 21:00:39 -05:00
Evan Jarrett
eccb3b2337 head presigned urls 2025-10-11 17:56:45 -05:00
Evan Jarrett
f2d921b73c re-implement multipart. seems to be working 2025-10-11 17:41:07 -05:00
Evan Jarrett
31276d8007 checkpoint currently works but not uploading through presigned 2025-10-11 12:11:06 -05:00
Evan Jarrett
6cfb14df2b Revert "fix presigned urls"
This reverts commit f3748abf31.
2025-10-11 09:23:47 -05:00
Evan Jarrett
f3748abf31 fix presigned urls 2025-10-10 17:19:44 -05:00
Evan Jarrett
eab9188273 more oauth fixes for hold and appview 2025-10-10 15:16:15 -05:00
Evan Jarrett
34ace405fd more oauth fixes for hold service 2025-10-10 15:01:47 -05:00
Evan Jarrett
67efbe2797 fix oauth issues on hold service 2025-10-10 14:45:44 -05:00
Evan Jarrett
3fad473910 use presigned urls for s3 to avoid hold bandwidth 2025-10-10 09:43:26 -05:00
Evan Jarrett
2d16bbfee3 cleanup more auth 2025-10-07 10:58:11 -05:00
Evan Jarrett
5b18538a8b refactor oauth to use indigo 2025-10-06 22:24:19 -05:00
Evan Jarrett
22d0faa3a3 refactor oauth code to reduce complexity 2025-10-05 16:03:03 -05:00