58 Commits
Author SHA1 Message Date
Evan Jarrett ab66028151 more labeler improvements. standardize did work between labeler and hold. improve sql race conditions on local-only db 2026-05-02 22:13:53 -05:00
Evan Jarrett 13a793ca90 improve admin tooling 2026-04-29 10:37:36 -05:00
Evan Jarrett 9af6eccc9d improvements to how scanning works, and helmchart ui 2026-04-29 10:12:25 -05:00
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