A container registry that uses the AT Protocol for manifest storage and S3 for blob storage. atcr.io
docker container atproto go
80
fork

Configure Feed

Select the types of activity you want to include in your feed.

fix lint

+17 -14
+3 -3
pkg/appview/db/export.go
··· 84 84 85 85 // CachedDataNote explains what cached data exists and how to access it 86 86 type CachedDataNote struct { 87 - Message string `json:"message"` 88 - DeletionNotice string `json:"deletion_notice"` 87 + Message string `json:"message"` 88 + DeletionNotice string `json:"deletion_notice"` 89 89 YourPDSCollections []string `json:"your_pds_collections"` 90 - HowToAccess string `json:"how_to_access"` 90 + HowToAccess string `json:"how_to_access"` 91 91 } 92 92 93 93 // ExportUserData gathers all user data for GDPR export
+7 -3
pkg/appview/handlers/settings.go
··· 83 83 84 84 // Parse permissions JSON if present 85 85 if hold.Permissions != "" { 86 - json.Unmarshal([]byte(hold.Permissions), &display.Permissions) 86 + if err := json.Unmarshal([]byte(hold.Permissions), &display.Permissions); err != nil { 87 + slog.Warn("Failed to parse permissions JSON", "component", "settings", "did", user.DID, "hold_did", hold.HoldDID, "error", err) 88 + } 87 89 } 88 90 89 91 // Add to data map for JavaScript ··· 221 223 222 224 if !hasAccess { 223 225 w.Header().Set("Content-Type", "text/html") 224 - h.Templates.ExecuteTemplate(w, "alert", map[string]string{ 226 + if err := h.Templates.ExecuteTemplate(w, "alert", map[string]string{ 225 227 "Class": "error", 226 228 "Icon": "alert-circle", 227 229 "Message": "You don't have access to this hold", 228 - }) 230 + }); err != nil { 231 + http.Error(w, err.Error(), http.StatusInternalServerError) 232 + } 229 233 return 230 234 } 231 235 }
-1
pkg/hold/config.go
··· 217 217 return defaultValue 218 218 } 219 219 220 - 221 220 // RequestCrawl sends a crawl request to the ATProto relay for the given hostname. 222 221 // This makes the hold's PDS discoverable by the relay network. 223 222 func RequestCrawl(relayEndpoint, publicURL string) error {
+7 -7
pkg/hold/pds/xrpc.go
··· 1497 1497 1498 1498 // HoldUserDataExport represents the GDPR data export from a hold service 1499 1499 type HoldUserDataExport struct { 1500 - ExportedAt time.Time `json:"exported_at"` 1501 - HoldDID string `json:"hold_did"` 1502 - UserDID string `json:"user_did"` 1503 - IsCaptain bool `json:"is_captain"` 1504 - CrewRecord *CrewExport `json:"crew_record,omitempty"` 1505 - LayerRecords []LayerExport `json:"layer_records"` 1506 - StatsRecords []StatsExport `json:"stats_records"` 1500 + ExportedAt time.Time `json:"exported_at"` 1501 + HoldDID string `json:"hold_did"` 1502 + UserDID string `json:"user_did"` 1503 + IsCaptain bool `json:"is_captain"` 1504 + CrewRecord *CrewExport `json:"crew_record,omitempty"` 1505 + LayerRecords []LayerExport `json:"layer_records"` 1506 + StatsRecords []StatsExport `json:"stats_records"` 1507 1507 } 1508 1508 1509 1509 // CrewExport represents a sanitized crew record for export