Commit Graph

43 Commits

Author SHA1 Message Date
Evan Jarrett
de02e1f046 remove distribution from hold, add vulnerability scanning in appview.
1. Removing distribution/distribution from the Hold Service (biggest change)
  The hold service previously used distribution's StorageDriver interface for all blob operations. This replaces it with direct AWS SDK v2 calls through ATCR's own pkg/s3.S3Service:
  - New S3Service methods: Stat(), PutBytes(), Move(), Delete(), WalkBlobs(), ListPrefix() added to pkg/s3/types.go
  - Pull zone fix: Presigned URLs are now generated against the real S3 endpoint, then the host is swapped to the CDN URL post-signing (previously the CDN URL was set as the endpoint, which
  broke SigV4 signatures)
  - All hold subsystems migrated: GC, OCI uploads, XRPC handlers, profile uploads, scan broadcaster, manifest posts — all now use *s3.S3Service instead of storagedriver.StorageDriver
  - Config simplified: Removed configuration.Storage type and buildStorageConfigFromFields(); replaced with a simple S3Params() method
  - Mock expanded: MockS3Client gains an in-memory object store + 5 new methods, replacing duplicate mockStorageDriver implementations in tests (~160 lines deleted from each test file)
2. Vulnerability Scan UI in AppView (new feature)
  Displays scan results from the hold's PDS on the repository page:
  - New lexicon: io/atcr/hold/scan.json with vulnReportBlob field for storing full Grype reports
  - Two new HTMX endpoints: /api/scan-result (badge) and /api/vuln-details (modal with CVE table)
  - New templates: vuln-badge.html (severity count chips) and vuln-details.html (full CVE table with NVD/GHSA links)
  - Repository page: Lazy-loads scan badges per manifest via HTMX
  - Tests: ~590 lines of test coverage for both handlers
3. S3 Diagnostic Tool
  New cmd/s3-test/main.go (418 lines) — tests S3 connectivity with both SDK v1 and v2, including presigned URL generation, pull zone host swapping, and verbose signing debug output.
4. Deployment Tooling
  - New syncServiceUnit() for comparing/updating systemd units on servers
  - Update command now syncs config keys (adds missing keys from template) and service units with daemon-reload
5. DB Migration
  0011_fix_captain_successor_column.yaml — rebuilds hold_captain_records to add the successor column that was missed in a previous migration.
6. Documentation
  - APPVIEW-UI-FUTURE.md rewritten as a status-tracked feature inventory
  - DISTRIBUTION.md renamed to CREDENTIAL_HELPER.md
  - New REMOVING_DISTRIBUTION.md — 480-line analysis of fully removing distribution from the appview side
7. go.mod
  aws-sdk-go v1 moved from indirect to direct (needed by cmd/s3-test).
2026-02-13 15:26:24 -06:00
Evan Jarrett
434a5f1eee try and use pull_zone 2026-02-12 21:09:11 -06:00
Evan Jarrett
24c7b03ce5 minor fixup to update 2026-02-12 20:41:42 -06:00
Evan Jarrett
c0cf3fb94f update dependencies 2026-02-12 20:28:00 -06:00
Evan Jarrett
9723de0bcd migate envs to use yaml configs 2026-02-10 22:11:21 -06:00
Evan Jarrett
914328dbf1 fix cloud-init sync and dns check 2026-02-10 21:20:13 -06:00
Evan Jarrett
b251c8857f change to transactions for database 2026-02-10 20:58:24 -06:00
Evan Jarrett
4ac2b97c33 remote at sign from tangled urls 2026-02-10 20:48:24 -06:00
Evan Jarrett
7ba42080c5 more admin panel fixes, allow for fallback relays and jetstreams, improve star lexicon to allow for repo_page backlinks 2026-02-09 21:53:02 -06:00
Evan Jarrett
fbe7338492 add missing config keys on provision 2026-02-08 21:20:02 -06:00
Evan Jarrett
bc034e3465 updated favicons, fix domain rerouting, fix deploy provisioning 2026-02-08 20:50:31 -06:00
Evan Jarrett
4d9452bb75 update configs, fix foreign key issues 2026-02-07 23:28:42 -06:00
Evan Jarrett
cd47945301 add new upcloud cli deploy 2026-02-07 22:45:10 -06:00
Evan Jarrett
ef0161fb0e update settings page, move admin-panel to tailwind/daisy 2026-02-06 11:23:12 -06:00
Evan Jarrett
35f7a47af3 add simple stripe billing implementation for quotas 2026-02-03 21:52:31 -06:00
Evan Jarrett
ca56a7c309 allow domain name and short name to be replaced by config 2026-01-22 14:52:30 -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
c48a763529 fixup search page to use repocard. remove hardcoded values from privacy/terms/home 2026-01-16 11:19:42 -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
e0a2dda1af add ability to toggle debug. refactor hold pds logic to allow crew record lookups by rkey rather than a list 2026-01-06 12:48:13 -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
044d408cf8 deployment fixes. add open graph 2025-12-18 11:19:49 -06:00
Evan Jarrett
2d720e4154 remove extra docker volume in prod 2025-10-31 21:06:11 -05:00
Evan Jarrett
6793ba6a50 use confidential oauth in production 2025-10-29 12:06:47 -05:00
Evan Jarrett
6ef2aaf709 more test coverage. clean up docs 2025-10-28 20:39:57 -05:00
Evan Jarrett
e17600db28 slog and refactor config in appview 2025-10-25 11:00:48 -05:00
Evan Jarrett
a8815737fd default bluesky posts true 2025-10-23 16:23:38 -05:00
Evan Jarrett
751fa1a3f0 post to bluesky when manifests uploaded. linting fixes 2025-10-23 12:24:04 -05:00
Evan Jarrett
1b1400a6fb dedupe hold health checks 2025-10-22 18:17:44 -05:00
Evan Jarrett
c37abe377f fix default values 2025-10-21 12:51:24 -05:00
Evan Jarrett
78207ba65a fix prod docker compose 2025-10-21 12:40:04 -05:00
Evan Jarrett
80b65ee619 fix all the places where did used to be an endpoint 2025-10-17 20:40:04 -05:00
Evan Jarrett
963786f7cc begin getRepo and subscribeRepos 2025-10-16 20:16:59 -05:00
Evan Jarrett
18fe0684d3 begin embedded pds with xrpc endpoints and well-known 2025-10-14 20:25:08 -05:00
Evan Jarrett
6359edaf20 add hero banner, fix up css styles 2025-10-13 20:59:14 -05:00
Evan Jarrett
64a05d4024 clean up documentation 2025-10-13 17:07:08 -05:00
Evan Jarrett
8c048d6279 implement writes for everyone 2025-10-13 10:40:03 -05:00
Evan Jarrett
fb5e09489e fix tag and manifest deletion 2025-10-10 17:04:23 -05:00
Evan Jarrett
25cb4288bd fixup deploy script 2025-10-10 14:29:48 -05:00
Evan Jarrett
fa59c35bef add deployment scripts 2025-10-10 14:14:35 -05:00