Skip to content

Commit ead7337

Browse files
mandariniclaude
andcommitted
ci(openapi): bootstrap committed OpenAPI snapshots
Stop gitignoring static/api.json and static/api-admin.json and commit the generated snapshots so the spec drift gate has a baseline to diff against. These were previously build-only artifacts published to GH Pages; making the committed copy load-bearing is what lets downstream consumers (SDKs, type generators) pin to an accurate spec. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 1cec41c commit ead7337

3 files changed

Lines changed: 2 additions & 2 deletions

File tree

.gitignore

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@ dist/
44
.env
55
.env.*
66
!.*.sample
7-
static/api.json
8-
static/api-admin.json
97
data/
108
bin/
119
coverage/

static/api-admin.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"openapi":"3.0.3","info":{"title":"Supabase Storage Admin API","description":"Admin API documentation for Supabase Storage","version":"0.0.0"},"components":{"securitySchemes":{"apiKeyAuth":{"type":"apiKey","in":"header","name":"ApiKey"}},"schemas":{}},"paths":{"/tenants/":{"get":{"tags":["tenant"],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Default Response"}}},"head":{"tags":["tenant"],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Default Response"}}}},"/tenants":{"head":{"tags":["tenant"],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Default Response"}}}},"/tenants/{tenantId}":{"get":{"tags":["tenant"],"security":[{"apiKeyAuth":[]}],"parameters":[{"schema":{"type":"string"},"in":"path","name":"tenantId","required":true}],"responses":{"200":{"description":"Default Response"}}},"head":{"tags":["tenant"],"security":[{"apiKeyAuth":[]}],"parameters":[{"schema":{"type":"string"},"in":"path","name":"tenantId","required":true}],"responses":{"200":{"description":"Default Response"}}},"post":{"tags":["tenant"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"anonKey":{"type":"string"},"databaseUrl":{"type":"string"},"databasePoolUrl":{"type":"string","nullable":true},"maxConnections":{"type":"number"},"jwks":{"type":"object","nullable":true},"fileSizeLimit":{"type":"number"},"jwtSecret":{"type":"string"},"serviceKey":{"type":"string"},"tracingMode":{"type":"string"},"disableEvents":{"type":"array","items":{"type":"string"},"nullable":true},"features":{"type":"object","properties":{"imageTransformation":{"type":"object","properties":{"enabled":{"type":"boolean"},"maxResolution":{"type":"number","nullable":true}}},"purgeCache":{"type":"object","properties":{"enabled":{"type":"boolean"}}},"s3Protocol":{"type":"object","properties":{"enabled":{"type":"boolean"}}},"icebergCatalog":{"type":"object","properties":{"enabled":{"type":"boolean"},"maxNamespaces":{"type":"number"},"maxTables":{"type":"number"},"maxCatalogs":{"type":"number"}}},"vectorBuckets":{"type":"object","properties":{"enabled":{"type":"boolean"},"maxBuckets":{"type":"number"},"maxIndexes":{"type":"number"}}}}}},"required":["anonKey","databaseUrl","jwtSecret","serviceKey"]}}}},"security":[{"apiKeyAuth":[]}],"parameters":[{"schema":{"type":"string"},"in":"path","name":"tenantId","required":true}],"responses":{"200":{"description":"Default Response"}}},"patch":{"tags":["tenant"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"anonKey":{"type":"string"},"databaseUrl":{"type":"string"},"databasePoolUrl":{"type":"string","nullable":true},"maxConnections":{"type":"number"},"jwks":{"type":"object","nullable":true},"fileSizeLimit":{"type":"number"},"jwtSecret":{"type":"string"},"serviceKey":{"type":"string"},"tracingMode":{"type":"string"},"disableEvents":{"type":"array","items":{"type":"string"},"nullable":true},"features":{"type":"object","properties":{"imageTransformation":{"type":"object","properties":{"enabled":{"type":"boolean"},"maxResolution":{"type":"number","nullable":true}}},"purgeCache":{"type":"object","properties":{"enabled":{"type":"boolean"}}},"s3Protocol":{"type":"object","properties":{"enabled":{"type":"boolean"}}},"icebergCatalog":{"type":"object","properties":{"enabled":{"type":"boolean"},"maxNamespaces":{"type":"number"},"maxTables":{"type":"number"},"maxCatalogs":{"type":"number"}}},"vectorBuckets":{"type":"object","properties":{"enabled":{"type":"boolean"},"maxBuckets":{"type":"number"},"maxIndexes":{"type":"number"}}}}}}}}}},"security":[{"apiKeyAuth":[]}],"parameters":[{"schema":{"type":"string"},"in":"path","name":"tenantId","required":true}],"responses":{"200":{"description":"Default Response"}}},"put":{"tags":["tenant"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"anonKey":{"type":"string"},"databaseUrl":{"type":"string"},"databasePoolUrl":{"type":"string","nullable":true},"maxConnections":{"type":"number"},"jwks":{"type":"object","nullable":true},"fileSizeLimit":{"type":"number"},"jwtSecret":{"type":"string"},"serviceKey":{"type":"string"},"tracingMode":{"type":"string"},"disableEvents":{"type":"array","items":{"type":"string"},"nullable":true},"features":{"type":"object","properties":{"imageTransformation":{"type":"object","properties":{"enabled":{"type":"boolean"},"maxResolution":{"type":"number","nullable":true}}},"purgeCache":{"type":"object","properties":{"enabled":{"type":"boolean"}}},"s3Protocol":{"type":"object","properties":{"enabled":{"type":"boolean"}}},"icebergCatalog":{"type":"object","properties":{"enabled":{"type":"boolean"},"maxNamespaces":{"type":"number"},"maxTables":{"type":"number"},"maxCatalogs":{"type":"number"}}},"vectorBuckets":{"type":"object","properties":{"enabled":{"type":"boolean"},"maxBuckets":{"type":"number"},"maxIndexes":{"type":"number"}}}}}},"required":["anonKey","databaseUrl","jwtSecret","serviceKey"]}}}},"security":[{"apiKeyAuth":[]}],"parameters":[{"schema":{"type":"string"},"in":"path","name":"tenantId","required":true}],"responses":{"200":{"description":"Default Response"}}},"delete":{"tags":["tenant"],"security":[{"apiKeyAuth":[]}],"parameters":[{"schema":{"type":"string"},"in":"path","name":"tenantId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/tenants/{tenantId}/migrations":{"get":{"tags":["tenant"],"security":[{"apiKeyAuth":[]}],"parameters":[{"schema":{"type":"string"},"in":"path","name":"tenantId","required":true}],"responses":{"200":{"description":"Default Response"}}},"head":{"tags":["tenant"],"security":[{"apiKeyAuth":[]}],"parameters":[{"schema":{"type":"string"},"in":"path","name":"tenantId","required":true}],"responses":{"200":{"description":"Default Response"}}},"post":{"tags":["tenant"],"security":[{"apiKeyAuth":[]}],"parameters":[{"schema":{"type":"string"},"in":"path","name":"tenantId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/tenants/{tenantId}/migrations/reset":{"post":{"tags":["tenant"],"security":[{"apiKeyAuth":[]}],"parameters":[{"schema":{"type":"string"},"in":"path","name":"tenantId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/tenants/{tenantId}/migrations/jobs":{"get":{"tags":["tenant"],"security":[{"apiKeyAuth":[]}],"parameters":[{"schema":{"type":"string"},"in":"path","name":"tenantId","required":true}],"responses":{"200":{"description":"Default Response"}}},"head":{"tags":["tenant"],"security":[{"apiKeyAuth":[]}],"parameters":[{"schema":{"type":"string"},"in":"path","name":"tenantId","required":true}],"responses":{"200":{"description":"Default Response"}}},"delete":{"tags":["tenant"],"security":[{"apiKeyAuth":[]}],"parameters":[{"schema":{"type":"string"},"in":"path","name":"tenantId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/tenants/{tenantId}/health":{"get":{"tags":["tenant"],"security":[{"apiKeyAuth":[]}],"parameters":[{"schema":{"type":"string"},"in":"path","name":"tenantId","required":true}],"responses":{"200":{"description":"Default Response"}}},"head":{"tags":["tenant"],"security":[{"apiKeyAuth":[]}],"parameters":[{"schema":{"type":"string"},"in":"path","name":"tenantId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/tenants/{tenantId}/buckets/{bucketId}/orphan-objects":{"get":{"tags":["object"],"description":"List Orphaned Objects","parameters":[{"schema":{"type":"string"},"in":"query","name":"before","required":false},{"schema":{"type":"boolean"},"in":"query","name":"keepTmpTable","required":false},{"schema":{"type":"string"},"in":"path","name":"tenantId","required":true},{"schema":{"type":"string"},"in":"path","name":"bucketId","required":true}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Default Response"}}},"head":{"tags":["object"],"description":"List Orphaned Objects","parameters":[{"schema":{"type":"string"},"in":"query","name":"before","required":false},{"schema":{"type":"boolean"},"in":"query","name":"keepTmpTable","required":false},{"schema":{"type":"string"},"in":"path","name":"tenantId","required":true},{"schema":{"type":"string"},"in":"path","name":"bucketId","required":true}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Default Response"}}},"delete":{"tags":["object"],"description":"Sync Orphaned Objects","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"deleteDbKeys":{"type":"boolean"},"deleteS3Keys":{"type":"boolean"},"tmpTable":{"type":"string"}}}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"tenantId","required":true},{"schema":{"type":"string"},"in":"path","name":"bucketId","required":true}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Default Response"}}}},"/tenants/{tenantId}/jwks":{"post":{"tags":["jwks"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"jwk":{"type":"object","properties":{"kty":{"type":"string"}},"required":["kty"]},"kind":{"type":"string"}},"required":["jwk","kind"]}}}},"security":[{"apiKeyAuth":[]}],"parameters":[{"schema":{"type":"string"},"in":"path","name":"tenantId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/tenants/{tenantId}/jwks/{kid}":{"put":{"tags":["jwks"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"active":{"type":"boolean"}},"required":["active"]}}}},"security":[{"apiKeyAuth":[]}],"parameters":[{"schema":{"type":"string"},"in":"path","name":"tenantId","required":true},{"schema":{"type":"string"},"in":"path","name":"kid","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/tenants/{tenantId}/jwks/url-signing/roll":{"post":{"tags":["jwks"],"security":[{"apiKeyAuth":[]}],"parameters":[{"schema":{"type":"string"},"in":"path","name":"tenantId","required":true}],"responses":{"200":{"description":"Default Response"}}}},"/tenants/jwks/generate-all-missing":{"post":{"tags":["jwks"],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Default Response"}}},"get":{"tags":["jwks"],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Default Response"}}},"head":{"tags":["jwks"],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Default Response"}}}},"/migrations/migrate/fleet":{"post":{"tags":["migration"],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Default Response"}}}},"/migrations/reset/fleet":{"post":{"tags":["migration"],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Default Response"}}}},"/migrations/active":{"get":{"tags":["migration"],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Default Response"}}},"head":{"tags":["migration"],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Default Response"}}},"delete":{"tags":["migration"],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Default Response"}}}},"/migrations/progress":{"get":{"tags":["migration"],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Default Response"}}},"head":{"tags":["migration"],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Default Response"}}}},"/migrations/failed":{"get":{"tags":["migration"],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Default Response"}}},"head":{"tags":["migration"],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Default Response"}}}},"/s3/{tenantId}/credentials":{"post":{"tags":["s3-credentials"],"description":"Create S3 Credentials","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"description":{"type":"string","minLength":3,"maxLength":2000},"claims":{"type":"object","properties":{"role":{"type":"string"},"sub":{"type":"string"}},"required":["role"],"additionalProperties":true}},"required":["description"]}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"tenantId","required":true}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Default Response"}}},"get":{"tags":["s3-credentials"],"description":"List S3 Credentials","parameters":[{"schema":{"type":"string"},"in":"path","name":"tenantId","required":true}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Default Response"}}},"head":{"tags":["s3-credentials"],"description":"List S3 Credentials","parameters":[{"schema":{"type":"string"},"in":"path","name":"tenantId","required":true}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Default Response"}}},"delete":{"tags":["s3-credentials"],"description":"Delete S3 Credentials","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"]}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"tenantId","required":true}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Default Response"}}}},"/queue/move":{"post":{"tags":["queue"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"fromQueue":{"type":"string"},"toQueue":{"type":"string"},"deleteJobsFromOriginalQueue":{"type":"boolean","default":false}},"required":["fromQueue","toQueue"]}}}},"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Default Response"}}}},"/metrics/config":{"get":{"tags":["metrics"],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Default Response"}}},"head":{"tags":["metrics"],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Default Response"}}},"put":{"tags":["metrics"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"metrics":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"enabled":{"type":"boolean"}},"required":["name","enabled"]}}},"required":["metrics"]}}}},"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Default Response"}}}}},"tags":[{"name":"tenant","description":"Tenant management"},{"name":"object","description":"Object management"},{"name":"jwks","description":"JWKS configuration"},{"name":"migration","description":"Database migrations"},{"name":"s3-credentials","description":"S3 credentials management"},{"name":"queue","description":"Queue management"},{"name":"metrics","description":"Metrics configuration"}]}

static/api.json

Lines changed: 1 addition & 0 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)