A container registry that uses the AT Protocol for manifest storage and S3 for blob storage.

remove auth middleware

evan.jarrett.net 88998904 1df1bb57

verified
+14 -3
+10 -2
pkg/appview/db/stats_migration.go
··· 143 143 slog.Info("Stats migration completed", "component", "migration", 144 144 "success", successCount, "skipped", skipCount, "errors", errorCount, "total", len(stats)) 145 145 146 - // Mark migration complete (even if some failed - they'll get updates via Jetstream) 147 - return markMigrationComplete(db) 146 + // Only mark complete if there were no errors 147 + // Skipped repos (no hold DID) will never migrate - that's fine 148 + // Errors are transient failures that should be retried 149 + if errorCount == 0 { 150 + return markMigrationComplete(db) 151 + } 152 + 153 + slog.Warn("Stats migration had errors, will retry on next startup", "component", "migration", 154 + "errors", errorCount) 155 + return nil 148 156 } 149 157 150 158 // markMigrationComplete records that the stats migration has been done
+4 -1
pkg/hold/oci/xrpc.go
··· 40 40 41 41 // RegisterHandlers registers all OCI XRPC endpoints with the chi router 42 42 func (h *XRPCHandler) RegisterHandlers(r chi.Router) { 43 + // Temporary migration endpoint - no auth required 44 + // TODO: Remove after stats migration is complete 45 + r.Post(atproto.HoldSetStats, h.HandleSetStats) 46 + 43 47 // All multipart upload endpoints require blob:write permission 44 48 r.Group(func(r chi.Router) { 45 49 r.Use(h.requireBlobWriteAccess) ··· 50 54 r.Post(atproto.HoldCompleteUpload, h.HandleCompleteUpload) 51 55 r.Post(atproto.HoldAbortUpload, h.HandleAbortUpload) 52 56 r.Post(atproto.HoldNotifyManifest, h.HandleNotifyManifest) 53 - r.Post(atproto.HoldSetStats, h.HandleSetStats) 54 57 }) 55 58 } 56 59