This is page 6 of 6. Use http://codebase.md/alexander-zuev/supabase-mcp-server?lines=true&page={x} to view the full context. # Directory Structure ``` ├── .claude │ └── settings.local.json ├── .dockerignore ├── .env.example ├── .env.test.example ├── .github │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE │ │ ├── bug_report.md │ │ ├── feature_request.md │ │ └── roadmap_item.md │ ├── PULL_REQUEST_TEMPLATE.md │ └── workflows │ ├── ci.yaml │ ├── docs │ │ └── release-checklist.md │ └── publish.yaml ├── .gitignore ├── .pre-commit-config.yaml ├── .python-version ├── CHANGELOG.MD ├── codecov.yml ├── CONTRIBUTING.MD ├── Dockerfile ├── LICENSE ├── llms-full.txt ├── pyproject.toml ├── README.md ├── smithery.yaml ├── supabase_mcp │ ├── __init__.py │ ├── clients │ │ ├── api_client.py │ │ ├── base_http_client.py │ │ ├── management_client.py │ │ └── sdk_client.py │ ├── core │ │ ├── __init__.py │ │ ├── container.py │ │ └── feature_manager.py │ ├── exceptions.py │ ├── logger.py │ ├── main.py │ ├── services │ │ ├── __init__.py │ │ ├── api │ │ │ ├── __init__.py │ │ │ ├── api_manager.py │ │ │ ├── spec_manager.py │ │ │ └── specs │ │ │ └── api_spec.json │ │ ├── database │ │ │ ├── __init__.py │ │ │ ├── migration_manager.py │ │ │ ├── postgres_client.py │ │ │ ├── query_manager.py │ │ │ └── sql │ │ │ ├── loader.py │ │ │ ├── models.py │ │ │ ├── queries │ │ │ │ ├── create_migration.sql │ │ │ │ ├── get_migrations.sql │ │ │ │ ├── get_schemas.sql │ │ │ │ ├── get_table_schema.sql │ │ │ │ ├── get_tables.sql │ │ │ │ ├── init_migrations.sql │ │ │ │ └── logs │ │ │ │ ├── auth_logs.sql │ │ │ │ ├── cron_logs.sql │ │ │ │ ├── edge_logs.sql │ │ │ │ ├── function_edge_logs.sql │ │ │ │ ├── pgbouncer_logs.sql │ │ │ │ ├── postgres_logs.sql │ │ │ │ ├── postgrest_logs.sql │ │ │ │ ├── realtime_logs.sql │ │ │ │ ├── storage_logs.sql │ │ │ │ └── supavisor_logs.sql │ │ │ └── validator.py │ │ ├── logs │ │ │ ├── __init__.py │ │ │ └── log_manager.py │ │ ├── safety │ │ │ ├── __init__.py │ │ │ ├── models.py │ │ │ ├── safety_configs.py │ │ │ └── safety_manager.py │ │ └── sdk │ │ ├── __init__.py │ │ ├── auth_admin_models.py │ │ └── auth_admin_sdk_spec.py │ ├── settings.py │ └── tools │ ├── __init__.py │ ├── descriptions │ │ ├── api_tools.yaml │ │ ├── database_tools.yaml │ │ ├── logs_and_analytics_tools.yaml │ │ ├── safety_tools.yaml │ │ └── sdk_tools.yaml │ ├── manager.py │ └── registry.py ├── tests │ ├── __init__.py │ ├── conftest.py │ ├── services │ │ ├── __init__.py │ │ ├── api │ │ │ ├── __init__.py │ │ │ ├── test_api_client.py │ │ │ ├── test_api_manager.py │ │ │ └── test_spec_manager.py │ │ ├── database │ │ │ ├── sql │ │ │ │ ├── __init__.py │ │ │ │ ├── conftest.py │ │ │ │ ├── test_loader.py │ │ │ │ ├── test_sql_validator_integration.py │ │ │ │ └── test_sql_validator.py │ │ │ ├── test_migration_manager.py │ │ │ ├── test_postgres_client.py │ │ │ └── test_query_manager.py │ │ ├── logs │ │ │ └── test_log_manager.py │ │ ├── safety │ │ │ ├── test_api_safety_config.py │ │ │ ├── test_safety_manager.py │ │ │ └── test_sql_safety_config.py │ │ └── sdk │ │ ├── test_auth_admin_models.py │ │ └── test_sdk_client.py │ ├── test_container.py │ ├── test_main.py │ ├── test_settings.py │ ├── test_tool_manager.py │ ├── test_tools_integration.py.bak │ └── test_tools.py └── uv.lock ``` # Files -------------------------------------------------------------------------------- /supabase_mcp/services/api/specs/api_spec.json: -------------------------------------------------------------------------------- ```json 1 | { 2 | "openapi": "3.0.0", 3 | "paths": { 4 | "/v1/branches/{branch_id}": { 5 | "get": { 6 | "operationId": "v1-get-a-branch-config", 7 | "summary": "Get database branch config", 8 | "description": "Fetches configurations of the specified database branch", 9 | "parameters": [ 10 | { 11 | "name": "branch_id", 12 | "required": true, 13 | "in": "path", 14 | "description": "Branch ID", 15 | "schema": { 16 | "type": "string" 17 | } 18 | } 19 | ], 20 | "responses": { 21 | "200": { 22 | "description": "", 23 | "content": { 24 | "application/json": { 25 | "schema": { 26 | "$ref": "#/components/schemas/BranchDetailResponse" 27 | } 28 | } 29 | } 30 | }, 31 | "500": { 32 | "description": "Failed to retrieve database branch" 33 | } 34 | }, 35 | "tags": [ 36 | "Environments" 37 | ], 38 | "security": [ 39 | { 40 | "bearer": [] 41 | } 42 | ] 43 | }, 44 | "patch": { 45 | "operationId": "v1-update-a-branch-config", 46 | "summary": "Update database branch config", 47 | "description": "Updates the configuration of the specified database branch", 48 | "parameters": [ 49 | { 50 | "name": "branch_id", 51 | "required": true, 52 | "in": "path", 53 | "description": "Branch ID", 54 | "schema": { 55 | "type": "string" 56 | } 57 | } 58 | ], 59 | "requestBody": { 60 | "required": true, 61 | "content": { 62 | "application/json": { 63 | "schema": { 64 | "$ref": "#/components/schemas/UpdateBranchBody" 65 | } 66 | } 67 | } 68 | }, 69 | "responses": { 70 | "200": { 71 | "description": "", 72 | "content": { 73 | "application/json": { 74 | "schema": { 75 | "$ref": "#/components/schemas/BranchResponse" 76 | } 77 | } 78 | } 79 | }, 80 | "500": { 81 | "description": "Failed to update database branch" 82 | } 83 | }, 84 | "tags": [ 85 | "Environments" 86 | ], 87 | "security": [ 88 | { 89 | "bearer": [] 90 | } 91 | ] 92 | }, 93 | "delete": { 94 | "operationId": "v1-delete-a-branch", 95 | "summary": "Delete a database branch", 96 | "description": "Deletes the specified database branch", 97 | "parameters": [ 98 | { 99 | "name": "branch_id", 100 | "required": true, 101 | "in": "path", 102 | "description": "Branch ID", 103 | "schema": { 104 | "type": "string" 105 | } 106 | } 107 | ], 108 | "responses": { 109 | "200": { 110 | "description": "", 111 | "content": { 112 | "application/json": { 113 | "schema": { 114 | "$ref": "#/components/schemas/BranchDeleteResponse" 115 | } 116 | } 117 | } 118 | }, 119 | "500": { 120 | "description": "Failed to delete database branch" 121 | } 122 | }, 123 | "tags": [ 124 | "Environments" 125 | ], 126 | "security": [ 127 | { 128 | "bearer": [] 129 | } 130 | ] 131 | } 132 | }, 133 | "/v1/branches/{branch_id}/push": { 134 | "post": { 135 | "operationId": "v1-push-a-branch", 136 | "summary": "Pushes a database branch", 137 | "description": "Pushes the specified database branch", 138 | "parameters": [ 139 | { 140 | "name": "branch_id", 141 | "required": true, 142 | "in": "path", 143 | "description": "Branch ID", 144 | "schema": { 145 | "type": "string" 146 | } 147 | } 148 | ], 149 | "responses": { 150 | "201": { 151 | "description": "", 152 | "content": { 153 | "application/json": { 154 | "schema": { 155 | "$ref": "#/components/schemas/BranchUpdateResponse" 156 | } 157 | } 158 | } 159 | }, 160 | "500": { 161 | "description": "Failed to push database branch" 162 | } 163 | }, 164 | "tags": [ 165 | "Environments" 166 | ], 167 | "security": [ 168 | { 169 | "bearer": [] 170 | } 171 | ] 172 | } 173 | }, 174 | "/v1/branches/{branch_id}/reset": { 175 | "post": { 176 | "operationId": "v1-reset-a-branch", 177 | "summary": "Resets a database branch", 178 | "description": "Resets the specified database branch", 179 | "parameters": [ 180 | { 181 | "name": "branch_id", 182 | "required": true, 183 | "in": "path", 184 | "description": "Branch ID", 185 | "schema": { 186 | "type": "string" 187 | } 188 | } 189 | ], 190 | "responses": { 191 | "201": { 192 | "description": "", 193 | "content": { 194 | "application/json": { 195 | "schema": { 196 | "$ref": "#/components/schemas/BranchUpdateResponse" 197 | } 198 | } 199 | } 200 | }, 201 | "500": { 202 | "description": "Failed to reset database branch" 203 | } 204 | }, 205 | "tags": [ 206 | "Environments" 207 | ], 208 | "security": [ 209 | { 210 | "bearer": [] 211 | } 212 | ] 213 | } 214 | }, 215 | "/v1/projects": { 216 | "get": { 217 | "operationId": "v1-list-all-projects", 218 | "summary": "List all projects", 219 | "description": "Returns a list of all projects you've previously created.", 220 | "parameters": [], 221 | "responses": { 222 | "200": { 223 | "description": "", 224 | "content": { 225 | "application/json": { 226 | "schema": { 227 | "type": "array", 228 | "items": { 229 | "$ref": "#/components/schemas/V1ProjectWithDatabaseResponse" 230 | } 231 | } 232 | } 233 | } 234 | } 235 | }, 236 | "tags": [ 237 | "Projects" 238 | ], 239 | "security": [ 240 | { 241 | "bearer": [] 242 | } 243 | ] 244 | }, 245 | "post": { 246 | "operationId": "v1-create-a-project", 247 | "summary": "Create a project", 248 | "parameters": [], 249 | "requestBody": { 250 | "required": true, 251 | "content": { 252 | "application/json": { 253 | "schema": { 254 | "$ref": "#/components/schemas/V1CreateProjectBodyDto" 255 | } 256 | } 257 | } 258 | }, 259 | "responses": { 260 | "201": { 261 | "description": "", 262 | "content": { 263 | "application/json": { 264 | "schema": { 265 | "$ref": "#/components/schemas/V1ProjectResponse" 266 | } 267 | } 268 | } 269 | } 270 | }, 271 | "tags": [ 272 | "Projects" 273 | ], 274 | "security": [ 275 | { 276 | "bearer": [] 277 | } 278 | ] 279 | } 280 | }, 281 | "/v1/organizations": { 282 | "get": { 283 | "operationId": "v1-list-all-organizations", 284 | "summary": "List all organizations", 285 | "description": "Returns a list of organizations that you currently belong to.", 286 | "parameters": [], 287 | "responses": { 288 | "200": { 289 | "description": "", 290 | "content": { 291 | "application/json": { 292 | "schema": { 293 | "type": "array", 294 | "items": { 295 | "$ref": "#/components/schemas/OrganizationResponseV1" 296 | } 297 | } 298 | } 299 | } 300 | }, 301 | "500": { 302 | "description": "Unexpected error listing organizations" 303 | } 304 | }, 305 | "tags": [ 306 | "Organizations" 307 | ], 308 | "security": [ 309 | { 310 | "bearer": [] 311 | } 312 | ] 313 | }, 314 | "post": { 315 | "operationId": "v1-create-an-organization", 316 | "summary": "Create an organization", 317 | "parameters": [], 318 | "requestBody": { 319 | "required": true, 320 | "content": { 321 | "application/json": { 322 | "schema": { 323 | "$ref": "#/components/schemas/CreateOrganizationV1Dto" 324 | } 325 | } 326 | } 327 | }, 328 | "responses": { 329 | "201": { 330 | "description": "", 331 | "content": { 332 | "application/json": { 333 | "schema": { 334 | "$ref": "#/components/schemas/OrganizationResponseV1" 335 | } 336 | } 337 | } 338 | }, 339 | "500": { 340 | "description": "Unexpected error creating an organization" 341 | } 342 | }, 343 | "tags": [ 344 | "Organizations" 345 | ], 346 | "security": [ 347 | { 348 | "bearer": [] 349 | } 350 | ] 351 | } 352 | }, 353 | "/v1/oauth/authorize": { 354 | "get": { 355 | "operationId": "v1-authorize-user", 356 | "summary": "[Beta] Authorize user through oauth", 357 | "parameters": [ 358 | { 359 | "name": "client_id", 360 | "required": true, 361 | "in": "query", 362 | "schema": { 363 | "type": "string" 364 | } 365 | }, 366 | { 367 | "name": "response_type", 368 | "required": true, 369 | "in": "query", 370 | "schema": { 371 | "enum": [ 372 | "code", 373 | "token", 374 | "id_token token" 375 | ], 376 | "type": "string" 377 | } 378 | }, 379 | { 380 | "name": "redirect_uri", 381 | "required": true, 382 | "in": "query", 383 | "schema": { 384 | "type": "string" 385 | } 386 | }, 387 | { 388 | "name": "scope", 389 | "required": false, 390 | "in": "query", 391 | "schema": { 392 | "type": "string" 393 | } 394 | }, 395 | { 396 | "name": "state", 397 | "required": false, 398 | "in": "query", 399 | "schema": { 400 | "type": "string" 401 | } 402 | }, 403 | { 404 | "name": "response_mode", 405 | "required": false, 406 | "in": "query", 407 | "schema": { 408 | "type": "string" 409 | } 410 | }, 411 | { 412 | "name": "code_challenge", 413 | "required": false, 414 | "in": "query", 415 | "schema": { 416 | "type": "string" 417 | } 418 | }, 419 | { 420 | "name": "code_challenge_method", 421 | "required": false, 422 | "in": "query", 423 | "schema": { 424 | "enum": [ 425 | "plain", 426 | "sha256", 427 | "S256" 428 | ], 429 | "type": "string" 430 | } 431 | } 432 | ], 433 | "responses": { 434 | "303": { 435 | "description": "" 436 | } 437 | }, 438 | "tags": [ 439 | "OAuth" 440 | ], 441 | "security": [ 442 | { 443 | "oauth2": [ 444 | "read" 445 | ] 446 | } 447 | ] 448 | } 449 | }, 450 | "/v1/oauth/token": { 451 | "post": { 452 | "operationId": "v1-exchange-oauth-token", 453 | "summary": "[Beta] Exchange auth code for user's access and refresh token", 454 | "parameters": [], 455 | "requestBody": { 456 | "required": true, 457 | "content": { 458 | "application/x-www-form-urlencoded": { 459 | "schema": { 460 | "$ref": "#/components/schemas/OAuthTokenBody" 461 | } 462 | } 463 | } 464 | }, 465 | "responses": { 466 | "201": { 467 | "description": "", 468 | "content": { 469 | "application/json": { 470 | "schema": { 471 | "$ref": "#/components/schemas/OAuthTokenResponse" 472 | } 473 | } 474 | } 475 | } 476 | }, 477 | "tags": [ 478 | "OAuth" 479 | ], 480 | "security": [ 481 | { 482 | "oauth2": [ 483 | "write" 484 | ] 485 | } 486 | ] 487 | } 488 | }, 489 | "/v1/oauth/revoke": { 490 | "post": { 491 | "operationId": "v1-revoke-token", 492 | "summary": "[Beta] Revoke oauth app authorization and it's corresponding tokens", 493 | "parameters": [], 494 | "requestBody": { 495 | "required": true, 496 | "content": { 497 | "application/json": { 498 | "schema": { 499 | "$ref": "#/components/schemas/OAuthRevokeTokenBodyDto" 500 | } 501 | } 502 | } 503 | }, 504 | "responses": { 505 | "204": { 506 | "description": "" 507 | } 508 | }, 509 | "tags": [ 510 | "OAuth" 511 | ], 512 | "security": [ 513 | { 514 | "oauth2": [ 515 | "write" 516 | ] 517 | } 518 | ] 519 | } 520 | }, 521 | "/v1/snippets": { 522 | "get": { 523 | "operationId": "v1-list-all-snippets", 524 | "summary": "Lists SQL snippets for the logged in user", 525 | "parameters": [ 526 | { 527 | "name": "cursor", 528 | "required": false, 529 | "in": "query", 530 | "schema": { 531 | "type": "string" 532 | } 533 | }, 534 | { 535 | "name": "limit", 536 | "required": false, 537 | "in": "query", 538 | "schema": { 539 | "type": "string", 540 | "minimum": 1, 541 | "maximum": 100 542 | } 543 | }, 544 | { 545 | "name": "sort_by", 546 | "required": false, 547 | "in": "query", 548 | "schema": { 549 | "enum": [ 550 | "name", 551 | "inserted_at" 552 | ], 553 | "type": "string" 554 | } 555 | }, 556 | { 557 | "name": "sort_order", 558 | "required": false, 559 | "in": "query", 560 | "schema": { 561 | "enum": [ 562 | "asc", 563 | "desc" 564 | ], 565 | "type": "string" 566 | } 567 | }, 568 | { 569 | "name": "project_ref", 570 | "required": false, 571 | "in": "query", 572 | "schema": { 573 | "type": "string" 574 | } 575 | } 576 | ], 577 | "responses": { 578 | "200": { 579 | "description": "", 580 | "content": { 581 | "application/json": { 582 | "schema": { 583 | "$ref": "#/components/schemas/SnippetList" 584 | } 585 | } 586 | } 587 | }, 588 | "500": { 589 | "description": "Failed to list user's SQL snippets" 590 | } 591 | }, 592 | "tags": [ 593 | "Database" 594 | ], 595 | "security": [ 596 | { 597 | "bearer": [] 598 | } 599 | ] 600 | } 601 | }, 602 | "/v1/snippets/{id}": { 603 | "get": { 604 | "operationId": "v1-get-a-snippet", 605 | "summary": "Gets a specific SQL snippet", 606 | "parameters": [ 607 | { 608 | "name": "id", 609 | "required": true, 610 | "in": "path", 611 | "schema": { 612 | "format": "uuid", 613 | "type": "string" 614 | } 615 | } 616 | ], 617 | "responses": { 618 | "200": { 619 | "description": "", 620 | "content": { 621 | "application/json": { 622 | "schema": { 623 | "$ref": "#/components/schemas/SnippetResponse" 624 | } 625 | } 626 | } 627 | }, 628 | "500": { 629 | "description": "Failed to retrieve SQL snippet" 630 | } 631 | }, 632 | "tags": [ 633 | "Database" 634 | ], 635 | "security": [ 636 | { 637 | "bearer": [] 638 | } 639 | ] 640 | } 641 | }, 642 | "/v1/projects/{ref}/api-keys": { 643 | "get": { 644 | "operationId": "v1-get-project-api-keys", 645 | "summary": "Get project api keys", 646 | "parameters": [ 647 | { 648 | "name": "ref", 649 | "required": true, 650 | "in": "path", 651 | "description": "Project ref", 652 | "schema": { 653 | "minLength": 20, 654 | "maxLength": 20, 655 | "type": "string" 656 | } 657 | }, 658 | { 659 | "name": "reveal", 660 | "required": true, 661 | "in": "query", 662 | "schema": { 663 | "type": "boolean" 664 | } 665 | } 666 | ], 667 | "responses": { 668 | "200": { 669 | "description": "", 670 | "content": { 671 | "application/json": { 672 | "schema": { 673 | "type": "array", 674 | "items": { 675 | "$ref": "#/components/schemas/ApiKeyResponse" 676 | } 677 | } 678 | } 679 | } 680 | } 681 | }, 682 | "tags": [ 683 | "Secrets" 684 | ], 685 | "security": [ 686 | { 687 | "bearer": [] 688 | } 689 | ] 690 | }, 691 | "post": { 692 | "operationId": "createApiKey", 693 | "summary": "[Alpha] Creates a new API key for the project", 694 | "parameters": [ 695 | { 696 | "name": "ref", 697 | "required": true, 698 | "in": "path", 699 | "description": "Project ref", 700 | "schema": { 701 | "minLength": 20, 702 | "maxLength": 20, 703 | "type": "string" 704 | } 705 | }, 706 | { 707 | "name": "reveal", 708 | "required": true, 709 | "in": "query", 710 | "schema": { 711 | "type": "boolean" 712 | } 713 | } 714 | ], 715 | "requestBody": { 716 | "required": true, 717 | "content": { 718 | "application/json": { 719 | "schema": { 720 | "$ref": "#/components/schemas/CreateApiKeyBody" 721 | } 722 | } 723 | } 724 | }, 725 | "responses": { 726 | "201": { 727 | "description": "", 728 | "content": { 729 | "application/json": { 730 | "schema": { 731 | "$ref": "#/components/schemas/ApiKeyResponse" 732 | } 733 | } 734 | } 735 | } 736 | }, 737 | "tags": [ 738 | "Secrets" 739 | ], 740 | "security": [ 741 | { 742 | "bearer": [] 743 | } 744 | ] 745 | } 746 | }, 747 | "/v1/projects/{ref}/api-keys/{id}": { 748 | "patch": { 749 | "operationId": "updateApiKey", 750 | "summary": "[Alpha] Updates an API key for the project", 751 | "parameters": [ 752 | { 753 | "name": "ref", 754 | "required": true, 755 | "in": "path", 756 | "description": "Project ref", 757 | "schema": { 758 | "minLength": 20, 759 | "maxLength": 20, 760 | "type": "string" 761 | } 762 | }, 763 | { 764 | "name": "id", 765 | "required": true, 766 | "in": "path", 767 | "schema": { 768 | "type": "string" 769 | } 770 | }, 771 | { 772 | "name": "reveal", 773 | "required": true, 774 | "in": "query", 775 | "schema": { 776 | "type": "boolean" 777 | } 778 | } 779 | ], 780 | "requestBody": { 781 | "required": true, 782 | "content": { 783 | "application/json": { 784 | "schema": { 785 | "$ref": "#/components/schemas/UpdateApiKeyBody" 786 | } 787 | } 788 | } 789 | }, 790 | "responses": { 791 | "200": { 792 | "description": "", 793 | "content": { 794 | "application/json": { 795 | "schema": { 796 | "$ref": "#/components/schemas/ApiKeyResponse" 797 | } 798 | } 799 | } 800 | } 801 | }, 802 | "tags": [ 803 | "Secrets" 804 | ], 805 | "security": [ 806 | { 807 | "bearer": [] 808 | } 809 | ] 810 | }, 811 | "get": { 812 | "operationId": "getApiKey", 813 | "summary": "[Alpha] Get API key", 814 | "parameters": [ 815 | { 816 | "name": "ref", 817 | "required": true, 818 | "in": "path", 819 | "description": "Project ref", 820 | "schema": { 821 | "minLength": 20, 822 | "maxLength": 20, 823 | "type": "string" 824 | } 825 | }, 826 | { 827 | "name": "id", 828 | "required": true, 829 | "in": "path", 830 | "schema": { 831 | "type": "string" 832 | } 833 | }, 834 | { 835 | "name": "reveal", 836 | "required": true, 837 | "in": "query", 838 | "schema": { 839 | "type": "boolean" 840 | } 841 | } 842 | ], 843 | "responses": { 844 | "200": { 845 | "description": "", 846 | "content": { 847 | "application/json": { 848 | "schema": { 849 | "$ref": "#/components/schemas/ApiKeyResponse" 850 | } 851 | } 852 | } 853 | } 854 | }, 855 | "tags": [ 856 | "Secrets" 857 | ], 858 | "security": [ 859 | { 860 | "bearer": [] 861 | } 862 | ] 863 | }, 864 | "delete": { 865 | "operationId": "deleteApiKey", 866 | "summary": "[Alpha] Deletes an API key for the project", 867 | "parameters": [ 868 | { 869 | "name": "ref", 870 | "required": true, 871 | "in": "path", 872 | "description": "Project ref", 873 | "schema": { 874 | "minLength": 20, 875 | "maxLength": 20, 876 | "type": "string" 877 | } 878 | }, 879 | { 880 | "name": "id", 881 | "required": true, 882 | "in": "path", 883 | "schema": { 884 | "type": "string" 885 | } 886 | }, 887 | { 888 | "name": "reveal", 889 | "required": true, 890 | "in": "query", 891 | "schema": { 892 | "type": "boolean" 893 | } 894 | } 895 | ], 896 | "responses": { 897 | "200": { 898 | "description": "", 899 | "content": { 900 | "application/json": { 901 | "schema": { 902 | "$ref": "#/components/schemas/ApiKeyResponse" 903 | } 904 | } 905 | } 906 | }, 907 | "403": { 908 | "description": "" 909 | } 910 | }, 911 | "tags": [ 912 | "Secrets" 913 | ], 914 | "security": [ 915 | { 916 | "bearer": [] 917 | } 918 | ] 919 | } 920 | }, 921 | "/v1/projects/{ref}/branches": { 922 | "get": { 923 | "operationId": "v1-list-all-branches", 924 | "summary": "List all database branches", 925 | "description": "Returns all database branches of the specified project.", 926 | "parameters": [ 927 | { 928 | "name": "ref", 929 | "required": true, 930 | "in": "path", 931 | "description": "Project ref", 932 | "schema": { 933 | "minLength": 20, 934 | "maxLength": 20, 935 | "type": "string" 936 | } 937 | } 938 | ], 939 | "responses": { 940 | "200": { 941 | "description": "", 942 | "content": { 943 | "application/json": { 944 | "schema": { 945 | "type": "array", 946 | "items": { 947 | "$ref": "#/components/schemas/BranchResponse" 948 | } 949 | } 950 | } 951 | } 952 | }, 953 | "500": { 954 | "description": "Failed to retrieve database branches" 955 | } 956 | }, 957 | "tags": [ 958 | "Environments" 959 | ], 960 | "security": [ 961 | { 962 | "bearer": [] 963 | } 964 | ] 965 | }, 966 | "post": { 967 | "operationId": "v1-create-a-branch", 968 | "summary": "Create a database branch", 969 | "description": "Creates a database branch from the specified project.", 970 | "parameters": [ 971 | { 972 | "name": "ref", 973 | "required": true, 974 | "in": "path", 975 | "description": "Project ref", 976 | "schema": { 977 | "minLength": 20, 978 | "maxLength": 20, 979 | "type": "string" 980 | } 981 | } 982 | ], 983 | "requestBody": { 984 | "required": true, 985 | "content": { 986 | "application/json": { 987 | "schema": { 988 | "$ref": "#/components/schemas/CreateBranchBody" 989 | } 990 | } 991 | } 992 | }, 993 | "responses": { 994 | "201": { 995 | "description": "", 996 | "content": { 997 | "application/json": { 998 | "schema": { 999 | "$ref": "#/components/schemas/BranchResponse" 1000 | } 1001 | } 1002 | } 1003 | }, 1004 | "500": { 1005 | "description": "Failed to create database branch" 1006 | } 1007 | }, 1008 | "tags": [ 1009 | "Environments" 1010 | ], 1011 | "security": [ 1012 | { 1013 | "bearer": [] 1014 | } 1015 | ] 1016 | }, 1017 | "delete": { 1018 | "operationId": "v1-disable-preview-branching", 1019 | "summary": "Disables preview branching", 1020 | "description": "Disables preview branching for the specified project", 1021 | "parameters": [ 1022 | { 1023 | "name": "ref", 1024 | "required": true, 1025 | "in": "path", 1026 | "description": "Project ref", 1027 | "schema": { 1028 | "minLength": 20, 1029 | "maxLength": 20, 1030 | "type": "string" 1031 | } 1032 | } 1033 | ], 1034 | "responses": { 1035 | "200": { 1036 | "description": "" 1037 | }, 1038 | "500": { 1039 | "description": "Failed to disable preview branching" 1040 | } 1041 | }, 1042 | "tags": [ 1043 | "Environments" 1044 | ], 1045 | "security": [ 1046 | { 1047 | "bearer": [] 1048 | } 1049 | ] 1050 | } 1051 | }, 1052 | "/v1/projects/{ref}/custom-hostname": { 1053 | "get": { 1054 | "operationId": "v1-get-hostname-config", 1055 | "summary": "[Beta] Gets project's custom hostname config", 1056 | "parameters": [ 1057 | { 1058 | "name": "ref", 1059 | "required": true, 1060 | "in": "path", 1061 | "description": "Project ref", 1062 | "schema": { 1063 | "minLength": 20, 1064 | "maxLength": 20, 1065 | "type": "string" 1066 | } 1067 | } 1068 | ], 1069 | "responses": { 1070 | "200": { 1071 | "description": "", 1072 | "content": { 1073 | "application/json": { 1074 | "schema": { 1075 | "$ref": "#/components/schemas/UpdateCustomHostnameResponse" 1076 | } 1077 | } 1078 | } 1079 | }, 1080 | "403": { 1081 | "description": "" 1082 | }, 1083 | "500": { 1084 | "description": "Failed to retrieve project's custom hostname config" 1085 | } 1086 | }, 1087 | "tags": [ 1088 | "Domains" 1089 | ], 1090 | "security": [ 1091 | { 1092 | "bearer": [] 1093 | } 1094 | ] 1095 | }, 1096 | "delete": { 1097 | "operationId": "v1-Delete hostname config", 1098 | "summary": "[Beta] Deletes a project's custom hostname configuration", 1099 | "parameters": [ 1100 | { 1101 | "name": "ref", 1102 | "required": true, 1103 | "in": "path", 1104 | "description": "Project ref", 1105 | "schema": { 1106 | "minLength": 20, 1107 | "maxLength": 20, 1108 | "type": "string" 1109 | } 1110 | } 1111 | ], 1112 | "responses": { 1113 | "200": { 1114 | "description": "" 1115 | }, 1116 | "403": { 1117 | "description": "" 1118 | }, 1119 | "500": { 1120 | "description": "Failed to delete project custom hostname configuration" 1121 | } 1122 | }, 1123 | "tags": [ 1124 | "Domains" 1125 | ], 1126 | "security": [ 1127 | { 1128 | "bearer": [] 1129 | } 1130 | ] 1131 | } 1132 | }, 1133 | "/v1/projects/{ref}/custom-hostname/initialize": { 1134 | "post": { 1135 | "operationId": "v1-update-hostname-config", 1136 | "summary": "[Beta] Updates project's custom hostname configuration", 1137 | "parameters": [ 1138 | { 1139 | "name": "ref", 1140 | "required": true, 1141 | "in": "path", 1142 | "description": "Project ref", 1143 | "schema": { 1144 | "minLength": 20, 1145 | "maxLength": 20, 1146 | "type": "string" 1147 | } 1148 | } 1149 | ], 1150 | "requestBody": { 1151 | "required": true, 1152 | "content": { 1153 | "application/json": { 1154 | "schema": { 1155 | "$ref": "#/components/schemas/UpdateCustomHostnameBody" 1156 | } 1157 | } 1158 | } 1159 | }, 1160 | "responses": { 1161 | "201": { 1162 | "description": "", 1163 | "content": { 1164 | "application/json": { 1165 | "schema": { 1166 | "$ref": "#/components/schemas/UpdateCustomHostnameResponse" 1167 | } 1168 | } 1169 | } 1170 | }, 1171 | "403": { 1172 | "description": "" 1173 | }, 1174 | "500": { 1175 | "description": "Failed to update project custom hostname configuration" 1176 | } 1177 | }, 1178 | "tags": [ 1179 | "Domains" 1180 | ], 1181 | "security": [ 1182 | { 1183 | "bearer": [] 1184 | } 1185 | ] 1186 | } 1187 | }, 1188 | "/v1/projects/{ref}/custom-hostname/reverify": { 1189 | "post": { 1190 | "operationId": "v1-verify-dns-config", 1191 | "summary": "[Beta] Attempts to verify the DNS configuration for project's custom hostname configuration", 1192 | "parameters": [ 1193 | { 1194 | "name": "ref", 1195 | "required": true, 1196 | "in": "path", 1197 | "description": "Project ref", 1198 | "schema": { 1199 | "minLength": 20, 1200 | "maxLength": 20, 1201 | "type": "string" 1202 | } 1203 | } 1204 | ], 1205 | "responses": { 1206 | "201": { 1207 | "description": "", 1208 | "content": { 1209 | "application/json": { 1210 | "schema": { 1211 | "$ref": "#/components/schemas/UpdateCustomHostnameResponse" 1212 | } 1213 | } 1214 | } 1215 | }, 1216 | "403": { 1217 | "description": "" 1218 | }, 1219 | "500": { 1220 | "description": "Failed to verify project custom hostname configuration" 1221 | } 1222 | }, 1223 | "tags": [ 1224 | "Domains" 1225 | ], 1226 | "security": [ 1227 | { 1228 | "bearer": [] 1229 | } 1230 | ] 1231 | } 1232 | }, 1233 | "/v1/projects/{ref}/custom-hostname/activate": { 1234 | "post": { 1235 | "operationId": "v1-activate-custom-hostname", 1236 | "summary": "[Beta] Activates a custom hostname for a project.", 1237 | "parameters": [ 1238 | { 1239 | "name": "ref", 1240 | "required": true, 1241 | "in": "path", 1242 | "description": "Project ref", 1243 | "schema": { 1244 | "minLength": 20, 1245 | "maxLength": 20, 1246 | "type": "string" 1247 | } 1248 | } 1249 | ], 1250 | "responses": { 1251 | "201": { 1252 | "description": "", 1253 | "content": { 1254 | "application/json": { 1255 | "schema": { 1256 | "$ref": "#/components/schemas/UpdateCustomHostnameResponse" 1257 | } 1258 | } 1259 | } 1260 | }, 1261 | "403": { 1262 | "description": "" 1263 | }, 1264 | "500": { 1265 | "description": "Failed to activate project custom hostname configuration" 1266 | } 1267 | }, 1268 | "tags": [ 1269 | "Domains" 1270 | ], 1271 | "security": [ 1272 | { 1273 | "bearer": [] 1274 | } 1275 | ] 1276 | } 1277 | }, 1278 | "/v1/projects/{ref}/network-bans/retrieve": { 1279 | "post": { 1280 | "operationId": "v1-list-all-network-bans", 1281 | "summary": "[Beta] Gets project's network bans", 1282 | "parameters": [ 1283 | { 1284 | "name": "ref", 1285 | "required": true, 1286 | "in": "path", 1287 | "description": "Project ref", 1288 | "schema": { 1289 | "minLength": 20, 1290 | "maxLength": 20, 1291 | "type": "string" 1292 | } 1293 | } 1294 | ], 1295 | "responses": { 1296 | "201": { 1297 | "description": "", 1298 | "content": { 1299 | "application/json": { 1300 | "schema": { 1301 | "$ref": "#/components/schemas/NetworkBanResponse" 1302 | } 1303 | } 1304 | } 1305 | }, 1306 | "403": { 1307 | "description": "" 1308 | }, 1309 | "500": { 1310 | "description": "Failed to retrieve project's network bans" 1311 | } 1312 | }, 1313 | "tags": [ 1314 | "Projects" 1315 | ], 1316 | "security": [ 1317 | { 1318 | "bearer": [] 1319 | } 1320 | ] 1321 | } 1322 | }, 1323 | "/v1/projects/{ref}/network-bans": { 1324 | "delete": { 1325 | "operationId": "v1-delete-network-bans", 1326 | "summary": "[Beta] Remove network bans.", 1327 | "parameters": [ 1328 | { 1329 | "name": "ref", 1330 | "required": true, 1331 | "in": "path", 1332 | "description": "Project ref", 1333 | "schema": { 1334 | "minLength": 20, 1335 | "maxLength": 20, 1336 | "type": "string" 1337 | } 1338 | } 1339 | ], 1340 | "requestBody": { 1341 | "required": true, 1342 | "content": { 1343 | "application/json": { 1344 | "schema": { 1345 | "$ref": "#/components/schemas/RemoveNetworkBanRequest" 1346 | } 1347 | } 1348 | } 1349 | }, 1350 | "responses": { 1351 | "200": { 1352 | "description": "" 1353 | }, 1354 | "403": { 1355 | "description": "" 1356 | }, 1357 | "500": { 1358 | "description": "Failed to remove network bans." 1359 | } 1360 | }, 1361 | "tags": [ 1362 | "Projects" 1363 | ], 1364 | "security": [ 1365 | { 1366 | "bearer": [] 1367 | } 1368 | ] 1369 | } 1370 | }, 1371 | "/v1/projects/{ref}/network-restrictions": { 1372 | "get": { 1373 | "operationId": "v1-get-network-restrictions", 1374 | "summary": "[Beta] Gets project's network restrictions", 1375 | "parameters": [ 1376 | { 1377 | "name": "ref", 1378 | "required": true, 1379 | "in": "path", 1380 | "description": "Project ref", 1381 | "schema": { 1382 | "minLength": 20, 1383 | "maxLength": 20, 1384 | "type": "string" 1385 | } 1386 | } 1387 | ], 1388 | "responses": { 1389 | "200": { 1390 | "description": "", 1391 | "content": { 1392 | "application/json": { 1393 | "schema": { 1394 | "$ref": "#/components/schemas/NetworkRestrictionsResponse" 1395 | } 1396 | } 1397 | } 1398 | }, 1399 | "403": { 1400 | "description": "" 1401 | }, 1402 | "500": { 1403 | "description": "Failed to retrieve project's network restrictions" 1404 | } 1405 | }, 1406 | "tags": [ 1407 | "Projects" 1408 | ], 1409 | "security": [ 1410 | { 1411 | "bearer": [] 1412 | } 1413 | ] 1414 | } 1415 | }, 1416 | "/v1/projects/{ref}/network-restrictions/apply": { 1417 | "post": { 1418 | "operationId": "v1-update-network-restrictions", 1419 | "summary": "[Beta] Updates project's network restrictions", 1420 | "parameters": [ 1421 | { 1422 | "name": "ref", 1423 | "required": true, 1424 | "in": "path", 1425 | "description": "Project ref", 1426 | "schema": { 1427 | "minLength": 20, 1428 | "maxLength": 20, 1429 | "type": "string" 1430 | } 1431 | } 1432 | ], 1433 | "requestBody": { 1434 | "required": true, 1435 | "content": { 1436 | "application/json": { 1437 | "schema": { 1438 | "$ref": "#/components/schemas/NetworkRestrictionsRequest" 1439 | } 1440 | } 1441 | } 1442 | }, 1443 | "responses": { 1444 | "201": { 1445 | "description": "", 1446 | "content": { 1447 | "application/json": { 1448 | "schema": { 1449 | "$ref": "#/components/schemas/NetworkRestrictionsResponse" 1450 | } 1451 | } 1452 | } 1453 | }, 1454 | "403": { 1455 | "description": "" 1456 | }, 1457 | "500": { 1458 | "description": "Failed to update project network restrictions" 1459 | } 1460 | }, 1461 | "tags": [ 1462 | "Projects" 1463 | ], 1464 | "security": [ 1465 | { 1466 | "bearer": [] 1467 | } 1468 | ] 1469 | } 1470 | }, 1471 | "/v1/projects/{ref}/pgsodium": { 1472 | "get": { 1473 | "operationId": "v1-get-pgsodium-config", 1474 | "summary": "[Beta] Gets project's pgsodium config", 1475 | "parameters": [ 1476 | { 1477 | "name": "ref", 1478 | "required": true, 1479 | "in": "path", 1480 | "description": "Project ref", 1481 | "schema": { 1482 | "minLength": 20, 1483 | "maxLength": 20, 1484 | "type": "string" 1485 | } 1486 | } 1487 | ], 1488 | "responses": { 1489 | "200": { 1490 | "description": "", 1491 | "content": { 1492 | "application/json": { 1493 | "schema": { 1494 | "$ref": "#/components/schemas/PgsodiumConfigResponse" 1495 | } 1496 | } 1497 | } 1498 | }, 1499 | "403": { 1500 | "description": "" 1501 | }, 1502 | "500": { 1503 | "description": "Failed to retrieve project's pgsodium config" 1504 | } 1505 | }, 1506 | "tags": [ 1507 | "Secrets" 1508 | ], 1509 | "security": [ 1510 | { 1511 | "bearer": [] 1512 | } 1513 | ] 1514 | }, 1515 | "put": { 1516 | "operationId": "v1-update-pgsodium-config", 1517 | "summary": "[Beta] Updates project's pgsodium config. Updating the root_key can cause all data encrypted with the older key to become inaccessible.", 1518 | "parameters": [ 1519 | { 1520 | "name": "ref", 1521 | "required": true, 1522 | "in": "path", 1523 | "description": "Project ref", 1524 | "schema": { 1525 | "minLength": 20, 1526 | "maxLength": 20, 1527 | "type": "string" 1528 | } 1529 | } 1530 | ], 1531 | "requestBody": { 1532 | "required": true, 1533 | "content": { 1534 | "application/json": { 1535 | "schema": { 1536 | "$ref": "#/components/schemas/UpdatePgsodiumConfigBody" 1537 | } 1538 | } 1539 | } 1540 | }, 1541 | "responses": { 1542 | "200": { 1543 | "description": "", 1544 | "content": { 1545 | "application/json": { 1546 | "schema": { 1547 | "$ref": "#/components/schemas/PgsodiumConfigResponse" 1548 | } 1549 | } 1550 | } 1551 | }, 1552 | "403": { 1553 | "description": "" 1554 | }, 1555 | "500": { 1556 | "description": "Failed to update project's pgsodium config" 1557 | } 1558 | }, 1559 | "tags": [ 1560 | "Secrets" 1561 | ], 1562 | "security": [ 1563 | { 1564 | "bearer": [] 1565 | } 1566 | ] 1567 | } 1568 | }, 1569 | "/v1/projects/{ref}/postgrest": { 1570 | "get": { 1571 | "operationId": "v1-get-postgrest-service-config", 1572 | "summary": "Gets project's postgrest config", 1573 | "parameters": [ 1574 | { 1575 | "name": "ref", 1576 | "required": true, 1577 | "in": "path", 1578 | "description": "Project ref", 1579 | "schema": { 1580 | "minLength": 20, 1581 | "maxLength": 20, 1582 | "type": "string" 1583 | } 1584 | } 1585 | ], 1586 | "responses": { 1587 | "200": { 1588 | "description": "", 1589 | "content": { 1590 | "application/json": { 1591 | "schema": { 1592 | "$ref": "#/components/schemas/PostgrestConfigWithJWTSecretResponse" 1593 | } 1594 | } 1595 | } 1596 | }, 1597 | "403": { 1598 | "description": "" 1599 | }, 1600 | "500": { 1601 | "description": "Failed to retrieve project's postgrest config" 1602 | } 1603 | }, 1604 | "tags": [ 1605 | "Rest" 1606 | ], 1607 | "security": [ 1608 | { 1609 | "bearer": [] 1610 | } 1611 | ] 1612 | }, 1613 | "patch": { 1614 | "operationId": "v1-update-postgrest-service-config", 1615 | "summary": "Updates project's postgrest config", 1616 | "parameters": [ 1617 | { 1618 | "name": "ref", 1619 | "required": true, 1620 | "in": "path", 1621 | "description": "Project ref", 1622 | "schema": { 1623 | "minLength": 20, 1624 | "maxLength": 20, 1625 | "type": "string" 1626 | } 1627 | } 1628 | ], 1629 | "requestBody": { 1630 | "required": true, 1631 | "content": { 1632 | "application/json": { 1633 | "schema": { 1634 | "$ref": "#/components/schemas/UpdatePostgrestConfigBody" 1635 | } 1636 | } 1637 | } 1638 | }, 1639 | "responses": { 1640 | "200": { 1641 | "description": "", 1642 | "content": { 1643 | "application/json": { 1644 | "schema": { 1645 | "$ref": "#/components/schemas/V1PostgrestConfigResponse" 1646 | } 1647 | } 1648 | } 1649 | }, 1650 | "403": { 1651 | "description": "" 1652 | }, 1653 | "500": { 1654 | "description": "Failed to update project's postgrest config" 1655 | } 1656 | }, 1657 | "tags": [ 1658 | "Rest" 1659 | ], 1660 | "security": [ 1661 | { 1662 | "bearer": [] 1663 | } 1664 | ] 1665 | } 1666 | }, 1667 | "/v1/projects/{ref}": { 1668 | "get": { 1669 | "operationId": "v1-get-project", 1670 | "summary": "Gets a specific project that belongs to the authenticated user", 1671 | "parameters": [ 1672 | { 1673 | "name": "ref", 1674 | "required": true, 1675 | "in": "path", 1676 | "description": "Project ref", 1677 | "schema": { 1678 | "minLength": 20, 1679 | "maxLength": 20, 1680 | "type": "string" 1681 | } 1682 | } 1683 | ], 1684 | "responses": { 1685 | "200": { 1686 | "description": "", 1687 | "content": { 1688 | "application/json": { 1689 | "schema": { 1690 | "$ref": "#/components/schemas/V1ProjectWithDatabaseResponse" 1691 | } 1692 | } 1693 | } 1694 | }, 1695 | "500": { 1696 | "description": "Failed to retrieve project" 1697 | } 1698 | }, 1699 | "tags": [ 1700 | "Projects" 1701 | ], 1702 | "security": [ 1703 | { 1704 | "bearer": [] 1705 | } 1706 | ] 1707 | }, 1708 | "delete": { 1709 | "operationId": "v1-delete-a-project", 1710 | "summary": "Deletes the given project", 1711 | "parameters": [ 1712 | { 1713 | "name": "ref", 1714 | "required": true, 1715 | "in": "path", 1716 | "description": "Project ref", 1717 | "schema": { 1718 | "minLength": 20, 1719 | "maxLength": 20, 1720 | "type": "string" 1721 | } 1722 | } 1723 | ], 1724 | "responses": { 1725 | "200": { 1726 | "description": "", 1727 | "content": { 1728 | "application/json": { 1729 | "schema": { 1730 | "$ref": "#/components/schemas/V1ProjectRefResponse" 1731 | } 1732 | } 1733 | } 1734 | }, 1735 | "403": { 1736 | "description": "" 1737 | } 1738 | }, 1739 | "tags": [ 1740 | "Projects" 1741 | ], 1742 | "security": [ 1743 | { 1744 | "bearer": [] 1745 | } 1746 | ] 1747 | } 1748 | }, 1749 | "/v1/projects/{ref}/secrets": { 1750 | "get": { 1751 | "operationId": "v1-list-all-secrets", 1752 | "summary": "List all secrets", 1753 | "description": "Returns all secrets you've previously added to the specified project.", 1754 | "parameters": [ 1755 | { 1756 | "name": "ref", 1757 | "required": true, 1758 | "in": "path", 1759 | "description": "Project ref", 1760 | "schema": { 1761 | "minLength": 20, 1762 | "maxLength": 20, 1763 | "type": "string" 1764 | } 1765 | } 1766 | ], 1767 | "responses": { 1768 | "200": { 1769 | "description": "", 1770 | "content": { 1771 | "application/json": { 1772 | "schema": { 1773 | "type": "array", 1774 | "items": { 1775 | "$ref": "#/components/schemas/SecretResponse" 1776 | } 1777 | } 1778 | } 1779 | } 1780 | }, 1781 | "403": { 1782 | "description": "" 1783 | }, 1784 | "500": { 1785 | "description": "Failed to retrieve project's secrets" 1786 | } 1787 | }, 1788 | "tags": [ 1789 | "Secrets" 1790 | ], 1791 | "security": [ 1792 | { 1793 | "bearer": [] 1794 | } 1795 | ] 1796 | }, 1797 | "post": { 1798 | "operationId": "v1-bulk-create-secrets", 1799 | "summary": "Bulk create secrets", 1800 | "description": "Creates multiple secrets and adds them to the specified project.", 1801 | "parameters": [ 1802 | { 1803 | "name": "ref", 1804 | "required": true, 1805 | "in": "path", 1806 | "description": "Project ref", 1807 | "schema": { 1808 | "minLength": 20, 1809 | "maxLength": 20, 1810 | "type": "string" 1811 | } 1812 | } 1813 | ], 1814 | "requestBody": { 1815 | "required": true, 1816 | "content": { 1817 | "application/json": { 1818 | "schema": { 1819 | "type": "array", 1820 | "items": { 1821 | "$ref": "#/components/schemas/CreateSecretBody" 1822 | } 1823 | } 1824 | } 1825 | } 1826 | }, 1827 | "responses": { 1828 | "201": { 1829 | "description": "" 1830 | }, 1831 | "403": { 1832 | "description": "" 1833 | }, 1834 | "500": { 1835 | "description": "Failed to create project's secrets" 1836 | } 1837 | }, 1838 | "tags": [ 1839 | "Secrets" 1840 | ], 1841 | "security": [ 1842 | { 1843 | "bearer": [] 1844 | } 1845 | ] 1846 | }, 1847 | "delete": { 1848 | "operationId": "v1-bulk-delete-secrets", 1849 | "summary": "Bulk delete secrets", 1850 | "description": "Deletes all secrets with the given names from the specified project", 1851 | "parameters": [ 1852 | { 1853 | "name": "ref", 1854 | "required": true, 1855 | "in": "path", 1856 | "description": "Project ref", 1857 | "schema": { 1858 | "minLength": 20, 1859 | "maxLength": 20, 1860 | "type": "string" 1861 | } 1862 | } 1863 | ], 1864 | "requestBody": { 1865 | "required": true, 1866 | "content": { 1867 | "application/json": { 1868 | "schema": { 1869 | "type": "array", 1870 | "items": { 1871 | "type": "string" 1872 | } 1873 | } 1874 | } 1875 | } 1876 | }, 1877 | "responses": { 1878 | "200": { 1879 | "description": "", 1880 | "content": { 1881 | "application/json": { 1882 | "schema": { 1883 | "type": "object" 1884 | } 1885 | } 1886 | } 1887 | }, 1888 | "403": { 1889 | "description": "" 1890 | }, 1891 | "500": { 1892 | "description": "Failed to delete secrets with given names" 1893 | } 1894 | }, 1895 | "tags": [ 1896 | "Secrets" 1897 | ], 1898 | "security": [ 1899 | { 1900 | "bearer": [] 1901 | } 1902 | ] 1903 | } 1904 | }, 1905 | "/v1/projects/{ref}/ssl-enforcement": { 1906 | "get": { 1907 | "operationId": "v1-get-ssl-enforcement-config", 1908 | "summary": "[Beta] Get project's SSL enforcement configuration.", 1909 | "parameters": [ 1910 | { 1911 | "name": "ref", 1912 | "required": true, 1913 | "in": "path", 1914 | "description": "Project ref", 1915 | "schema": { 1916 | "minLength": 20, 1917 | "maxLength": 20, 1918 | "type": "string" 1919 | } 1920 | } 1921 | ], 1922 | "responses": { 1923 | "200": { 1924 | "description": "", 1925 | "content": { 1926 | "application/json": { 1927 | "schema": { 1928 | "$ref": "#/components/schemas/SslEnforcementResponse" 1929 | } 1930 | } 1931 | } 1932 | }, 1933 | "403": { 1934 | "description": "" 1935 | }, 1936 | "500": { 1937 | "description": "Failed to retrieve project's SSL enforcement config" 1938 | } 1939 | }, 1940 | "tags": [ 1941 | "Database" 1942 | ], 1943 | "security": [ 1944 | { 1945 | "bearer": [] 1946 | } 1947 | ] 1948 | }, 1949 | "put": { 1950 | "operationId": "v1-update-ssl-enforcement-config", 1951 | "summary": "[Beta] Update project's SSL enforcement configuration.", 1952 | "parameters": [ 1953 | { 1954 | "name": "ref", 1955 | "required": true, 1956 | "in": "path", 1957 | "description": "Project ref", 1958 | "schema": { 1959 | "minLength": 20, 1960 | "maxLength": 20, 1961 | "type": "string" 1962 | } 1963 | } 1964 | ], 1965 | "requestBody": { 1966 | "required": true, 1967 | "content": { 1968 | "application/json": { 1969 | "schema": { 1970 | "$ref": "#/components/schemas/SslEnforcementRequest" 1971 | } 1972 | } 1973 | } 1974 | }, 1975 | "responses": { 1976 | "200": { 1977 | "description": "", 1978 | "content": { 1979 | "application/json": { 1980 | "schema": { 1981 | "$ref": "#/components/schemas/SslEnforcementResponse" 1982 | } 1983 | } 1984 | } 1985 | }, 1986 | "403": { 1987 | "description": "" 1988 | }, 1989 | "500": { 1990 | "description": "Failed to update project's SSL enforcement configuration." 1991 | } 1992 | }, 1993 | "tags": [ 1994 | "Database" 1995 | ], 1996 | "security": [ 1997 | { 1998 | "bearer": [] 1999 | } 2000 | ] 2001 | } 2002 | }, 2003 | "/v1/projects/{ref}/types/typescript": { 2004 | "get": { 2005 | "operationId": "v1-generate-typescript-types", 2006 | "summary": "Generate TypeScript types", 2007 | "description": "Returns the TypeScript types of your schema for use with supabase-js.", 2008 | "parameters": [ 2009 | { 2010 | "name": "included_schemas", 2011 | "required": false, 2012 | "in": "query", 2013 | "schema": { 2014 | "default": "public", 2015 | "type": "string" 2016 | } 2017 | }, 2018 | { 2019 | "name": "ref", 2020 | "required": true, 2021 | "in": "path", 2022 | "description": "Project ref", 2023 | "schema": { 2024 | "minLength": 20, 2025 | "maxLength": 20, 2026 | "type": "string" 2027 | } 2028 | } 2029 | ], 2030 | "responses": { 2031 | "200": { 2032 | "description": "", 2033 | "content": { 2034 | "application/json": { 2035 | "schema": { 2036 | "$ref": "#/components/schemas/TypescriptResponse" 2037 | } 2038 | } 2039 | } 2040 | }, 2041 | "403": { 2042 | "description": "" 2043 | }, 2044 | "500": { 2045 | "description": "Failed to generate TypeScript types" 2046 | } 2047 | }, 2048 | "tags": [ 2049 | "Database" 2050 | ], 2051 | "security": [ 2052 | { 2053 | "bearer": [] 2054 | } 2055 | ] 2056 | } 2057 | }, 2058 | "/v1/projects/{ref}/vanity-subdomain": { 2059 | "get": { 2060 | "operationId": "v1-get-vanity-subdomain-config", 2061 | "summary": "[Beta] Gets current vanity subdomain config", 2062 | "parameters": [ 2063 | { 2064 | "name": "ref", 2065 | "required": true, 2066 | "in": "path", 2067 | "description": "Project ref", 2068 | "schema": { 2069 | "minLength": 20, 2070 | "maxLength": 20, 2071 | "type": "string" 2072 | } 2073 | } 2074 | ], 2075 | "responses": { 2076 | "200": { 2077 | "description": "", 2078 | "content": { 2079 | "application/json": { 2080 | "schema": { 2081 | "$ref": "#/components/schemas/VanitySubdomainConfigResponse" 2082 | } 2083 | } 2084 | } 2085 | }, 2086 | "403": { 2087 | "description": "" 2088 | }, 2089 | "500": { 2090 | "description": "Failed to get project vanity subdomain configuration" 2091 | } 2092 | }, 2093 | "tags": [ 2094 | "Domains" 2095 | ], 2096 | "security": [ 2097 | { 2098 | "bearer": [] 2099 | } 2100 | ] 2101 | }, 2102 | "delete": { 2103 | "operationId": "v1-deactivate-vanity-subdomain-config", 2104 | "summary": "[Beta] Deletes a project's vanity subdomain configuration", 2105 | "parameters": [ 2106 | { 2107 | "name": "ref", 2108 | "required": true, 2109 | "in": "path", 2110 | "description": "Project ref", 2111 | "schema": { 2112 | "minLength": 20, 2113 | "maxLength": 20, 2114 | "type": "string" 2115 | } 2116 | } 2117 | ], 2118 | "responses": { 2119 | "200": { 2120 | "description": "" 2121 | }, 2122 | "403": { 2123 | "description": "" 2124 | }, 2125 | "500": { 2126 | "description": "Failed to delete project vanity subdomain configuration" 2127 | } 2128 | }, 2129 | "tags": [ 2130 | "Domains" 2131 | ], 2132 | "security": [ 2133 | { 2134 | "bearer": [] 2135 | } 2136 | ] 2137 | } 2138 | }, 2139 | "/v1/projects/{ref}/vanity-subdomain/check-availability": { 2140 | "post": { 2141 | "operationId": "v1-check-vanity-subdomain-availability", 2142 | "summary": "[Beta] Checks vanity subdomain availability", 2143 | "parameters": [ 2144 | { 2145 | "name": "ref", 2146 | "required": true, 2147 | "in": "path", 2148 | "description": "Project ref", 2149 | "schema": { 2150 | "minLength": 20, 2151 | "maxLength": 20, 2152 | "type": "string" 2153 | } 2154 | } 2155 | ], 2156 | "requestBody": { 2157 | "required": true, 2158 | "content": { 2159 | "application/json": { 2160 | "schema": { 2161 | "$ref": "#/components/schemas/VanitySubdomainBody" 2162 | } 2163 | } 2164 | } 2165 | }, 2166 | "responses": { 2167 | "201": { 2168 | "description": "", 2169 | "content": { 2170 | "application/json": { 2171 | "schema": { 2172 | "$ref": "#/components/schemas/SubdomainAvailabilityResponse" 2173 | } 2174 | } 2175 | } 2176 | }, 2177 | "403": { 2178 | "description": "" 2179 | }, 2180 | "500": { 2181 | "description": "Failed to check project vanity subdomain configuration" 2182 | } 2183 | }, 2184 | "tags": [ 2185 | "Domains" 2186 | ], 2187 | "security": [ 2188 | { 2189 | "bearer": [] 2190 | } 2191 | ] 2192 | } 2193 | }, 2194 | "/v1/projects/{ref}/vanity-subdomain/activate": { 2195 | "post": { 2196 | "operationId": "v1-activate-vanity-subdomain-config", 2197 | "summary": "[Beta] Activates a vanity subdomain for a project.", 2198 | "parameters": [ 2199 | { 2200 | "name": "ref", 2201 | "required": true, 2202 | "in": "path", 2203 | "description": "Project ref", 2204 | "schema": { 2205 | "minLength": 20, 2206 | "maxLength": 20, 2207 | "type": "string" 2208 | } 2209 | } 2210 | ], 2211 | "requestBody": { 2212 | "required": true, 2213 | "content": { 2214 | "application/json": { 2215 | "schema": { 2216 | "$ref": "#/components/schemas/VanitySubdomainBody" 2217 | } 2218 | } 2219 | } 2220 | }, 2221 | "responses": { 2222 | "201": { 2223 | "description": "", 2224 | "content": { 2225 | "application/json": { 2226 | "schema": { 2227 | "$ref": "#/components/schemas/ActivateVanitySubdomainResponse" 2228 | } 2229 | } 2230 | } 2231 | }, 2232 | "403": { 2233 | "description": "" 2234 | }, 2235 | "500": { 2236 | "description": "Failed to activate project vanity subdomain configuration" 2237 | } 2238 | }, 2239 | "tags": [ 2240 | "Domains" 2241 | ], 2242 | "security": [ 2243 | { 2244 | "bearer": [] 2245 | } 2246 | ] 2247 | } 2248 | }, 2249 | "/v1/projects/{ref}/upgrade": { 2250 | "post": { 2251 | "operationId": "v1-upgrade-postgres-version", 2252 | "summary": "[Beta] Upgrades the project's Postgres version", 2253 | "parameters": [ 2254 | { 2255 | "name": "ref", 2256 | "required": true, 2257 | "in": "path", 2258 | "description": "Project ref", 2259 | "schema": { 2260 | "minLength": 20, 2261 | "maxLength": 20, 2262 | "type": "string" 2263 | } 2264 | } 2265 | ], 2266 | "requestBody": { 2267 | "required": true, 2268 | "content": { 2269 | "application/json": { 2270 | "schema": { 2271 | "$ref": "#/components/schemas/UpgradeDatabaseBody" 2272 | } 2273 | } 2274 | } 2275 | }, 2276 | "responses": { 2277 | "201": { 2278 | "description": "", 2279 | "content": { 2280 | "application/json": { 2281 | "schema": { 2282 | "$ref": "#/components/schemas/ProjectUpgradeInitiateResponse" 2283 | } 2284 | } 2285 | } 2286 | }, 2287 | "403": { 2288 | "description": "" 2289 | }, 2290 | "500": { 2291 | "description": "Failed to initiate project upgrade" 2292 | } 2293 | }, 2294 | "tags": [ 2295 | "Projects" 2296 | ], 2297 | "security": [ 2298 | { 2299 | "bearer": [] 2300 | } 2301 | ] 2302 | } 2303 | }, 2304 | "/v1/projects/{ref}/upgrade/eligibility": { 2305 | "get": { 2306 | "operationId": "v1-get-postgres-upgrade-eligibility", 2307 | "summary": "[Beta] Returns the project's eligibility for upgrades", 2308 | "parameters": [ 2309 | { 2310 | "name": "ref", 2311 | "required": true, 2312 | "in": "path", 2313 | "description": "Project ref", 2314 | "schema": { 2315 | "minLength": 20, 2316 | "maxLength": 20, 2317 | "type": "string" 2318 | } 2319 | } 2320 | ], 2321 | "responses": { 2322 | "200": { 2323 | "description": "", 2324 | "content": { 2325 | "application/json": { 2326 | "schema": { 2327 | "$ref": "#/components/schemas/ProjectUpgradeEligibilityResponse" 2328 | } 2329 | } 2330 | } 2331 | }, 2332 | "403": { 2333 | "description": "" 2334 | }, 2335 | "500": { 2336 | "description": "Failed to determine project upgrade eligibility" 2337 | } 2338 | }, 2339 | "tags": [ 2340 | "Projects" 2341 | ], 2342 | "security": [ 2343 | { 2344 | "bearer": [] 2345 | } 2346 | ] 2347 | } 2348 | }, 2349 | "/v1/projects/{ref}/upgrade/status": { 2350 | "get": { 2351 | "operationId": "v1-get-postgres-upgrade-status", 2352 | "summary": "[Beta] Gets the latest status of the project's upgrade", 2353 | "parameters": [ 2354 | { 2355 | "name": "ref", 2356 | "required": true, 2357 | "in": "path", 2358 | "description": "Project ref", 2359 | "schema": { 2360 | "minLength": 20, 2361 | "maxLength": 20, 2362 | "type": "string" 2363 | } 2364 | }, 2365 | { 2366 | "name": "tracking_id", 2367 | "required": false, 2368 | "in": "query", 2369 | "schema": { 2370 | "type": "string" 2371 | } 2372 | } 2373 | ], 2374 | "responses": { 2375 | "200": { 2376 | "description": "", 2377 | "content": { 2378 | "application/json": { 2379 | "schema": { 2380 | "$ref": "#/components/schemas/DatabaseUpgradeStatusResponse" 2381 | } 2382 | } 2383 | } 2384 | }, 2385 | "403": { 2386 | "description": "" 2387 | }, 2388 | "500": { 2389 | "description": "Failed to retrieve project upgrade status" 2390 | } 2391 | }, 2392 | "tags": [ 2393 | "Projects" 2394 | ], 2395 | "security": [ 2396 | { 2397 | "bearer": [] 2398 | } 2399 | ] 2400 | } 2401 | }, 2402 | "/v1/projects/{ref}/readonly": { 2403 | "get": { 2404 | "operationId": "v1-get-readonly-mode-status", 2405 | "summary": "Returns project's readonly mode status", 2406 | "parameters": [ 2407 | { 2408 | "name": "ref", 2409 | "required": true, 2410 | "in": "path", 2411 | "description": "Project ref", 2412 | "schema": { 2413 | "minLength": 20, 2414 | "maxLength": 20, 2415 | "type": "string" 2416 | } 2417 | } 2418 | ], 2419 | "responses": { 2420 | "200": { 2421 | "description": "", 2422 | "content": { 2423 | "application/json": { 2424 | "schema": { 2425 | "$ref": "#/components/schemas/ReadOnlyStatusResponse" 2426 | } 2427 | } 2428 | } 2429 | }, 2430 | "500": { 2431 | "description": "Failed to get project readonly mode status" 2432 | } 2433 | }, 2434 | "tags": [ 2435 | "Database" 2436 | ], 2437 | "security": [ 2438 | { 2439 | "bearer": [] 2440 | } 2441 | ] 2442 | } 2443 | }, 2444 | "/v1/projects/{ref}/readonly/temporary-disable": { 2445 | "post": { 2446 | "operationId": "v1-disable-readonly-mode-temporarily", 2447 | "summary": "Disables project's readonly mode for the next 15 minutes", 2448 | "parameters": [ 2449 | { 2450 | "name": "ref", 2451 | "required": true, 2452 | "in": "path", 2453 | "description": "Project ref", 2454 | "schema": { 2455 | "minLength": 20, 2456 | "maxLength": 20, 2457 | "type": "string" 2458 | } 2459 | } 2460 | ], 2461 | "responses": { 2462 | "201": { 2463 | "description": "" 2464 | }, 2465 | "500": { 2466 | "description": "Failed to disable project's readonly mode" 2467 | } 2468 | }, 2469 | "tags": [ 2470 | "Database" 2471 | ], 2472 | "security": [ 2473 | { 2474 | "bearer": [] 2475 | } 2476 | ] 2477 | } 2478 | }, 2479 | "/v1/projects/{ref}/read-replicas/setup": { 2480 | "post": { 2481 | "operationId": "v1-setup-a-read-replica", 2482 | "summary": "[Beta] Set up a read replica", 2483 | "parameters": [ 2484 | { 2485 | "name": "ref", 2486 | "required": true, 2487 | "in": "path", 2488 | "description": "Project ref", 2489 | "schema": { 2490 | "minLength": 20, 2491 | "maxLength": 20, 2492 | "type": "string" 2493 | } 2494 | } 2495 | ], 2496 | "requestBody": { 2497 | "required": true, 2498 | "content": { 2499 | "application/json": { 2500 | "schema": { 2501 | "$ref": "#/components/schemas/SetUpReadReplicaBody" 2502 | } 2503 | } 2504 | } 2505 | }, 2506 | "responses": { 2507 | "201": { 2508 | "description": "" 2509 | }, 2510 | "403": { 2511 | "description": "" 2512 | }, 2513 | "500": { 2514 | "description": "Failed to set up read replica" 2515 | } 2516 | }, 2517 | "tags": [ 2518 | "Database" 2519 | ], 2520 | "security": [ 2521 | { 2522 | "bearer": [] 2523 | } 2524 | ] 2525 | } 2526 | }, 2527 | "/v1/projects/{ref}/read-replicas/remove": { 2528 | "post": { 2529 | "operationId": "v1-remove-a-read-replica", 2530 | "summary": "[Beta] Remove a read replica", 2531 | "parameters": [ 2532 | { 2533 | "name": "ref", 2534 | "required": true, 2535 | "in": "path", 2536 | "description": "Project ref", 2537 | "schema": { 2538 | "minLength": 20, 2539 | "maxLength": 20, 2540 | "type": "string" 2541 | } 2542 | } 2543 | ], 2544 | "requestBody": { 2545 | "required": true, 2546 | "content": { 2547 | "application/json": { 2548 | "schema": { 2549 | "$ref": "#/components/schemas/RemoveReadReplicaBody" 2550 | } 2551 | } 2552 | } 2553 | }, 2554 | "responses": { 2555 | "201": { 2556 | "description": "" 2557 | }, 2558 | "403": { 2559 | "description": "" 2560 | }, 2561 | "500": { 2562 | "description": "Failed to remove read replica" 2563 | } 2564 | }, 2565 | "tags": [ 2566 | "Database" 2567 | ], 2568 | "security": [ 2569 | { 2570 | "bearer": [] 2571 | } 2572 | ] 2573 | } 2574 | }, 2575 | "/v1/projects/{ref}/health": { 2576 | "get": { 2577 | "operationId": "v1-get-services-health", 2578 | "summary": "Gets project's service health status", 2579 | "parameters": [ 2580 | { 2581 | "name": "ref", 2582 | "required": true, 2583 | "in": "path", 2584 | "description": "Project ref", 2585 | "schema": { 2586 | "minLength": 20, 2587 | "maxLength": 20, 2588 | "type": "string" 2589 | } 2590 | }, 2591 | { 2592 | "name": "timeout_ms", 2593 | "required": false, 2594 | "in": "query", 2595 | "schema": { 2596 | "minimum": 0, 2597 | "maximum": 10000, 2598 | "type": "integer" 2599 | } 2600 | }, 2601 | { 2602 | "name": "services", 2603 | "required": true, 2604 | "in": "query", 2605 | "schema": { 2606 | "type": "array", 2607 | "items": { 2608 | "type": "string", 2609 | "enum": [ 2610 | "auth", 2611 | "db", 2612 | "pooler", 2613 | "realtime", 2614 | "rest", 2615 | "storage" 2616 | ] 2617 | } 2618 | } 2619 | } 2620 | ], 2621 | "responses": { 2622 | "200": { 2623 | "description": "", 2624 | "content": { 2625 | "application/json": { 2626 | "schema": { 2627 | "type": "array", 2628 | "items": { 2629 | "$ref": "#/components/schemas/V1ServiceHealthResponse" 2630 | } 2631 | } 2632 | } 2633 | } 2634 | }, 2635 | "403": { 2636 | "description": "" 2637 | }, 2638 | "500": { 2639 | "description": "Failed to retrieve project's service health status" 2640 | } 2641 | }, 2642 | "tags": [ 2643 | "Projects" 2644 | ], 2645 | "security": [ 2646 | { 2647 | "bearer": [] 2648 | } 2649 | ] 2650 | } 2651 | }, 2652 | "/v1/projects/{ref}/config/storage": { 2653 | "get": { 2654 | "operationId": "v1-get-storage-config", 2655 | "summary": "Gets project's storage config", 2656 | "parameters": [ 2657 | { 2658 | "name": "ref", 2659 | "required": true, 2660 | "in": "path", 2661 | "description": "Project ref", 2662 | "schema": { 2663 | "minLength": 20, 2664 | "maxLength": 20, 2665 | "type": "string" 2666 | } 2667 | } 2668 | ], 2669 | "responses": { 2670 | "200": { 2671 | "description": "", 2672 | "content": { 2673 | "application/json": { 2674 | "schema": { 2675 | "$ref": "#/components/schemas/StorageConfigResponse" 2676 | } 2677 | } 2678 | } 2679 | }, 2680 | "403": { 2681 | "description": "" 2682 | }, 2683 | "500": { 2684 | "description": "Failed to retrieve project's storage config" 2685 | } 2686 | }, 2687 | "tags": [ 2688 | "Storage" 2689 | ], 2690 | "security": [ 2691 | { 2692 | "bearer": [] 2693 | } 2694 | ] 2695 | }, 2696 | "patch": { 2697 | "operationId": "v1-update-storage-config", 2698 | "summary": "Updates project's storage config", 2699 | "parameters": [ 2700 | { 2701 | "name": "ref", 2702 | "required": true, 2703 | "in": "path", 2704 | "description": "Project ref", 2705 | "schema": { 2706 | "minLength": 20, 2707 | "maxLength": 20, 2708 | "type": "string" 2709 | } 2710 | } 2711 | ], 2712 | "requestBody": { 2713 | "required": true, 2714 | "content": { 2715 | "application/json": { 2716 | "schema": { 2717 | "$ref": "#/components/schemas/UpdateStorageConfigBody" 2718 | } 2719 | } 2720 | } 2721 | }, 2722 | "responses": { 2723 | "200": { 2724 | "description": "" 2725 | }, 2726 | "403": { 2727 | "description": "" 2728 | }, 2729 | "500": { 2730 | "description": "Failed to update project's storage config" 2731 | } 2732 | }, 2733 | "tags": [ 2734 | "Storage" 2735 | ], 2736 | "security": [ 2737 | { 2738 | "bearer": [] 2739 | } 2740 | ] 2741 | } 2742 | }, 2743 | "/v1/projects/{ref}/config/database/postgres": { 2744 | "get": { 2745 | "operationId": "v1-get-postgres-config", 2746 | "summary": "Gets project's Postgres config", 2747 | "parameters": [ 2748 | { 2749 | "name": "ref", 2750 | "required": true, 2751 | "in": "path", 2752 | "description": "Project ref", 2753 | "schema": { 2754 | "minLength": 20, 2755 | "maxLength": 20, 2756 | "type": "string" 2757 | } 2758 | } 2759 | ], 2760 | "responses": { 2761 | "200": { 2762 | "description": "", 2763 | "content": { 2764 | "application/json": { 2765 | "schema": { 2766 | "$ref": "#/components/schemas/PostgresConfigResponse" 2767 | } 2768 | } 2769 | } 2770 | }, 2771 | "500": { 2772 | "description": "Failed to retrieve project's Postgres config" 2773 | } 2774 | }, 2775 | "tags": [ 2776 | "Database" 2777 | ], 2778 | "security": [ 2779 | { 2780 | "bearer": [] 2781 | } 2782 | ] 2783 | }, 2784 | "put": { 2785 | "operationId": "v1-update-postgres-config", 2786 | "summary": "Updates project's Postgres config", 2787 | "parameters": [ 2788 | { 2789 | "name": "ref", 2790 | "required": true, 2791 | "in": "path", 2792 | "description": "Project ref", 2793 | "schema": { 2794 | "minLength": 20, 2795 | "maxLength": 20, 2796 | "type": "string" 2797 | } 2798 | } 2799 | ], 2800 | "requestBody": { 2801 | "required": true, 2802 | "content": { 2803 | "application/json": { 2804 | "schema": { 2805 | "$ref": "#/components/schemas/UpdatePostgresConfigBody" 2806 | } 2807 | } 2808 | } 2809 | }, 2810 | "responses": { 2811 | "200": { 2812 | "description": "", 2813 | "content": { 2814 | "application/json": { 2815 | "schema": { 2816 | "$ref": "#/components/schemas/PostgresConfigResponse" 2817 | } 2818 | } 2819 | } 2820 | }, 2821 | "403": { 2822 | "description": "" 2823 | }, 2824 | "500": { 2825 | "description": "Failed to update project's Postgres config" 2826 | } 2827 | }, 2828 | "tags": [ 2829 | "Database" 2830 | ], 2831 | "security": [ 2832 | { 2833 | "bearer": [] 2834 | } 2835 | ] 2836 | } 2837 | }, 2838 | "/v1/projects/{ref}/config/database/pgbouncer": { 2839 | "get": { 2840 | "operationId": "v1-get-project-pgbouncer-config", 2841 | "summary": "Get project's pgbouncer config", 2842 | "parameters": [ 2843 | { 2844 | "name": "ref", 2845 | "required": true, 2846 | "in": "path", 2847 | "description": "Project ref", 2848 | "schema": { 2849 | "minLength": 20, 2850 | "maxLength": 20, 2851 | "type": "string" 2852 | } 2853 | } 2854 | ], 2855 | "responses": { 2856 | "200": { 2857 | "description": "", 2858 | "content": { 2859 | "application/json": { 2860 | "schema": { 2861 | "$ref": "#/components/schemas/V1PgbouncerConfigResponse" 2862 | } 2863 | } 2864 | } 2865 | }, 2866 | "500": { 2867 | "description": "Failed to retrieve project's pgbouncer config" 2868 | } 2869 | }, 2870 | "tags": [ 2871 | "Database" 2872 | ] 2873 | } 2874 | }, 2875 | "/v1/projects/{ref}/config/database/pooler": { 2876 | "get": { 2877 | "operationId": "v1-get-supavisor-config", 2878 | "summary": "Gets project's supavisor config", 2879 | "parameters": [ 2880 | { 2881 | "name": "ref", 2882 | "required": true, 2883 | "in": "path", 2884 | "description": "Project ref", 2885 | "schema": { 2886 | "minLength": 20, 2887 | "maxLength": 20, 2888 | "type": "string" 2889 | } 2890 | } 2891 | ], 2892 | "responses": { 2893 | "200": { 2894 | "description": "", 2895 | "content": { 2896 | "application/json": { 2897 | "schema": { 2898 | "type": "array", 2899 | "items": { 2900 | "$ref": "#/components/schemas/SupavisorConfigResponse" 2901 | } 2902 | } 2903 | } 2904 | } 2905 | }, 2906 | "500": { 2907 | "description": "Failed to retrieve project's supavisor config" 2908 | } 2909 | }, 2910 | "tags": [ 2911 | "Database" 2912 | ], 2913 | "security": [ 2914 | { 2915 | "bearer": [] 2916 | } 2917 | ] 2918 | }, 2919 | "patch": { 2920 | "operationId": "v1-update-supavisor-config", 2921 | "summary": "Updates project's supavisor config", 2922 | "parameters": [ 2923 | { 2924 | "name": "ref", 2925 | "required": true, 2926 | "in": "path", 2927 | "description": "Project ref", 2928 | "schema": { 2929 | "minLength": 20, 2930 | "maxLength": 20, 2931 | "type": "string" 2932 | } 2933 | } 2934 | ], 2935 | "requestBody": { 2936 | "required": true, 2937 | "content": { 2938 | "application/json": { 2939 | "schema": { 2940 | "$ref": "#/components/schemas/UpdateSupavisorConfigBody" 2941 | } 2942 | } 2943 | } 2944 | }, 2945 | "responses": { 2946 | "200": { 2947 | "description": "", 2948 | "content": { 2949 | "application/json": { 2950 | "schema": { 2951 | "$ref": "#/components/schemas/UpdateSupavisorConfigResponse" 2952 | } 2953 | } 2954 | } 2955 | }, 2956 | "403": { 2957 | "description": "" 2958 | }, 2959 | "500": { 2960 | "description": "Failed to update project's supavisor config" 2961 | } 2962 | }, 2963 | "tags": [ 2964 | "Database" 2965 | ], 2966 | "security": [ 2967 | { 2968 | "bearer": [] 2969 | } 2970 | ] 2971 | } 2972 | }, 2973 | "/v1/projects/{ref}/config/auth": { 2974 | "get": { 2975 | "operationId": "v1-get-auth-service-config", 2976 | "summary": "Gets project's auth config", 2977 | "parameters": [ 2978 | { 2979 | "name": "ref", 2980 | "required": true, 2981 | "in": "path", 2982 | "description": "Project ref", 2983 | "schema": { 2984 | "minLength": 20, 2985 | "maxLength": 20, 2986 | "type": "string" 2987 | } 2988 | } 2989 | ], 2990 | "responses": { 2991 | "200": { 2992 | "description": "", 2993 | "content": { 2994 | "application/json": { 2995 | "schema": { 2996 | "$ref": "#/components/schemas/AuthConfigResponse" 2997 | } 2998 | } 2999 | } 3000 | }, 3001 | "403": { 3002 | "description": "" 3003 | }, 3004 | "500": { 3005 | "description": "Failed to retrieve project's auth config" 3006 | } 3007 | }, 3008 | "tags": [ 3009 | "Auth" 3010 | ], 3011 | "security": [ 3012 | { 3013 | "bearer": [] 3014 | } 3015 | ] 3016 | }, 3017 | "patch": { 3018 | "operationId": "v1-update-auth-service-config", 3019 | "summary": "Updates a project's auth config", 3020 | "parameters": [ 3021 | { 3022 | "name": "ref", 3023 | "required": true, 3024 | "in": "path", 3025 | "description": "Project ref", 3026 | "schema": { 3027 | "minLength": 20, 3028 | "maxLength": 20, 3029 | "type": "string" 3030 | } 3031 | } 3032 | ], 3033 | "requestBody": { 3034 | "required": true, 3035 | "content": { 3036 | "application/json": { 3037 | "schema": { 3038 | "$ref": "#/components/schemas/UpdateAuthConfigBody" 3039 | } 3040 | } 3041 | } 3042 | }, 3043 | "responses": { 3044 | "200": { 3045 | "description": "", 3046 | "content": { 3047 | "application/json": { 3048 | "schema": { 3049 | "$ref": "#/components/schemas/AuthConfigResponse" 3050 | } 3051 | } 3052 | } 3053 | }, 3054 | "403": { 3055 | "description": "" 3056 | }, 3057 | "500": { 3058 | "description": "Failed to update project's auth config" 3059 | } 3060 | }, 3061 | "tags": [ 3062 | "Auth" 3063 | ], 3064 | "security": [ 3065 | { 3066 | "bearer": [] 3067 | } 3068 | ] 3069 | } 3070 | }, 3071 | "/v1/projects/{ref}/config/auth/third-party-auth": { 3072 | "post": { 3073 | "operationId": "createTPAForProject", 3074 | "summary": "Creates a new third-party auth integration", 3075 | "parameters": [ 3076 | { 3077 | "name": "ref", 3078 | "required": true, 3079 | "in": "path", 3080 | "description": "Project ref", 3081 | "schema": { 3082 | "minLength": 20, 3083 | "maxLength": 20, 3084 | "type": "string" 3085 | } 3086 | } 3087 | ], 3088 | "requestBody": { 3089 | "required": true, 3090 | "content": { 3091 | "application/json": { 3092 | "schema": { 3093 | "$ref": "#/components/schemas/CreateThirdPartyAuthBody" 3094 | } 3095 | } 3096 | } 3097 | }, 3098 | "responses": { 3099 | "201": { 3100 | "description": "", 3101 | "content": { 3102 | "application/json": { 3103 | "schema": { 3104 | "$ref": "#/components/schemas/ThirdPartyAuth" 3105 | } 3106 | } 3107 | } 3108 | }, 3109 | "403": { 3110 | "description": "" 3111 | } 3112 | }, 3113 | "tags": [ 3114 | "Auth" 3115 | ], 3116 | "security": [ 3117 | { 3118 | "bearer": [] 3119 | } 3120 | ] 3121 | }, 3122 | "get": { 3123 | "operationId": "listTPAForProject", 3124 | "summary": "[Alpha] Lists all third-party auth integrations", 3125 | "parameters": [ 3126 | { 3127 | "name": "ref", 3128 | "required": true, 3129 | "in": "path", 3130 | "description": "Project ref", 3131 | "schema": { 3132 | "minLength": 20, 3133 | "maxLength": 20, 3134 | "type": "string" 3135 | } 3136 | } 3137 | ], 3138 | "responses": { 3139 | "200": { 3140 | "description": "", 3141 | "content": { 3142 | "application/json": { 3143 | "schema": { 3144 | "type": "array", 3145 | "items": { 3146 | "$ref": "#/components/schemas/ThirdPartyAuth" 3147 | } 3148 | } 3149 | } 3150 | } 3151 | }, 3152 | "403": { 3153 | "description": "" 3154 | } 3155 | }, 3156 | "tags": [ 3157 | "Auth" 3158 | ], 3159 | "security": [ 3160 | { 3161 | "bearer": [] 3162 | } 3163 | ] 3164 | } 3165 | }, 3166 | "/v1/projects/{ref}/config/auth/third-party-auth/{tpa_id}": { 3167 | "delete": { 3168 | "operationId": "deleteTPAForProject", 3169 | "summary": "[Alpha] Removes a third-party auth integration", 3170 | "parameters": [ 3171 | { 3172 | "name": "ref", 3173 | "required": true, 3174 | "in": "path", 3175 | "description": "Project ref", 3176 | "schema": { 3177 | "minLength": 20, 3178 | "maxLength": 20, 3179 | "type": "string" 3180 | } 3181 | }, 3182 | { 3183 | "name": "tpa_id", 3184 | "required": true, 3185 | "in": "path", 3186 | "schema": { 3187 | "type": "string" 3188 | } 3189 | } 3190 | ], 3191 | "responses": { 3192 | "200": { 3193 | "description": "", 3194 | "content": { 3195 | "application/json": { 3196 | "schema": { 3197 | "$ref": "#/components/schemas/ThirdPartyAuth" 3198 | } 3199 | } 3200 | } 3201 | }, 3202 | "403": { 3203 | "description": "" 3204 | } 3205 | }, 3206 | "tags": [ 3207 | "Auth" 3208 | ], 3209 | "security": [ 3210 | { 3211 | "bearer": [] 3212 | } 3213 | ] 3214 | }, 3215 | "get": { 3216 | "operationId": "getTPAForProject", 3217 | "summary": "[Alpha] Get a third-party integration", 3218 | "parameters": [ 3219 | { 3220 | "name": "ref", 3221 | "required": true, 3222 | "in": "path", 3223 | "description": "Project ref", 3224 | "schema": { 3225 | "minLength": 20, 3226 | "maxLength": 20, 3227 | "type": "string" 3228 | } 3229 | }, 3230 | { 3231 | "name": "tpa_id", 3232 | "required": true, 3233 | "in": "path", 3234 | "schema": { 3235 | "type": "string" 3236 | } 3237 | } 3238 | ], 3239 | "responses": { 3240 | "200": { 3241 | "description": "", 3242 | "content": { 3243 | "application/json": { 3244 | "schema": { 3245 | "$ref": "#/components/schemas/ThirdPartyAuth" 3246 | } 3247 | } 3248 | } 3249 | }, 3250 | "403": { 3251 | "description": "" 3252 | } 3253 | }, 3254 | "tags": [ 3255 | "Auth" 3256 | ], 3257 | "security": [ 3258 | { 3259 | "bearer": [] 3260 | } 3261 | ] 3262 | } 3263 | }, 3264 | "/v1/projects/{ref}/pause": { 3265 | "post": { 3266 | "operationId": "v1-pause-a-project", 3267 | "summary": "Pauses the given project", 3268 | "parameters": [ 3269 | { 3270 | "name": "ref", 3271 | "required": true, 3272 | "in": "path", 3273 | "description": "Project ref", 3274 | "schema": { 3275 | "minLength": 20, 3276 | "maxLength": 20, 3277 | "type": "string" 3278 | } 3279 | } 3280 | ], 3281 | "responses": { 3282 | "200": { 3283 | "description": "" 3284 | }, 3285 | "403": { 3286 | "description": "" 3287 | } 3288 | }, 3289 | "tags": [ 3290 | "Projects" 3291 | ], 3292 | "security": [ 3293 | { 3294 | "bearer": [] 3295 | } 3296 | ] 3297 | } 3298 | }, 3299 | "/v1/projects/{ref}/restore": { 3300 | "get": { 3301 | "operationId": "v1-list-available-restore-versions", 3302 | "summary": "Lists available restore versions for the given project", 3303 | "parameters": [ 3304 | { 3305 | "name": "ref", 3306 | "required": true, 3307 | "in": "path", 3308 | "schema": { 3309 | "type": "string" 3310 | } 3311 | } 3312 | ], 3313 | "responses": { 3314 | "200": { 3315 | "description": "", 3316 | "content": { 3317 | "application/json": { 3318 | "schema": { 3319 | "$ref": "#/components/schemas/GetProjectAvailableRestoreVersionsResponse" 3320 | } 3321 | } 3322 | } 3323 | }, 3324 | "403": { 3325 | "description": "" 3326 | } 3327 | }, 3328 | "tags": [ 3329 | "Projects" 3330 | ], 3331 | "security": [ 3332 | { 3333 | "bearer": [] 3334 | } 3335 | ] 3336 | }, 3337 | "post": { 3338 | "operationId": "v1-restore-a-project", 3339 | "summary": "Restores the given project", 3340 | "parameters": [ 3341 | { 3342 | "name": "ref", 3343 | "required": true, 3344 | "in": "path", 3345 | "schema": { 3346 | "type": "string" 3347 | } 3348 | } 3349 | ], 3350 | "requestBody": { 3351 | "required": true, 3352 | "content": { 3353 | "application/json": { 3354 | "schema": { 3355 | "$ref": "#/components/schemas/RestoreProjectBodyDto" 3356 | } 3357 | } 3358 | } 3359 | }, 3360 | "responses": { 3361 | "200": { 3362 | "description": "" 3363 | }, 3364 | "403": { 3365 | "description": "" 3366 | } 3367 | }, 3368 | "tags": [ 3369 | "Projects" 3370 | ], 3371 | "security": [ 3372 | { 3373 | "bearer": [] 3374 | } 3375 | ] 3376 | } 3377 | }, 3378 | "/v1/projects/{ref}/restore/cancel": { 3379 | "post": { 3380 | "operationId": "v1-cancel-a-project-restoration", 3381 | "summary": "Cancels the given project restoration", 3382 | "parameters": [ 3383 | { 3384 | "name": "ref", 3385 | "required": true, 3386 | "in": "path", 3387 | "schema": { 3388 | "type": "string" 3389 | } 3390 | } 3391 | ], 3392 | "responses": { 3393 | "200": { 3394 | "description": "" 3395 | }, 3396 | "403": { 3397 | "description": "" 3398 | } 3399 | }, 3400 | "tags": [ 3401 | "Projects" 3402 | ], 3403 | "security": [ 3404 | { 3405 | "bearer": [] 3406 | } 3407 | ] 3408 | } 3409 | }, 3410 | "/v1/projects/{ref}/analytics/endpoints/logs.all": { 3411 | "get": { 3412 | "operationId": "getLogs", 3413 | "summary": "Gets project's logs", 3414 | "parameters": [ 3415 | { 3416 | "name": "iso_timestamp_end", 3417 | "required": false, 3418 | "in": "query", 3419 | "schema": { 3420 | "type": "string" 3421 | } 3422 | }, 3423 | { 3424 | "name": "iso_timestamp_start", 3425 | "required": false, 3426 | "in": "query", 3427 | "schema": { 3428 | "type": "string" 3429 | } 3430 | }, 3431 | { 3432 | "name": "sql", 3433 | "required": false, 3434 | "in": "query", 3435 | "schema": { 3436 | "type": "string" 3437 | } 3438 | }, 3439 | { 3440 | "name": "ref", 3441 | "required": true, 3442 | "in": "path", 3443 | "schema": { 3444 | "type": "string" 3445 | } 3446 | } 3447 | ], 3448 | "responses": { 3449 | "200": { 3450 | "description": "", 3451 | "content": { 3452 | "application/json": { 3453 | "schema": { 3454 | "$ref": "#/components/schemas/V1AnalyticsResponse" 3455 | } 3456 | } 3457 | } 3458 | }, 3459 | "403": { 3460 | "description": "" 3461 | } 3462 | }, 3463 | "tags": [ 3464 | "Analytics" 3465 | ], 3466 | "security": [ 3467 | { 3468 | "bearer": [] 3469 | } 3470 | ] 3471 | } 3472 | }, 3473 | "/v1/projects/{ref}/database/query": { 3474 | "post": { 3475 | "operationId": "v1-run-a-query", 3476 | "summary": "[Beta] Run sql query", 3477 | "parameters": [ 3478 | { 3479 | "name": "ref", 3480 | "required": true, 3481 | "in": "path", 3482 | "description": "Project ref", 3483 | "schema": { 3484 | "minLength": 20, 3485 | "maxLength": 20, 3486 | "type": "string" 3487 | } 3488 | } 3489 | ], 3490 | "requestBody": { 3491 | "required": true, 3492 | "content": { 3493 | "application/json": { 3494 | "schema": { 3495 | "$ref": "#/components/schemas/V1RunQueryBody" 3496 | } 3497 | } 3498 | } 3499 | }, 3500 | "responses": { 3501 | "201": { 3502 | "description": "", 3503 | "content": { 3504 | "application/json": { 3505 | "schema": { 3506 | "type": "object" 3507 | } 3508 | } 3509 | } 3510 | }, 3511 | "403": { 3512 | "description": "" 3513 | }, 3514 | "500": { 3515 | "description": "Failed to run sql query" 3516 | } 3517 | }, 3518 | "tags": [ 3519 | "Database" 3520 | ], 3521 | "security": [ 3522 | { 3523 | "bearer": [] 3524 | } 3525 | ] 3526 | } 3527 | }, 3528 | "/v1/projects/{ref}/database/webhooks/enable": { 3529 | "post": { 3530 | "operationId": "v1-enable-database-webhook", 3531 | "summary": "[Beta] Enables Database Webhooks on the project", 3532 | "parameters": [ 3533 | { 3534 | "name": "ref", 3535 | "required": true, 3536 | "in": "path", 3537 | "description": "Project ref", 3538 | "schema": { 3539 | "minLength": 20, 3540 | "maxLength": 20, 3541 | "type": "string" 3542 | } 3543 | } 3544 | ], 3545 | "responses": { 3546 | "201": { 3547 | "description": "" 3548 | }, 3549 | "403": { 3550 | "description": "" 3551 | }, 3552 | "500": { 3553 | "description": "Failed to enable Database Webhooks on the project" 3554 | } 3555 | }, 3556 | "tags": [ 3557 | "Database" 3558 | ], 3559 | "security": [ 3560 | { 3561 | "bearer": [] 3562 | } 3563 | ] 3564 | } 3565 | }, 3566 | "/v1/projects/{ref}/database/context": { 3567 | "get": { 3568 | "operationId": "getDatabaseMetadata", 3569 | "summary": "Gets database metadata for the given project.", 3570 | "description": "This is an **experimental** endpoint. It is subject to change or removal in future versions. Use it with caution, as it may not remain supported or stable.", 3571 | "deprecated": true, 3572 | "parameters": [ 3573 | { 3574 | "name": "ref", 3575 | "required": true, 3576 | "in": "path", 3577 | "schema": { 3578 | "type": "string" 3579 | } 3580 | } 3581 | ], 3582 | "responses": { 3583 | "200": { 3584 | "description": "", 3585 | "content": { 3586 | "application/json": { 3587 | "schema": { 3588 | "$ref": "#/components/schemas/GetProjectDbMetadataResponseDto" 3589 | } 3590 | } 3591 | } 3592 | }, 3593 | "403": { 3594 | "description": "" 3595 | } 3596 | }, 3597 | "tags": [ 3598 | "Database" 3599 | ], 3600 | "security": [ 3601 | { 3602 | "bearer": [] 3603 | } 3604 | ] 3605 | } 3606 | }, 3607 | "/v1/projects/{ref}/functions": { 3608 | "get": { 3609 | "operationId": "v1-list-all-functions", 3610 | "summary": "List all functions", 3611 | "description": "Returns all functions you've previously added to the specified project.", 3612 | "parameters": [ 3613 | { 3614 | "name": "ref", 3615 | "required": true, 3616 | "in": "path", 3617 | "description": "Project ref", 3618 | "schema": { 3619 | "minLength": 20, 3620 | "maxLength": 20, 3621 | "type": "string" 3622 | } 3623 | } 3624 | ], 3625 | "responses": { 3626 | "200": { 3627 | "description": "", 3628 | "content": { 3629 | "application/json": { 3630 | "schema": { 3631 | "type": "array", 3632 | "items": { 3633 | "$ref": "#/components/schemas/FunctionResponse" 3634 | } 3635 | } 3636 | } 3637 | } 3638 | }, 3639 | "403": { 3640 | "description": "" 3641 | }, 3642 | "500": { 3643 | "description": "Failed to retrieve project's functions" 3644 | } 3645 | }, 3646 | "tags": [ 3647 | "Edge Functions" 3648 | ], 3649 | "security": [ 3650 | { 3651 | "bearer": [] 3652 | } 3653 | ] 3654 | }, 3655 | "post": { 3656 | "operationId": "v1-create-a-function", 3657 | "summary": "Create a function", 3658 | "description": "This endpoint is deprecated - use the deploy endpoint. Creates a function and adds it to the specified project.", 3659 | "deprecated": true, 3660 | "parameters": [ 3661 | { 3662 | "name": "ref", 3663 | "required": true, 3664 | "in": "path", 3665 | "description": "Project ref", 3666 | "schema": { 3667 | "minLength": 20, 3668 | "maxLength": 20, 3669 | "type": "string" 3670 | } 3671 | }, 3672 | { 3673 | "name": "slug", 3674 | "required": false, 3675 | "in": "query", 3676 | "schema": { 3677 | "pattern": "/^[A-Za-z0-9_-]+$/", 3678 | "type": "string" 3679 | } 3680 | }, 3681 | { 3682 | "name": "name", 3683 | "required": false, 3684 | "in": "query", 3685 | "schema": { 3686 | "type": "string" 3687 | } 3688 | }, 3689 | { 3690 | "name": "verify_jwt", 3691 | "required": false, 3692 | "in": "query", 3693 | "schema": { 3694 | "type": "boolean" 3695 | } 3696 | }, 3697 | { 3698 | "name": "import_map", 3699 | "required": false, 3700 | "in": "query", 3701 | "schema": { 3702 | "type": "boolean" 3703 | } 3704 | }, 3705 | { 3706 | "name": "entrypoint_path", 3707 | "required": false, 3708 | "in": "query", 3709 | "schema": { 3710 | "type": "string" 3711 | } 3712 | }, 3713 | { 3714 | "name": "import_map_path", 3715 | "required": false, 3716 | "in": "query", 3717 | "schema": { 3718 | "type": "string" 3719 | } 3720 | } 3721 | ], 3722 | "requestBody": { 3723 | "required": true, 3724 | "content": { 3725 | "application/json": { 3726 | "schema": { 3727 | "$ref": "#/components/schemas/V1CreateFunctionBody" 3728 | } 3729 | }, 3730 | "application/vnd.denoland.eszip": { 3731 | "schema": { 3732 | "$ref": "#/components/schemas/V1CreateFunctionBody" 3733 | } 3734 | } 3735 | } 3736 | }, 3737 | "responses": { 3738 | "201": { 3739 | "description": "", 3740 | "content": { 3741 | "application/json": { 3742 | "schema": { 3743 | "$ref": "#/components/schemas/FunctionResponse" 3744 | } 3745 | } 3746 | } 3747 | }, 3748 | "403": { 3749 | "description": "" 3750 | }, 3751 | "500": { 3752 | "description": "Failed to create project's function" 3753 | } 3754 | }, 3755 | "tags": [ 3756 | "Edge Functions" 3757 | ], 3758 | "security": [ 3759 | { 3760 | "bearer": [] 3761 | } 3762 | ] 3763 | }, 3764 | "put": { 3765 | "operationId": "v1-bulk-update-functions", 3766 | "summary": "Bulk update functions", 3767 | "description": "Bulk update functions. It will create a new function or replace existing. The operation is idempotent. NOTE: You will need to manually bump the version.", 3768 | "parameters": [ 3769 | { 3770 | "name": "ref", 3771 | "required": true, 3772 | "in": "path", 3773 | "description": "Project ref", 3774 | "schema": { 3775 | "minLength": 20, 3776 | "maxLength": 20, 3777 | "type": "string" 3778 | } 3779 | } 3780 | ], 3781 | "requestBody": { 3782 | "required": true, 3783 | "content": { 3784 | "application/json": { 3785 | "schema": { 3786 | "type": "array", 3787 | "items": { 3788 | "$ref": "#/components/schemas/BulkUpdateFunctionBody" 3789 | } 3790 | } 3791 | } 3792 | } 3793 | }, 3794 | "responses": { 3795 | "200": { 3796 | "description": "", 3797 | "content": { 3798 | "application/json": { 3799 | "schema": { 3800 | "$ref": "#/components/schemas/BulkUpdateFunctionResponse" 3801 | } 3802 | } 3803 | } 3804 | }, 3805 | "403": { 3806 | "description": "" 3807 | }, 3808 | "500": { 3809 | "description": "Failed to update functions" 3810 | } 3811 | }, 3812 | "tags": [ 3813 | "Edge Functions" 3814 | ], 3815 | "security": [ 3816 | { 3817 | "bearer": [] 3818 | } 3819 | ] 3820 | } 3821 | }, 3822 | "/v1/projects/{ref}/functions/deploy": { 3823 | "post": { 3824 | "operationId": "v1-deploy-a-function", 3825 | "summary": "Deploy a function", 3826 | "description": "A new endpoint to deploy functions. It will create if function does not exist.", 3827 | "parameters": [ 3828 | { 3829 | "name": "ref", 3830 | "required": true, 3831 | "in": "path", 3832 | "description": "Project ref", 3833 | "schema": { 3834 | "minLength": 20, 3835 | "maxLength": 20, 3836 | "type": "string" 3837 | } 3838 | }, 3839 | { 3840 | "name": "slug", 3841 | "required": false, 3842 | "in": "query", 3843 | "schema": { 3844 | "pattern": "/^[A-Za-z0-9_-]+$/", 3845 | "type": "string" 3846 | } 3847 | }, 3848 | { 3849 | "name": "bundleOnly", 3850 | "required": false, 3851 | "in": "query", 3852 | "schema": { 3853 | "type": "boolean" 3854 | } 3855 | } 3856 | ], 3857 | "requestBody": { 3858 | "required": true, 3859 | "content": { 3860 | "multipart/form-data": { 3861 | "schema": { 3862 | "$ref": "#/components/schemas/FunctionDeployBody" 3863 | } 3864 | } 3865 | } 3866 | }, 3867 | "responses": { 3868 | "201": { 3869 | "description": "", 3870 | "content": { 3871 | "application/json": { 3872 | "schema": { 3873 | "$ref": "#/components/schemas/DeployFunctionResponse" 3874 | } 3875 | } 3876 | } 3877 | }, 3878 | "403": { 3879 | "description": "" 3880 | }, 3881 | "500": { 3882 | "description": "Failed to deploy function" 3883 | } 3884 | }, 3885 | "tags": [ 3886 | "Edge Functions" 3887 | ], 3888 | "security": [ 3889 | { 3890 | "bearer": [] 3891 | } 3892 | ] 3893 | } 3894 | }, 3895 | "/v1/projects/{ref}/functions/{function_slug}": { 3896 | "get": { 3897 | "operationId": "v1-get-a-function", 3898 | "summary": "Retrieve a function", 3899 | "description": "Retrieves a function with the specified slug and project.", 3900 | "parameters": [ 3901 | { 3902 | "name": "ref", 3903 | "required": true, 3904 | "in": "path", 3905 | "description": "Project ref", 3906 | "schema": { 3907 | "minLength": 20, 3908 | "maxLength": 20, 3909 | "type": "string" 3910 | } 3911 | }, 3912 | { 3913 | "name": "function_slug", 3914 | "required": true, 3915 | "in": "path", 3916 | "description": "Function slug", 3917 | "schema": { 3918 | "pattern": "/^[A-Za-z0-9_-]+$/", 3919 | "type": "string" 3920 | } 3921 | } 3922 | ], 3923 | "responses": { 3924 | "200": { 3925 | "description": "", 3926 | "content": { 3927 | "application/json": { 3928 | "schema": { 3929 | "$ref": "#/components/schemas/FunctionSlugResponse" 3930 | } 3931 | } 3932 | } 3933 | }, 3934 | "403": { 3935 | "description": "" 3936 | }, 3937 | "500": { 3938 | "description": "Failed to retrieve function with given slug" 3939 | } 3940 | }, 3941 | "tags": [ 3942 | "Edge Functions" 3943 | ], 3944 | "security": [ 3945 | { 3946 | "bearer": [] 3947 | } 3948 | ] 3949 | }, 3950 | "patch": { 3951 | "operationId": "v1-update-a-function", 3952 | "summary": "Update a function", 3953 | "description": "Updates a function with the specified slug and project.", 3954 | "parameters": [ 3955 | { 3956 | "name": "ref", 3957 | "required": true, 3958 | "in": "path", 3959 | "description": "Project ref", 3960 | "schema": { 3961 | "minLength": 20, 3962 | "maxLength": 20, 3963 | "type": "string" 3964 | } 3965 | }, 3966 | { 3967 | "name": "function_slug", 3968 | "required": true, 3969 | "in": "path", 3970 | "description": "Function slug", 3971 | "schema": { 3972 | "pattern": "/^[A-Za-z0-9_-]+$/", 3973 | "type": "string" 3974 | } 3975 | }, 3976 | { 3977 | "name": "slug", 3978 | "required": false, 3979 | "in": "query", 3980 | "schema": { 3981 | "pattern": "/^[A-Za-z0-9_-]+$/", 3982 | "type": "string" 3983 | } 3984 | }, 3985 | { 3986 | "name": "name", 3987 | "required": false, 3988 | "in": "query", 3989 | "schema": { 3990 | "type": "string" 3991 | } 3992 | }, 3993 | { 3994 | "name": "verify_jwt", 3995 | "required": false, 3996 | "in": "query", 3997 | "schema": { 3998 | "type": "boolean" 3999 | } 4000 | }, 4001 | { 4002 | "name": "import_map", 4003 | "required": false, 4004 | "in": "query", 4005 | "schema": { 4006 | "type": "boolean" 4007 | } 4008 | }, 4009 | { 4010 | "name": "entrypoint_path", 4011 | "required": false, 4012 | "in": "query", 4013 | "schema": { 4014 | "type": "string" 4015 | } 4016 | }, 4017 | { 4018 | "name": "import_map_path", 4019 | "required": false, 4020 | "in": "query", 4021 | "schema": { 4022 | "type": "string" 4023 | } 4024 | } 4025 | ], 4026 | "requestBody": { 4027 | "required": true, 4028 | "content": { 4029 | "application/json": { 4030 | "schema": { 4031 | "$ref": "#/components/schemas/V1UpdateFunctionBody" 4032 | } 4033 | }, 4034 | "application/vnd.denoland.eszip": { 4035 | "schema": { 4036 | "$ref": "#/components/schemas/V1UpdateFunctionBody" 4037 | } 4038 | } 4039 | } 4040 | }, 4041 | "responses": { 4042 | "200": { 4043 | "description": "", 4044 | "content": { 4045 | "application/json": { 4046 | "schema": { 4047 | "$ref": "#/components/schemas/FunctionResponse" 4048 | } 4049 | } 4050 | } 4051 | }, 4052 | "403": { 4053 | "description": "" 4054 | }, 4055 | "500": { 4056 | "description": "Failed to update function with given slug" 4057 | } 4058 | }, 4059 | "tags": [ 4060 | "Edge Functions" 4061 | ], 4062 | "security": [ 4063 | { 4064 | "bearer": [] 4065 | } 4066 | ] 4067 | }, 4068 | "delete": { 4069 | "operationId": "v1-delete-a-function", 4070 | "summary": "Delete a function", 4071 | "description": "Deletes a function with the specified slug from the specified project.", 4072 | "parameters": [ 4073 | { 4074 | "name": "ref", 4075 | "required": true, 4076 | "in": "path", 4077 | "description": "Project ref", 4078 | "schema": { 4079 | "minLength": 20, 4080 | "maxLength": 20, 4081 | "type": "string" 4082 | } 4083 | }, 4084 | { 4085 | "name": "function_slug", 4086 | "required": true, 4087 | "in": "path", 4088 | "description": "Function slug", 4089 | "schema": { 4090 | "pattern": "/^[A-Za-z0-9_-]+$/", 4091 | "type": "string" 4092 | } 4093 | } 4094 | ], 4095 | "responses": { 4096 | "200": { 4097 | "description": "" 4098 | }, 4099 | "403": { 4100 | "description": "" 4101 | }, 4102 | "500": { 4103 | "description": "Failed to delete function with given slug" 4104 | } 4105 | }, 4106 | "tags": [ 4107 | "Edge Functions" 4108 | ], 4109 | "security": [ 4110 | { 4111 | "bearer": [] 4112 | } 4113 | ] 4114 | } 4115 | }, 4116 | "/v1/projects/{ref}/functions/{function_slug}/body": { 4117 | "get": { 4118 | "operationId": "v1-get-a-function-body", 4119 | "summary": "Retrieve a function body", 4120 | "description": "Retrieves a function body for the specified slug and project.", 4121 | "parameters": [ 4122 | { 4123 | "name": "ref", 4124 | "required": true, 4125 | "in": "path", 4126 | "description": "Project ref", 4127 | "schema": { 4128 | "minLength": 20, 4129 | "maxLength": 20, 4130 | "type": "string" 4131 | } 4132 | }, 4133 | { 4134 | "name": "function_slug", 4135 | "required": true, 4136 | "in": "path", 4137 | "description": "Function slug", 4138 | "schema": { 4139 | "pattern": "/^[A-Za-z0-9_-]+$/", 4140 | "type": "string" 4141 | } 4142 | } 4143 | ], 4144 | "responses": { 4145 | "200": { 4146 | "description": "" 4147 | }, 4148 | "403": { 4149 | "description": "" 4150 | }, 4151 | "500": { 4152 | "description": "Failed to retrieve function body with given slug" 4153 | } 4154 | }, 4155 | "tags": [ 4156 | "Edge Functions" 4157 | ], 4158 | "security": [ 4159 | { 4160 | "bearer": [] 4161 | } 4162 | ] 4163 | } 4164 | }, 4165 | "/v1/projects/{ref}/storage/buckets": { 4166 | "get": { 4167 | "operationId": "v1-list-all-buckets", 4168 | "summary": "Lists all buckets", 4169 | "parameters": [ 4170 | { 4171 | "name": "ref", 4172 | "required": true, 4173 | "in": "path", 4174 | "description": "Project ref", 4175 | "schema": { 4176 | "minLength": 20, 4177 | "maxLength": 20, 4178 | "type": "string" 4179 | } 4180 | } 4181 | ], 4182 | "responses": { 4183 | "200": { 4184 | "description": "", 4185 | "content": { 4186 | "application/json": { 4187 | "schema": { 4188 | "type": "array", 4189 | "items": { 4190 | "$ref": "#/components/schemas/V1StorageBucketResponse" 4191 | } 4192 | } 4193 | } 4194 | } 4195 | }, 4196 | "403": { 4197 | "description": "" 4198 | }, 4199 | "500": { 4200 | "description": "Failed to get list of buckets" 4201 | } 4202 | }, 4203 | "tags": [ 4204 | "Storage" 4205 | ], 4206 | "security": [ 4207 | { 4208 | "bearer": [] 4209 | } 4210 | ] 4211 | } 4212 | }, 4213 | "/v1/projects/{ref}/config/auth/sso/providers": { 4214 | "post": { 4215 | "operationId": "v1-create-a-sso-provider", 4216 | "summary": "Creates a new SSO provider", 4217 | "parameters": [ 4218 | { 4219 | "name": "ref", 4220 | "required": true, 4221 | "in": "path", 4222 | "description": "Project ref", 4223 | "schema": { 4224 | "minLength": 20, 4225 | "maxLength": 20, 4226 | "type": "string" 4227 | } 4228 | } 4229 | ], 4230 | "requestBody": { 4231 | "required": true, 4232 | "content": { 4233 | "application/json": { 4234 | "schema": { 4235 | "$ref": "#/components/schemas/CreateProviderBody" 4236 | } 4237 | } 4238 | } 4239 | }, 4240 | "responses": { 4241 | "201": { 4242 | "description": "", 4243 | "content": { 4244 | "application/json": { 4245 | "schema": { 4246 | "$ref": "#/components/schemas/CreateProviderResponse" 4247 | } 4248 | } 4249 | } 4250 | }, 4251 | "403": { 4252 | "description": "" 4253 | }, 4254 | "404": { 4255 | "description": "SAML 2.0 support is not enabled for this project" 4256 | } 4257 | }, 4258 | "tags": [ 4259 | "Auth" 4260 | ], 4261 | "security": [ 4262 | { 4263 | "bearer": [] 4264 | } 4265 | ] 4266 | }, 4267 | "get": { 4268 | "operationId": "v1-list-all-sso-provider", 4269 | "summary": "Lists all SSO providers", 4270 | "parameters": [ 4271 | { 4272 | "name": "ref", 4273 | "required": true, 4274 | "in": "path", 4275 | "description": "Project ref", 4276 | "schema": { 4277 | "minLength": 20, 4278 | "maxLength": 20, 4279 | "type": "string" 4280 | } 4281 | } 4282 | ], 4283 | "responses": { 4284 | "200": { 4285 | "description": "", 4286 | "content": { 4287 | "application/json": { 4288 | "schema": { 4289 | "$ref": "#/components/schemas/ListProvidersResponse" 4290 | } 4291 | } 4292 | } 4293 | }, 4294 | "403": { 4295 | "description": "" 4296 | }, 4297 | "404": { 4298 | "description": "SAML 2.0 support is not enabled for this project" 4299 | } 4300 | }, 4301 | "tags": [ 4302 | "Auth" 4303 | ], 4304 | "security": [ 4305 | { 4306 | "bearer": [] 4307 | } 4308 | ] 4309 | } 4310 | }, 4311 | "/v1/projects/{ref}/config/auth/sso/providers/{provider_id}": { 4312 | "get": { 4313 | "operationId": "v1-get-a-sso-provider", 4314 | "summary": "Gets a SSO provider by its UUID", 4315 | "parameters": [ 4316 | { 4317 | "name": "ref", 4318 | "required": true, 4319 | "in": "path", 4320 | "description": "Project ref", 4321 | "schema": { 4322 | "minLength": 20, 4323 | "maxLength": 20, 4324 | "type": "string" 4325 | } 4326 | }, 4327 | { 4328 | "name": "provider_id", 4329 | "required": true, 4330 | "in": "path", 4331 | "schema": { 4332 | "type": "string" 4333 | } 4334 | } 4335 | ], 4336 | "responses": { 4337 | "200": { 4338 | "description": "", 4339 | "content": { 4340 | "application/json": { 4341 | "schema": { 4342 | "$ref": "#/components/schemas/GetProviderResponse" 4343 | } 4344 | } 4345 | } 4346 | }, 4347 | "403": { 4348 | "description": "" 4349 | }, 4350 | "404": { 4351 | "description": "Either SAML 2.0 was not enabled for this project, or the provider does not exist" 4352 | } 4353 | }, 4354 | "tags": [ 4355 | "Auth" 4356 | ], 4357 | "security": [ 4358 | { 4359 | "bearer": [] 4360 | } 4361 | ] 4362 | }, 4363 | "put": { 4364 | "operationId": "v1-update-a-sso-provider", 4365 | "summary": "Updates a SSO provider by its UUID", 4366 | "parameters": [ 4367 | { 4368 | "name": "ref", 4369 | "required": true, 4370 | "in": "path", 4371 | "description": "Project ref", 4372 | "schema": { 4373 | "minLength": 20, 4374 | "maxLength": 20, 4375 | "type": "string" 4376 | } 4377 | }, 4378 | { 4379 | "name": "provider_id", 4380 | "required": true, 4381 | "in": "path", 4382 | "schema": { 4383 | "type": "string" 4384 | } 4385 | } 4386 | ], 4387 | "requestBody": { 4388 | "required": true, 4389 | "content": { 4390 | "application/json": { 4391 | "schema": { 4392 | "$ref": "#/components/schemas/UpdateProviderBody" 4393 | } 4394 | } 4395 | } 4396 | }, 4397 | "responses": { 4398 | "200": { 4399 | "description": "", 4400 | "content": { 4401 | "application/json": { 4402 | "schema": { 4403 | "$ref": "#/components/schemas/UpdateProviderResponse" 4404 | } 4405 | } 4406 | } 4407 | }, 4408 | "403": { 4409 | "description": "" 4410 | }, 4411 | "404": { 4412 | "description": "Either SAML 2.0 was not enabled for this project, or the provider does not exist" 4413 | } 4414 | }, 4415 | "tags": [ 4416 | "Auth" 4417 | ], 4418 | "security": [ 4419 | { 4420 | "bearer": [] 4421 | } 4422 | ] 4423 | }, 4424 | "delete": { 4425 | "operationId": "v1-delete-a-sso-provider", 4426 | "summary": "Removes a SSO provider by its UUID", 4427 | "parameters": [ 4428 | { 4429 | "name": "ref", 4430 | "required": true, 4431 | "in": "path", 4432 | "description": "Project ref", 4433 | "schema": { 4434 | "minLength": 20, 4435 | "maxLength": 20, 4436 | "type": "string" 4437 | } 4438 | }, 4439 | { 4440 | "name": "provider_id", 4441 | "required": true, 4442 | "in": "path", 4443 | "schema": { 4444 | "type": "string" 4445 | } 4446 | } 4447 | ], 4448 | "responses": { 4449 | "200": { 4450 | "description": "", 4451 | "content": { 4452 | "application/json": { 4453 | "schema": { 4454 | "$ref": "#/components/schemas/DeleteProviderResponse" 4455 | } 4456 | } 4457 | } 4458 | }, 4459 | "403": { 4460 | "description": "" 4461 | }, 4462 | "404": { 4463 | "description": "Either SAML 2.0 was not enabled for this project, or the provider does not exist" 4464 | } 4465 | }, 4466 | "tags": [ 4467 | "Auth" 4468 | ], 4469 | "security": [ 4470 | { 4471 | "bearer": [] 4472 | } 4473 | ] 4474 | } 4475 | }, 4476 | "/v1/projects/{ref}/database/backups": { 4477 | "get": { 4478 | "operationId": "v1-list-all-backups", 4479 | "summary": "Lists all backups", 4480 | "parameters": [ 4481 | { 4482 | "name": "ref", 4483 | "required": true, 4484 | "in": "path", 4485 | "description": "Project ref", 4486 | "schema": { 4487 | "minLength": 20, 4488 | "maxLength": 20, 4489 | "type": "string" 4490 | } 4491 | } 4492 | ], 4493 | "responses": { 4494 | "200": { 4495 | "description": "", 4496 | "content": { 4497 | "application/json": { 4498 | "schema": { 4499 | "$ref": "#/components/schemas/V1BackupsResponse" 4500 | } 4501 | } 4502 | } 4503 | }, 4504 | "500": { 4505 | "description": "Failed to get backups" 4506 | } 4507 | }, 4508 | "tags": [ 4509 | "Database" 4510 | ], 4511 | "security": [ 4512 | { 4513 | "bearer": [] 4514 | } 4515 | ] 4516 | } 4517 | }, 4518 | "/v1/projects/{ref}/database/backups/restore-pitr": { 4519 | "post": { 4520 | "operationId": "v1-restore-pitr-backup", 4521 | "summary": "Restores a PITR backup for a database", 4522 | "parameters": [ 4523 | { 4524 | "name": "ref", 4525 | "required": true, 4526 | "in": "path", 4527 | "description": "Project ref", 4528 | "schema": { 4529 | "minLength": 20, 4530 | "maxLength": 20, 4531 | "type": "string" 4532 | } 4533 | } 4534 | ], 4535 | "requestBody": { 4536 | "required": true, 4537 | "content": { 4538 | "application/json": { 4539 | "schema": { 4540 | "$ref": "#/components/schemas/V1RestorePitrBody" 4541 | } 4542 | } 4543 | } 4544 | }, 4545 | "responses": { 4546 | "201": { 4547 | "description": "" 4548 | } 4549 | }, 4550 | "tags": [ 4551 | "Database" 4552 | ], 4553 | "security": [ 4554 | { 4555 | "bearer": [] 4556 | } 4557 | ] 4558 | } 4559 | }, 4560 | "/v1/organizations/{slug}/members": { 4561 | "get": { 4562 | "operationId": "v1-list-organization-members", 4563 | "summary": "List members of an organization", 4564 | "parameters": [ 4565 | { 4566 | "name": "slug", 4567 | "required": true, 4568 | "in": "path", 4569 | "schema": { 4570 | "type": "string" 4571 | } 4572 | } 4573 | ], 4574 | "responses": { 4575 | "200": { 4576 | "description": "", 4577 | "content": { 4578 | "application/json": { 4579 | "schema": { 4580 | "type": "array", 4581 | "items": { 4582 | "$ref": "#/components/schemas/V1OrganizationMemberResponse" 4583 | } 4584 | } 4585 | } 4586 | } 4587 | } 4588 | }, 4589 | "tags": [ 4590 | "Organizations" 4591 | ], 4592 | "security": [ 4593 | { 4594 | "bearer": [] 4595 | } 4596 | ] 4597 | } 4598 | }, 4599 | "/v1/organizations/{slug}": { 4600 | "get": { 4601 | "operationId": "v1-get-an-organization", 4602 | "summary": "Gets information about the organization", 4603 | "parameters": [ 4604 | { 4605 | "name": "slug", 4606 | "required": true, 4607 | "in": "path", 4608 | "schema": { 4609 | "type": "string" 4610 | } 4611 | } 4612 | ], 4613 | "responses": { 4614 | "200": { 4615 | "description": "", 4616 | "content": { 4617 | "application/json": { 4618 | "schema": { 4619 | "$ref": "#/components/schemas/V1OrganizationSlugResponse" 4620 | } 4621 | } 4622 | } 4623 | } 4624 | }, 4625 | "tags": [ 4626 | "Organizations" 4627 | ], 4628 | "security": [ 4629 | { 4630 | "bearer": [] 4631 | } 4632 | ] 4633 | } 4634 | } 4635 | }, 4636 | "info": { 4637 | "title": "Supabase API (v1)", 4638 | "description": "Supabase API generated from the OpenAPI specification.\u003Cbr\u003EVisit [https://supabase.com/docs](https://supabase.com/docs) for a complete documentation.", 4639 | "version": "1.0.0", 4640 | "contact": { 4641 | 4642 | } 4643 | }, 4644 | "tags": [ 4645 | { 4646 | "name": "Auth", 4647 | "description": "Auth related endpoints" 4648 | }, 4649 | { 4650 | "name": "Database", 4651 | "description": "Database related endpoints" 4652 | }, 4653 | { 4654 | "name": "Domains", 4655 | "description": "Domains related endpoints" 4656 | }, 4657 | { 4658 | "name": "Edge Functions", 4659 | "description": "Edge related endpoints" 4660 | }, 4661 | { 4662 | "name": "Environments", 4663 | "description": "Environments related endpoints" 4664 | }, 4665 | { 4666 | "name": "OAuth", 4667 | "description": "OAuth related endpoints" 4668 | }, 4669 | { 4670 | "name": "Organizations", 4671 | "description": "Organizations related endpoints" 4672 | }, 4673 | { 4674 | "name": "Projects", 4675 | "description": "Projects related endpoints" 4676 | }, 4677 | { 4678 | "name": "Rest", 4679 | "description": "Rest related endpoints" 4680 | }, 4681 | { 4682 | "name": "Secrets", 4683 | "description": "Secrets related endpoints" 4684 | }, 4685 | { 4686 | "name": "Storage", 4687 | "description": "Storage related endpoints" 4688 | } 4689 | ], 4690 | "servers": [], 4691 | "components": { 4692 | "securitySchemes": { 4693 | "bearer": { 4694 | "scheme": "bearer", 4695 | "bearerFormat": "JWT", 4696 | "type": "http" 4697 | } 4698 | }, 4699 | "schemas": { 4700 | "BranchDetailResponse": { 4701 | "type": "object", 4702 | "properties": { 4703 | "status": { 4704 | "type": "string", 4705 | "enum": [ 4706 | "INACTIVE", 4707 | "ACTIVE_HEALTHY", 4708 | "ACTIVE_UNHEALTHY", 4709 | "COMING_UP", 4710 | "UNKNOWN", 4711 | "GOING_DOWN", 4712 | "INIT_FAILED", 4713 | "REMOVED", 4714 | "RESTORING", 4715 | "UPGRADING", 4716 | "PAUSING", 4717 | "RESTORE_FAILED", 4718 | "RESTARTING", 4719 | "PAUSE_FAILED", 4720 | "RESIZING" 4721 | ] 4722 | }, 4723 | "db_port": { 4724 | "type": "integer" 4725 | }, 4726 | "ref": { 4727 | "type": "string" 4728 | }, 4729 | "postgres_version": { 4730 | "type": "string" 4731 | }, 4732 | "postgres_engine": { 4733 | "type": "string" 4734 | }, 4735 | "release_channel": { 4736 | "type": "string" 4737 | }, 4738 | "db_host": { 4739 | "type": "string" 4740 | }, 4741 | "db_user": { 4742 | "type": "string" 4743 | }, 4744 | "db_pass": { 4745 | "type": "string" 4746 | }, 4747 | "jwt_secret": { 4748 | "type": "string" 4749 | } 4750 | }, 4751 | "required": [ 4752 | "status", 4753 | "db_port", 4754 | "ref", 4755 | "postgres_version", 4756 | "postgres_engine", 4757 | "release_channel", 4758 | "db_host" 4759 | ] 4760 | }, 4761 | "UpdateBranchBody": { 4762 | "type": "object", 4763 | "properties": { 4764 | "reset_on_push": { 4765 | "type": "boolean", 4766 | "deprecated": true, 4767 | "description": "This field is deprecated and will be ignored. Use v1-reset-a-branch endpoint directly instead." 4768 | }, 4769 | "branch_name": { 4770 | "type": "string" 4771 | }, 4772 | "git_branch": { 4773 | "type": "string" 4774 | }, 4775 | "persistent": { 4776 | "type": "boolean" 4777 | }, 4778 | "status": { 4779 | "type": "string", 4780 | "enum": [ 4781 | "CREATING_PROJECT", 4782 | "RUNNING_MIGRATIONS", 4783 | "MIGRATIONS_PASSED", 4784 | "MIGRATIONS_FAILED", 4785 | "FUNCTIONS_DEPLOYED", 4786 | "FUNCTIONS_FAILED" 4787 | ] 4788 | } 4789 | } 4790 | }, 4791 | "BranchResponse": { 4792 | "type": "object", 4793 | "properties": { 4794 | "pr_number": { 4795 | "type": "integer", 4796 | "format": "int32" 4797 | }, 4798 | "latest_check_run_id": { 4799 | "type": "number", 4800 | "deprecated": true, 4801 | "description": "This field is deprecated and will not be populated." 4802 | }, 4803 | "status": { 4804 | "type": "string", 4805 | "enum": [ 4806 | "CREATING_PROJECT", 4807 | "RUNNING_MIGRATIONS", 4808 | "MIGRATIONS_PASSED", 4809 | "MIGRATIONS_FAILED", 4810 | "FUNCTIONS_DEPLOYED", 4811 | "FUNCTIONS_FAILED" 4812 | ] 4813 | }, 4814 | "id": { 4815 | "type": "string" 4816 | }, 4817 | "name": { 4818 | "type": "string" 4819 | }, 4820 | "project_ref": { 4821 | "type": "string" 4822 | }, 4823 | "parent_project_ref": { 4824 | "type": "string" 4825 | }, 4826 | "is_default": { 4827 | "type": "boolean" 4828 | }, 4829 | "git_branch": { 4830 | "type": "string" 4831 | }, 4832 | "persistent": { 4833 | "type": "boolean" 4834 | }, 4835 | "created_at": { 4836 | "type": "string" 4837 | }, 4838 | "updated_at": { 4839 | "type": "string" 4840 | } 4841 | }, 4842 | "required": [ 4843 | "status", 4844 | "id", 4845 | "name", 4846 | "project_ref", 4847 | "parent_project_ref", 4848 | "is_default", 4849 | "persistent", 4850 | "created_at", 4851 | "updated_at" 4852 | ] 4853 | }, 4854 | "BranchDeleteResponse": { 4855 | "type": "object", 4856 | "properties": { 4857 | "message": { 4858 | "type": "string" 4859 | } 4860 | }, 4861 | "required": [ 4862 | "message" 4863 | ] 4864 | }, 4865 | "BranchUpdateResponse": { 4866 | "type": "object", 4867 | "properties": { 4868 | "workflow_run_id": { 4869 | "type": "string" 4870 | }, 4871 | "message": { 4872 | "type": "string" 4873 | } 4874 | }, 4875 | "required": [ 4876 | "workflow_run_id", 4877 | "message" 4878 | ] 4879 | }, 4880 | "V1DatabaseResponse": { 4881 | "type": "object", 4882 | "properties": { 4883 | "host": { 4884 | "type": "string", 4885 | "description": "Database host" 4886 | }, 4887 | "version": { 4888 | "type": "string", 4889 | "description": "Database version" 4890 | }, 4891 | "postgres_engine": { 4892 | "type": "string", 4893 | "description": "Database engine" 4894 | }, 4895 | "release_channel": { 4896 | "type": "string", 4897 | "description": "Release channel" 4898 | } 4899 | }, 4900 | "required": [ 4901 | "host", 4902 | "version", 4903 | "postgres_engine", 4904 | "release_channel" 4905 | ] 4906 | }, 4907 | "V1ProjectWithDatabaseResponse": { 4908 | "type": "object", 4909 | "properties": { 4910 | "id": { 4911 | "type": "string", 4912 | "description": "Id of your project" 4913 | }, 4914 | "organization_id": { 4915 | "type": "string", 4916 | "description": "Slug of your organization" 4917 | }, 4918 | "name": { 4919 | "type": "string", 4920 | "description": "Name of your project" 4921 | }, 4922 | "region": { 4923 | "type": "string", 4924 | "description": "Region of your project", 4925 | "example": "us-east-1" 4926 | }, 4927 | "created_at": { 4928 | "type": "string", 4929 | "description": "Creation timestamp", 4930 | "example": "2023-03-29T16:32:59Z" 4931 | }, 4932 | "status": { 4933 | "type": "string", 4934 | "enum": [ 4935 | "INACTIVE", 4936 | "ACTIVE_HEALTHY", 4937 | "ACTIVE_UNHEALTHY", 4938 | "COMING_UP", 4939 | "UNKNOWN", 4940 | "GOING_DOWN", 4941 | "INIT_FAILED", 4942 | "REMOVED", 4943 | "RESTORING", 4944 | "UPGRADING", 4945 | "PAUSING", 4946 | "RESTORE_FAILED", 4947 | "RESTARTING", 4948 | "PAUSE_FAILED", 4949 | "RESIZING" 4950 | ] 4951 | }, 4952 | "database": { 4953 | "$ref": "#/components/schemas/V1DatabaseResponse" 4954 | } 4955 | }, 4956 | "required": [ 4957 | "id", 4958 | "organization_id", 4959 | "name", 4960 | "region", 4961 | "created_at", 4962 | "status", 4963 | "database" 4964 | ] 4965 | }, 4966 | "V1CreateProjectBodyDto": { 4967 | "type": "object", 4968 | "properties": { 4969 | "db_pass": { 4970 | "type": "string", 4971 | "description": "Database password" 4972 | }, 4973 | "name": { 4974 | "type": "string", 4975 | "description": "Name of your project" 4976 | }, 4977 | "organization_id": { 4978 | "type": "string", 4979 | "description": "Slug of your organization" 4980 | }, 4981 | "plan": { 4982 | "type": "string", 4983 | "enum": [ 4984 | "free", 4985 | "pro" 4986 | ], 4987 | "deprecated": true, 4988 | "description": "Subscription Plan is now set on organization level and is ignored in this request" 4989 | }, 4990 | "region": { 4991 | "type": "string", 4992 | "description": "Region you want your server to reside in", 4993 | "enum": [ 4994 | "us-east-1", 4995 | "us-east-2", 4996 | "us-west-1", 4997 | "us-west-2", 4998 | "ap-east-1", 4999 | "ap-southeast-1", 5000 | "ap-northeast-1", 5001 | "ap-northeast-2", 5002 | "ap-southeast-2", 5003 | "eu-west-1", 5004 | "eu-west-2", 5005 | "eu-west-3", 5006 | "eu-north-1", 5007 | "eu-central-1", 5008 | "eu-central-2", 5009 | "ca-central-1", 5010 | "ap-south-1", 5011 | "sa-east-1" 5012 | ] 5013 | }, 5014 | "kps_enabled": { 5015 | "type": "boolean", 5016 | "deprecated": true, 5017 | "description": "This field is deprecated and is ignored in this request" 5018 | }, 5019 | "desired_instance_size": { 5020 | "type": "string", 5021 | "enum": [ 5022 | "micro", 5023 | "small", 5024 | "medium", 5025 | "large", 5026 | "xlarge", 5027 | "2xlarge", 5028 | "4xlarge", 5029 | "8xlarge", 5030 | "12xlarge", 5031 | "16xlarge" 5032 | ] 5033 | }, 5034 | "template_url": { 5035 | "type": "string", 5036 | "format": "uri", 5037 | "description": "Template URL used to create the project from the CLI.", 5038 | "example": "https://github.com/supabase/supabase/tree/master/examples/slack-clone/nextjs-slack-clone" 5039 | } 5040 | }, 5041 | "required": [ 5042 | "db_pass", 5043 | "name", 5044 | "organization_id", 5045 | "region" 5046 | ], 5047 | "additionalProperties": false, 5048 | "hideDefinitions": [ 5049 | "release_channel", 5050 | "postgres_engine" 5051 | ] 5052 | }, 5053 | "V1ProjectResponse": { 5054 | "type": "object", 5055 | "properties": { 5056 | "id": { 5057 | "type": "string", 5058 | "description": "Id of your project" 5059 | }, 5060 | "organization_id": { 5061 | "type": "string", 5062 | "description": "Slug of your organization" 5063 | }, 5064 | "name": { 5065 | "type": "string", 5066 | "description": "Name of your project" 5067 | }, 5068 | "region": { 5069 | "type": "string", 5070 | "description": "Region of your project", 5071 | "example": "us-east-1" 5072 | }, 5073 | "created_at": { 5074 | "type": "string", 5075 | "description": "Creation timestamp", 5076 | "example": "2023-03-29T16:32:59Z" 5077 | }, 5078 | "status": { 5079 | "type": "string", 5080 | "enum": [ 5081 | "INACTIVE", 5082 | "ACTIVE_HEALTHY", 5083 | "ACTIVE_UNHEALTHY", 5084 | "COMING_UP", 5085 | "UNKNOWN", 5086 | "GOING_DOWN", 5087 | "INIT_FAILED", 5088 | "REMOVED", 5089 | "RESTORING", 5090 | "UPGRADING", 5091 | "PAUSING", 5092 | "RESTORE_FAILED", 5093 | "RESTARTING", 5094 | "PAUSE_FAILED", 5095 | "RESIZING" 5096 | ] 5097 | } 5098 | }, 5099 | "required": [ 5100 | "id", 5101 | "organization_id", 5102 | "name", 5103 | "region", 5104 | "created_at", 5105 | "status" 5106 | ] 5107 | }, 5108 | "OrganizationResponseV1": { 5109 | "type": "object", 5110 | "properties": { 5111 | "id": { 5112 | "type": "string" 5113 | }, 5114 | "name": { 5115 | "type": "string" 5116 | } 5117 | }, 5118 | "required": [ 5119 | "id", 5120 | "name" 5121 | ] 5122 | }, 5123 | "CreateOrganizationV1Dto": { 5124 | "type": "object", 5125 | "properties": { 5126 | "name": { 5127 | "type": "string" 5128 | } 5129 | }, 5130 | "required": [ 5131 | "name" 5132 | ], 5133 | "additionalProperties": false 5134 | }, 5135 | "OAuthTokenBody": { 5136 | "type": "object", 5137 | "properties": { 5138 | "grant_type": { 5139 | "enum": [ 5140 | "authorization_code", 5141 | "refresh_token" 5142 | ], 5143 | "type": "string" 5144 | }, 5145 | "client_id": { 5146 | "type": "string" 5147 | }, 5148 | "client_secret": { 5149 | "type": "string" 5150 | }, 5151 | "code": { 5152 | "type": "string" 5153 | }, 5154 | "code_verifier": { 5155 | "type": "string" 5156 | }, 5157 | "redirect_uri": { 5158 | "type": "string" 5159 | }, 5160 | "refresh_token": { 5161 | "type": "string" 5162 | } 5163 | }, 5164 | "required": [ 5165 | "grant_type", 5166 | "client_id", 5167 | "client_secret" 5168 | ] 5169 | }, 5170 | "OAuthTokenResponse": { 5171 | "type": "object", 5172 | "properties": { 5173 | "expires_in": { 5174 | "type": "integer", 5175 | "format": "int64" 5176 | }, 5177 | "token_type": { 5178 | "type": "string", 5179 | "enum": [ 5180 | "Bearer" 5181 | ] 5182 | }, 5183 | "access_token": { 5184 | "type": "string" 5185 | }, 5186 | "refresh_token": { 5187 | "type": "string" 5188 | } 5189 | }, 5190 | "required": [ 5191 | "expires_in", 5192 | "token_type", 5193 | "access_token", 5194 | "refresh_token" 5195 | ] 5196 | }, 5197 | "OAuthRevokeTokenBodyDto": { 5198 | "type": "object", 5199 | "properties": { 5200 | "client_id": { 5201 | "type": "string", 5202 | "format": "uuid" 5203 | }, 5204 | "client_secret": { 5205 | "type": "string" 5206 | }, 5207 | "refresh_token": { 5208 | "type": "string" 5209 | } 5210 | }, 5211 | "required": [ 5212 | "client_id", 5213 | "client_secret", 5214 | "refresh_token" 5215 | ], 5216 | "additionalProperties": false 5217 | }, 5218 | "SnippetProject": { 5219 | "type": "object", 5220 | "properties": { 5221 | "id": { 5222 | "type": "integer", 5223 | "format": "int64" 5224 | }, 5225 | "name": { 5226 | "type": "string" 5227 | } 5228 | }, 5229 | "required": [ 5230 | "id", 5231 | "name" 5232 | ] 5233 | }, 5234 | "SnippetUser": { 5235 | "type": "object", 5236 | "properties": { 5237 | "id": { 5238 | "type": "integer", 5239 | "format": "int64" 5240 | }, 5241 | "username": { 5242 | "type": "string" 5243 | } 5244 | }, 5245 | "required": [ 5246 | "id", 5247 | "username" 5248 | ] 5249 | }, 5250 | "SnippetMeta": { 5251 | "type": "object", 5252 | "properties": { 5253 | "id": { 5254 | "type": "string" 5255 | }, 5256 | "inserted_at": { 5257 | "type": "string" 5258 | }, 5259 | "updated_at": { 5260 | "type": "string" 5261 | }, 5262 | "type": { 5263 | "type": "string", 5264 | "enum": [ 5265 | "sql" 5266 | ] 5267 | }, 5268 | "visibility": { 5269 | "type": "string", 5270 | "enum": [ 5271 | "user", 5272 | "project", 5273 | "org", 5274 | "public" 5275 | ] 5276 | }, 5277 | "name": { 5278 | "type": "string" 5279 | }, 5280 | "description": { 5281 | "type": "string", 5282 | "nullable": true 5283 | }, 5284 | "project": { 5285 | "$ref": "#/components/schemas/SnippetProject" 5286 | }, 5287 | "owner": { 5288 | "$ref": "#/components/schemas/SnippetUser" 5289 | }, 5290 | "updated_by": { 5291 | "$ref": "#/components/schemas/SnippetUser" 5292 | } 5293 | }, 5294 | "required": [ 5295 | "id", 5296 | "inserted_at", 5297 | "updated_at", 5298 | "type", 5299 | "visibility", 5300 | "name", 5301 | "description", 5302 | "project", 5303 | "owner", 5304 | "updated_by" 5305 | ] 5306 | }, 5307 | "SnippetList": { 5308 | "type": "object", 5309 | "properties": { 5310 | "data": { 5311 | "type": "array", 5312 | "items": { 5313 | "$ref": "#/components/schemas/SnippetMeta" 5314 | } 5315 | }, 5316 | "cursor": { 5317 | "type": "string" 5318 | } 5319 | }, 5320 | "required": [ 5321 | "data" 5322 | ] 5323 | }, 5324 | "SnippetContent": { 5325 | "type": "object", 5326 | "properties": { 5327 | "favorite": { 5328 | "type": "boolean" 5329 | }, 5330 | "schema_version": { 5331 | "type": "string" 5332 | }, 5333 | "sql": { 5334 | "type": "string" 5335 | } 5336 | }, 5337 | "required": [ 5338 | "favorite", 5339 | "schema_version", 5340 | "sql" 5341 | ] 5342 | }, 5343 | "SnippetResponse": { 5344 | "type": "object", 5345 | "properties": { 5346 | "id": { 5347 | "type": "string" 5348 | }, 5349 | "inserted_at": { 5350 | "type": "string" 5351 | }, 5352 | "updated_at": { 5353 | "type": "string" 5354 | }, 5355 | "type": { 5356 | "type": "string", 5357 | "enum": [ 5358 | "sql" 5359 | ] 5360 | }, 5361 | "visibility": { 5362 | "enum": [ 5363 | "user", 5364 | "project", 5365 | "org", 5366 | "public" 5367 | ], 5368 | "type": "string" 5369 | }, 5370 | "name": { 5371 | "type": "string" 5372 | }, 5373 | "description": { 5374 | "type": "string", 5375 | "nullable": true 5376 | }, 5377 | "project": { 5378 | "$ref": "#/components/schemas/SnippetProject" 5379 | }, 5380 | "owner": { 5381 | "$ref": "#/components/schemas/SnippetUser" 5382 | }, 5383 | "updated_by": { 5384 | "$ref": "#/components/schemas/SnippetUser" 5385 | }, 5386 | "content": { 5387 | "$ref": "#/components/schemas/SnippetContent" 5388 | } 5389 | }, 5390 | "required": [ 5391 | "id", 5392 | "inserted_at", 5393 | "updated_at", 5394 | "type", 5395 | "visibility", 5396 | "name", 5397 | "description", 5398 | "project", 5399 | "owner", 5400 | "updated_by", 5401 | "content" 5402 | ] 5403 | }, 5404 | "ApiKeySecretJWTTemplate": { 5405 | "type": "object", 5406 | "properties": { 5407 | "role": { 5408 | "type": "string" 5409 | } 5410 | }, 5411 | "required": [ 5412 | "role" 5413 | ] 5414 | }, 5415 | "ApiKeyResponse": { 5416 | "type": "object", 5417 | "properties": { 5418 | "type": { 5419 | "nullable": true, 5420 | "type": "string", 5421 | "enum": [ 5422 | "publishable", 5423 | "secret", 5424 | "legacy" 5425 | ] 5426 | }, 5427 | "name": { 5428 | "type": "string" 5429 | }, 5430 | "api_key": { 5431 | "type": "string" 5432 | }, 5433 | "id": { 5434 | "type": "string", 5435 | "nullable": true 5436 | }, 5437 | "prefix": { 5438 | "type": "string", 5439 | "nullable": true 5440 | }, 5441 | "description": { 5442 | "type": "string", 5443 | "nullable": true 5444 | }, 5445 | "hash": { 5446 | "type": "string", 5447 | "nullable": true 5448 | }, 5449 | "secret_jwt_template": { 5450 | "nullable": true, 5451 | "allOf": [ 5452 | { 5453 | "$ref": "#/components/schemas/ApiKeySecretJWTTemplate" 5454 | } 5455 | ] 5456 | }, 5457 | "inserted_at": { 5458 | "type": "string", 5459 | "nullable": true 5460 | }, 5461 | "updated_at": { 5462 | "type": "string", 5463 | "nullable": true 5464 | } 5465 | }, 5466 | "required": [ 5467 | "name", 5468 | "api_key" 5469 | ] 5470 | }, 5471 | "CreateApiKeyBody": { 5472 | "type": "object", 5473 | "properties": { 5474 | "type": { 5475 | "enum": [ 5476 | "publishable", 5477 | "secret" 5478 | ], 5479 | "type": "string" 5480 | }, 5481 | "description": { 5482 | "type": "string", 5483 | "nullable": true 5484 | }, 5485 | "secret_jwt_template": { 5486 | "nullable": true, 5487 | "allOf": [ 5488 | { 5489 | "$ref": "#/components/schemas/ApiKeySecretJWTTemplate" 5490 | } 5491 | ] 5492 | } 5493 | }, 5494 | "required": [ 5495 | "type" 5496 | ] 5497 | }, 5498 | "UpdateApiKeyBody": { 5499 | "type": "object", 5500 | "properties": { 5501 | "description": { 5502 | "type": "string", 5503 | "nullable": true 5504 | }, 5505 | "secret_jwt_template": { 5506 | "nullable": true, 5507 | "allOf": [ 5508 | { 5509 | "$ref": "#/components/schemas/ApiKeySecretJWTTemplate" 5510 | } 5511 | ] 5512 | } 5513 | } 5514 | }, 5515 | "DesiredInstanceSize": { 5516 | "type": "string", 5517 | "enum": [ 5518 | "micro", 5519 | "small", 5520 | "medium", 5521 | "large", 5522 | "xlarge", 5523 | "2xlarge", 5524 | "4xlarge", 5525 | "8xlarge", 5526 | "12xlarge", 5527 | "16xlarge" 5528 | ] 5529 | }, 5530 | "ReleaseChannel": { 5531 | "type": "string", 5532 | "enum": [ 5533 | "internal", 5534 | "alpha", 5535 | "beta", 5536 | "ga", 5537 | "withdrawn", 5538 | "preview" 5539 | ] 5540 | }, 5541 | "PostgresEngine": { 5542 | "type": "string", 5543 | "description": "Postgres engine version. If not provided, the latest version will be used.", 5544 | "enum": [ 5545 | "15", 5546 | "17-oriole" 5547 | ] 5548 | }, 5549 | "CreateBranchBody": { 5550 | "type": "object", 5551 | "properties": { 5552 | "desired_instance_size": { 5553 | "$ref": "#/components/schemas/DesiredInstanceSize" 5554 | }, 5555 | "release_channel": { 5556 | "$ref": "#/components/schemas/ReleaseChannel" 5557 | }, 5558 | "postgres_engine": { 5559 | "$ref": "#/components/schemas/PostgresEngine" 5560 | }, 5561 | "branch_name": { 5562 | "type": "string" 5563 | }, 5564 | "git_branch": { 5565 | "type": "string" 5566 | }, 5567 | "persistent": { 5568 | "type": "boolean" 5569 | }, 5570 | "region": { 5571 | "type": "string" 5572 | } 5573 | }, 5574 | "required": [ 5575 | "branch_name" 5576 | ] 5577 | }, 5578 | "ValidationRecord": { 5579 | "type": "object", 5580 | "properties": { 5581 | "txt_name": { 5582 | "type": "string" 5583 | }, 5584 | "txt_value": { 5585 | "type": "string" 5586 | } 5587 | }, 5588 | "required": [ 5589 | "txt_name", 5590 | "txt_value" 5591 | ] 5592 | }, 5593 | "ValidationError": { 5594 | "type": "object", 5595 | "properties": { 5596 | "message": { 5597 | "type": "string" 5598 | } 5599 | }, 5600 | "required": [ 5601 | "message" 5602 | ] 5603 | }, 5604 | "SslValidation": { 5605 | "type": "object", 5606 | "properties": { 5607 | "status": { 5608 | "type": "string" 5609 | }, 5610 | "validation_records": { 5611 | "type": "array", 5612 | "items": { 5613 | "$ref": "#/components/schemas/ValidationRecord" 5614 | } 5615 | }, 5616 | "validation_errors": { 5617 | "type": "array", 5618 | "items": { 5619 | "$ref": "#/components/schemas/ValidationError" 5620 | } 5621 | } 5622 | }, 5623 | "required": [ 5624 | "status", 5625 | "validation_records" 5626 | ] 5627 | }, 5628 | "OwnershipVerification": { 5629 | "type": "object", 5630 | "properties": { 5631 | "type": { 5632 | "type": "string" 5633 | }, 5634 | "name": { 5635 | "type": "string" 5636 | }, 5637 | "value": { 5638 | "type": "string" 5639 | } 5640 | }, 5641 | "required": [ 5642 | "type", 5643 | "name", 5644 | "value" 5645 | ] 5646 | }, 5647 | "CustomHostnameDetails": { 5648 | "type": "object", 5649 | "properties": { 5650 | "id": { 5651 | "type": "string" 5652 | }, 5653 | "hostname": { 5654 | "type": "string" 5655 | }, 5656 | "ssl": { 5657 | "$ref": "#/components/schemas/SslValidation" 5658 | }, 5659 | "ownership_verification": { 5660 | "$ref": "#/components/schemas/OwnershipVerification" 5661 | }, 5662 | "custom_origin_server": { 5663 | "type": "string" 5664 | }, 5665 | "verification_errors": { 5666 | "type": "array", 5667 | "items": { 5668 | "type": "string" 5669 | } 5670 | }, 5671 | "status": { 5672 | "type": "string" 5673 | } 5674 | }, 5675 | "required": [ 5676 | "id", 5677 | "hostname", 5678 | "ssl", 5679 | "ownership_verification", 5680 | "custom_origin_server", 5681 | "status" 5682 | ] 5683 | }, 5684 | "CfResponse": { 5685 | "type": "object", 5686 | "properties": { 5687 | "success": { 5688 | "type": "boolean" 5689 | }, 5690 | "errors": { 5691 | "type": "array", 5692 | "items": { 5693 | "type": "object" 5694 | } 5695 | }, 5696 | "messages": { 5697 | "type": "array", 5698 | "items": { 5699 | "type": "object" 5700 | } 5701 | }, 5702 | "result": { 5703 | "$ref": "#/components/schemas/CustomHostnameDetails" 5704 | } 5705 | }, 5706 | "required": [ 5707 | "success", 5708 | "errors", 5709 | "messages", 5710 | "result" 5711 | ] 5712 | }, 5713 | "UpdateCustomHostnameResponse": { 5714 | "type": "object", 5715 | "properties": { 5716 | "status": { 5717 | "enum": [ 5718 | "1_not_started", 5719 | "2_initiated", 5720 | "3_challenge_verified", 5721 | "4_origin_setup_completed", 5722 | "5_services_reconfigured" 5723 | ], 5724 | "type": "string" 5725 | }, 5726 | "custom_hostname": { 5727 | "type": "string" 5728 | }, 5729 | "data": { 5730 | "$ref": "#/components/schemas/CfResponse" 5731 | } 5732 | }, 5733 | "required": [ 5734 | "status", 5735 | "custom_hostname", 5736 | "data" 5737 | ] 5738 | }, 5739 | "UpdateCustomHostnameBody": { 5740 | "type": "object", 5741 | "properties": { 5742 | "custom_hostname": { 5743 | "type": "string" 5744 | } 5745 | }, 5746 | "required": [ 5747 | "custom_hostname" 5748 | ] 5749 | }, 5750 | "NetworkBanResponse": { 5751 | "type": "object", 5752 | "properties": { 5753 | "banned_ipv4_addresses": { 5754 | "type": "array", 5755 | "items": { 5756 | "type": "string" 5757 | } 5758 | } 5759 | }, 5760 | "required": [ 5761 | "banned_ipv4_addresses" 5762 | ] 5763 | }, 5764 | "RemoveNetworkBanRequest": { 5765 | "type": "object", 5766 | "properties": { 5767 | "ipv4_addresses": { 5768 | "type": "array", 5769 | "items": { 5770 | "type": "string" 5771 | } 5772 | } 5773 | }, 5774 | "required": [ 5775 | "ipv4_addresses" 5776 | ] 5777 | }, 5778 | "NetworkRestrictionsRequest": { 5779 | "type": "object", 5780 | "properties": { 5781 | "dbAllowedCidrs": { 5782 | "type": "array", 5783 | "items": { 5784 | "type": "string" 5785 | } 5786 | }, 5787 | "dbAllowedCidrsV6": { 5788 | "type": "array", 5789 | "items": { 5790 | "type": "string" 5791 | } 5792 | } 5793 | } 5794 | }, 5795 | "NetworkRestrictionsResponse": { 5796 | "type": "object", 5797 | "properties": { 5798 | "entitlement": { 5799 | "enum": [ 5800 | "disallowed", 5801 | "allowed" 5802 | ], 5803 | "type": "string" 5804 | }, 5805 | "config": { 5806 | "$ref": "#/components/schemas/NetworkRestrictionsRequest" 5807 | }, 5808 | "old_config": { 5809 | "$ref": "#/components/schemas/NetworkRestrictionsRequest" 5810 | }, 5811 | "status": { 5812 | "enum": [ 5813 | "stored", 5814 | "applied" 5815 | ], 5816 | "type": "string" 5817 | } 5818 | }, 5819 | "required": [ 5820 | "entitlement", 5821 | "config", 5822 | "status" 5823 | ] 5824 | }, 5825 | "PgsodiumConfigResponse": { 5826 | "type": "object", 5827 | "properties": { 5828 | "root_key": { 5829 | "type": "string" 5830 | } 5831 | }, 5832 | "required": [ 5833 | "root_key" 5834 | ] 5835 | }, 5836 | "UpdatePgsodiumConfigBody": { 5837 | "type": "object", 5838 | "properties": { 5839 | "root_key": { 5840 | "type": "string" 5841 | } 5842 | }, 5843 | "required": [ 5844 | "root_key" 5845 | ] 5846 | }, 5847 | "PostgrestConfigWithJWTSecretResponse": { 5848 | "type": "object", 5849 | "properties": { 5850 | "max_rows": { 5851 | "type": "integer" 5852 | }, 5853 | "db_pool": { 5854 | "type": "integer", 5855 | "nullable": true, 5856 | "description": "If `null`, the value is automatically configured based on compute size." 5857 | }, 5858 | "db_schema": { 5859 | "type": "string" 5860 | }, 5861 | "db_extra_search_path": { 5862 | "type": "string" 5863 | }, 5864 | "jwt_secret": { 5865 | "type": "string" 5866 | } 5867 | }, 5868 | "required": [ 5869 | "max_rows", 5870 | "db_pool", 5871 | "db_schema", 5872 | "db_extra_search_path" 5873 | ] 5874 | }, 5875 | "UpdatePostgrestConfigBody": { 5876 | "type": "object", 5877 | "properties": { 5878 | "max_rows": { 5879 | "type": "integer", 5880 | "minimum": 0, 5881 | "maximum": 1000000 5882 | }, 5883 | "db_pool": { 5884 | "type": "integer", 5885 | "minimum": 0, 5886 | "maximum": 1000 5887 | }, 5888 | "db_extra_search_path": { 5889 | "type": "string" 5890 | }, 5891 | "db_schema": { 5892 | "type": "string" 5893 | } 5894 | } 5895 | }, 5896 | "V1PostgrestConfigResponse": { 5897 | "type": "object", 5898 | "properties": { 5899 | "max_rows": { 5900 | "type": "integer" 5901 | }, 5902 | "db_pool": { 5903 | "type": "integer", 5904 | "nullable": true, 5905 | "description": "If `null`, the value is automatically configured based on compute size." 5906 | }, 5907 | "db_schema": { 5908 | "type": "string" 5909 | }, 5910 | "db_extra_search_path": { 5911 | "type": "string" 5912 | } 5913 | }, 5914 | "required": [ 5915 | "max_rows", 5916 | "db_pool", 5917 | "db_schema", 5918 | "db_extra_search_path" 5919 | ] 5920 | }, 5921 | "V1ProjectRefResponse": { 5922 | "type": "object", 5923 | "properties": { 5924 | "id": { 5925 | "type": "integer", 5926 | "format": "int64" 5927 | }, 5928 | "ref": { 5929 | "type": "string" 5930 | }, 5931 | "name": { 5932 | "type": "string" 5933 | } 5934 | }, 5935 | "required": [ 5936 | "id", 5937 | "ref", 5938 | "name" 5939 | ] 5940 | }, 5941 | "SecretResponse": { 5942 | "type": "object", 5943 | "properties": { 5944 | "name": { 5945 | "type": "string" 5946 | }, 5947 | "value": { 5948 | "type": "string" 5949 | } 5950 | }, 5951 | "required": [ 5952 | "name", 5953 | "value" 5954 | ] 5955 | }, 5956 | "CreateSecretBody": { 5957 | "type": "object", 5958 | "properties": { 5959 | "name": { 5960 | "type": "string", 5961 | "maxLength": 256, 5962 | "pattern": "/^(?!SUPABASE_).*/", 5963 | "description": "Secret name must not start with the SUPABASE_ prefix.", 5964 | "example": "string" 5965 | }, 5966 | "value": { 5967 | "type": "string", 5968 | "maxLength": 24576 5969 | } 5970 | }, 5971 | "required": [ 5972 | "name", 5973 | "value" 5974 | ] 5975 | }, 5976 | "SslEnforcements": { 5977 | "type": "object", 5978 | "properties": { 5979 | "database": { 5980 | "type": "boolean" 5981 | } 5982 | }, 5983 | "required": [ 5984 | "database" 5985 | ] 5986 | }, 5987 | "SslEnforcementResponse": { 5988 | "type": "object", 5989 | "properties": { 5990 | "currentConfig": { 5991 | "$ref": "#/components/schemas/SslEnforcements" 5992 | }, 5993 | "appliedSuccessfully": { 5994 | "type": "boolean" 5995 | } 5996 | }, 5997 | "required": [ 5998 | "currentConfig", 5999 | "appliedSuccessfully" 6000 | ] 6001 | }, 6002 | "SslEnforcementRequest": { 6003 | "type": "object", 6004 | "properties": { 6005 | "requestedConfig": { 6006 | "$ref": "#/components/schemas/SslEnforcements" 6007 | } 6008 | }, 6009 | "required": [ 6010 | "requestedConfig" 6011 | ] 6012 | }, 6013 | "TypescriptResponse": { 6014 | "type": "object", 6015 | "properties": { 6016 | "types": { 6017 | "type": "string" 6018 | } 6019 | }, 6020 | "required": [ 6021 | "types" 6022 | ] 6023 | }, 6024 | "VanitySubdomainConfigResponse": { 6025 | "type": "object", 6026 | "properties": { 6027 | "status": { 6028 | "enum": [ 6029 | "not-used", 6030 | "custom-domain-used", 6031 | "active" 6032 | ], 6033 | "type": "string" 6034 | }, 6035 | "custom_domain": { 6036 | "type": "string" 6037 | } 6038 | }, 6039 | "required": [ 6040 | "status" 6041 | ] 6042 | }, 6043 | "VanitySubdomainBody": { 6044 | "type": "object", 6045 | "properties": { 6046 | "vanity_subdomain": { 6047 | "type": "string" 6048 | } 6049 | }, 6050 | "required": [ 6051 | "vanity_subdomain" 6052 | ] 6053 | }, 6054 | "SubdomainAvailabilityResponse": { 6055 | "type": "object", 6056 | "properties": { 6057 | "available": { 6058 | "type": "boolean" 6059 | } 6060 | }, 6061 | "required": [ 6062 | "available" 6063 | ] 6064 | }, 6065 | "ActivateVanitySubdomainResponse": { 6066 | "type": "object", 6067 | "properties": { 6068 | "custom_domain": { 6069 | "type": "string" 6070 | } 6071 | }, 6072 | "required": [ 6073 | "custom_domain" 6074 | ] 6075 | }, 6076 | "UpgradeDatabaseBody": { 6077 | "type": "object", 6078 | "properties": { 6079 | "release_channel": { 6080 | "$ref": "#/components/schemas/ReleaseChannel" 6081 | }, 6082 | "target_version": { 6083 | "type": "string" 6084 | } 6085 | }, 6086 | "required": [ 6087 | "release_channel", 6088 | "target_version" 6089 | ] 6090 | }, 6091 | "ProjectUpgradeInitiateResponse": { 6092 | "type": "object", 6093 | "properties": { 6094 | "tracking_id": { 6095 | "type": "string" 6096 | } 6097 | }, 6098 | "required": [ 6099 | "tracking_id" 6100 | ] 6101 | }, 6102 | "ProjectVersion": { 6103 | "type": "object", 6104 | "properties": { 6105 | "postgres_version": { 6106 | "$ref": "#/components/schemas/PostgresEngine" 6107 | }, 6108 | "release_channel": { 6109 | "$ref": "#/components/schemas/ReleaseChannel" 6110 | }, 6111 | "app_version": { 6112 | "type": "string" 6113 | } 6114 | }, 6115 | "required": [ 6116 | "postgres_version", 6117 | "release_channel", 6118 | "app_version" 6119 | ] 6120 | }, 6121 | "ProjectUpgradeEligibilityResponse": { 6122 | "type": "object", 6123 | "properties": { 6124 | "current_app_version_release_channel": { 6125 | "$ref": "#/components/schemas/ReleaseChannel" 6126 | }, 6127 | "duration_estimate_hours": { 6128 | "type": "integer" 6129 | }, 6130 | "eligible": { 6131 | "type": "boolean" 6132 | }, 6133 | "current_app_version": { 6134 | "type": "string" 6135 | }, 6136 | "latest_app_version": { 6137 | "type": "string" 6138 | }, 6139 | "target_upgrade_versions": { 6140 | "type": "array", 6141 | "items": { 6142 | "$ref": "#/components/schemas/ProjectVersion" 6143 | } 6144 | }, 6145 | "potential_breaking_changes": { 6146 | "type": "array", 6147 | "items": { 6148 | "type": "string" 6149 | } 6150 | }, 6151 | "legacy_auth_custom_roles": { 6152 | "type": "array", 6153 | "items": { 6154 | "type": "string" 6155 | } 6156 | }, 6157 | "extension_dependent_objects": { 6158 | "type": "array", 6159 | "items": { 6160 | "type": "string" 6161 | } 6162 | } 6163 | }, 6164 | "required": [ 6165 | "current_app_version_release_channel", 6166 | "duration_estimate_hours", 6167 | "eligible", 6168 | "current_app_version", 6169 | "latest_app_version", 6170 | "target_upgrade_versions", 6171 | "potential_breaking_changes", 6172 | "legacy_auth_custom_roles", 6173 | "extension_dependent_objects" 6174 | ] 6175 | }, 6176 | "DatabaseUpgradeStatus": { 6177 | "type": "object", 6178 | "properties": { 6179 | "target_version": { 6180 | "type": "integer" 6181 | }, 6182 | "status": { 6183 | "enum": [0, 1, 2], 6184 | "type": "integer" 6185 | }, 6186 | "initiated_at": { 6187 | "type": "string" 6188 | }, 6189 | "latest_status_at": { 6190 | "type": "string" 6191 | }, 6192 | "error": { 6193 | "type": "string", 6194 | "enum": [ 6195 | "1_upgraded_instance_launch_failed", 6196 | "2_volume_detachchment_from_upgraded_instance_failed", 6197 | "3_volume_attachment_to_original_instance_failed", 6198 | "4_data_upgrade_initiation_failed", 6199 | "5_data_upgrade_completion_failed", 6200 | "6_volume_detachchment_from_original_instance_failed", 6201 | "7_volume_attachment_to_upgraded_instance_failed", 6202 | "8_upgrade_completion_failed", 6203 | "9_post_physical_backup_failed" 6204 | ] 6205 | }, 6206 | "progress": { 6207 | "type": "string", 6208 | "enum": [ 6209 | "0_requested", 6210 | "1_started", 6211 | "2_launched_upgraded_instance", 6212 | "3_detached_volume_from_upgraded_instance", 6213 | "4_attached_volume_to_original_instance", 6214 | "5_initiated_data_upgrade", 6215 | "6_completed_data_upgrade", 6216 | "7_detached_volume_from_original_instance", 6217 | "8_attached_volume_to_upgraded_instance", 6218 | "9_completed_upgrade", 6219 | "10_completed_post_physical_backup" 6220 | ] 6221 | } 6222 | }, 6223 | "required": [ 6224 | "target_version", 6225 | "status", 6226 | "initiated_at", 6227 | "latest_status_at" 6228 | ] 6229 | }, 6230 | "DatabaseUpgradeStatusResponse": { 6231 | "type": "object", 6232 | "properties": { 6233 | "databaseUpgradeStatus": { 6234 | "nullable": true, 6235 | "allOf": [ 6236 | { 6237 | "$ref": "#/components/schemas/DatabaseUpgradeStatus" 6238 | } 6239 | ] 6240 | } 6241 | }, 6242 | "required": [ 6243 | "databaseUpgradeStatus" 6244 | ] 6245 | }, 6246 | "ReadOnlyStatusResponse": { 6247 | "type": "object", 6248 | "properties": { 6249 | "enabled": { 6250 | "type": "boolean" 6251 | }, 6252 | "override_enabled": { 6253 | "type": "boolean" 6254 | }, 6255 | "override_active_until": { 6256 | "type": "string" 6257 | } 6258 | }, 6259 | "required": [ 6260 | "enabled", 6261 | "override_enabled", 6262 | "override_active_until" 6263 | ] 6264 | }, 6265 | "SetUpReadReplicaBody": { 6266 | "type": "object", 6267 | "properties": { 6268 | "read_replica_region": { 6269 | "type": "string", 6270 | "enum": [ 6271 | "us-east-1", 6272 | "us-east-2", 6273 | "us-west-1", 6274 | "us-west-2", 6275 | "ap-east-1", 6276 | "ap-southeast-1", 6277 | "ap-northeast-1", 6278 | "ap-northeast-2", 6279 | "ap-southeast-2", 6280 | "eu-west-1", 6281 | "eu-west-2", 6282 | "eu-west-3", 6283 | "eu-north-1", 6284 | "eu-central-1", 6285 | "eu-central-2", 6286 | "ca-central-1", 6287 | "ap-south-1", 6288 | "sa-east-1" 6289 | ], 6290 | "description": "Region you want your read replica to reside in", 6291 | "example": "us-east-1" 6292 | } 6293 | }, 6294 | "required": [ 6295 | "read_replica_region" 6296 | ] 6297 | }, 6298 | "RemoveReadReplicaBody": { 6299 | "type": "object", 6300 | "properties": { 6301 | "database_identifier": { 6302 | "type": "string" 6303 | } 6304 | }, 6305 | "required": [ 6306 | "database_identifier" 6307 | ] 6308 | }, 6309 | "AuthHealthResponse": { 6310 | "type": "object", 6311 | "properties": { 6312 | "name": { 6313 | "type": "string", 6314 | "enum": [ 6315 | "GoTrue" 6316 | ] 6317 | } 6318 | }, 6319 | "required": [ 6320 | "name" 6321 | ] 6322 | }, 6323 | "RealtimeHealthResponse": { 6324 | "type": "object", 6325 | "properties": { 6326 | "connected_cluster": { 6327 | "type": "integer" 6328 | } 6329 | }, 6330 | "required": [ 6331 | "connected_cluster" 6332 | ] 6333 | }, 6334 | "V1ServiceHealthResponse": { 6335 | "type": "object", 6336 | "properties": { 6337 | "info": { 6338 | "oneOf": [ 6339 | { 6340 | "$ref": "#/components/schemas/AuthHealthResponse" 6341 | }, 6342 | { 6343 | "$ref": "#/components/schemas/RealtimeHealthResponse" 6344 | } 6345 | ] 6346 | }, 6347 | "name": { 6348 | "enum": [ 6349 | "auth", 6350 | "db", 6351 | "pooler", 6352 | "realtime", 6353 | "rest", 6354 | "storage" 6355 | ], 6356 | "type": "string" 6357 | }, 6358 | "healthy": { 6359 | "type": "boolean" 6360 | }, 6361 | "status": { 6362 | "enum": [ 6363 | "COMING_UP", 6364 | "ACTIVE_HEALTHY", 6365 | "UNHEALTHY" 6366 | ], 6367 | "type": "string" 6368 | }, 6369 | "error": { 6370 | "type": "string" 6371 | } 6372 | }, 6373 | "required": [ 6374 | "name", 6375 | "healthy", 6376 | "status" 6377 | ] 6378 | }, 6379 | "StorageFeatureImageTransformation": { 6380 | "type": "object", 6381 | "properties": { 6382 | "enabled": { 6383 | "type": "boolean" 6384 | } 6385 | }, 6386 | "required": [ 6387 | "enabled" 6388 | ] 6389 | }, 6390 | "StorageFeatureS3Protocol": { 6391 | "type": "object", 6392 | "properties": { 6393 | "enabled": { 6394 | "type": "boolean" 6395 | } 6396 | }, 6397 | "required": [ 6398 | "enabled" 6399 | ] 6400 | }, 6401 | "StorageFeatures": { 6402 | "type": "object", 6403 | "properties": { 6404 | "imageTransformation": { 6405 | "$ref": "#/components/schemas/StorageFeatureImageTransformation" 6406 | }, 6407 | "s3Protocol": { 6408 | "$ref": "#/components/schemas/StorageFeatureS3Protocol" 6409 | } 6410 | }, 6411 | "required": [ 6412 | "imageTransformation", 6413 | "s3Protocol" 6414 | ] 6415 | }, 6416 | "StorageConfigResponse": { 6417 | "type": "object", 6418 | "properties": { 6419 | "fileSizeLimit": { 6420 | "type": "integer", 6421 | "format": "int64" 6422 | }, 6423 | "features": { 6424 | "$ref": "#/components/schemas/StorageFeatures" 6425 | } 6426 | }, 6427 | "required": [ 6428 | "fileSizeLimit", 6429 | "features" 6430 | ] 6431 | }, 6432 | "UpdateStorageConfigBody": { 6433 | "type": "object", 6434 | "properties": { 6435 | "fileSizeLimit": { 6436 | "type": "integer", 6437 | "minimum": 0, 6438 | "maximum": 53687091200, 6439 | "format": "int64" 6440 | }, 6441 | "features": { 6442 | "$ref": "#/components/schemas/StorageFeatures" 6443 | } 6444 | } 6445 | }, 6446 | "PostgresConfigResponse": { 6447 | "type": "object", 6448 | "properties": { 6449 | "effective_cache_size": { 6450 | "type": "string" 6451 | }, 6452 | "logical_decoding_work_mem": { 6453 | "type": "string" 6454 | }, 6455 | "maintenance_work_mem": { 6456 | "type": "string" 6457 | }, 6458 | "track_activity_query_size": { 6459 | "type": "string" 6460 | }, 6461 | "max_connections": { 6462 | "type": "integer", 6463 | "minimum": 1, 6464 | "maximum": 262143 6465 | }, 6466 | "max_locks_per_transaction": { 6467 | "type": "integer", 6468 | "minimum": 10, 6469 | "maximum": 2147483640 6470 | }, 6471 | "max_parallel_maintenance_workers": { 6472 | "type": "integer", 6473 | "minimum": 0, 6474 | "maximum": 1024 6475 | }, 6476 | "max_parallel_workers": { 6477 | "type": "integer", 6478 | "minimum": 0, 6479 | "maximum": 1024 6480 | }, 6481 | "max_parallel_workers_per_gather": { 6482 | "type": "integer", 6483 | "minimum": 0, 6484 | "maximum": 1024 6485 | }, 6486 | "max_replication_slots": { 6487 | "type": "integer" 6488 | }, 6489 | "max_slot_wal_keep_size": { 6490 | "type": "string" 6491 | }, 6492 | "max_standby_archive_delay": { 6493 | "type": "string" 6494 | }, 6495 | "max_standby_streaming_delay": { 6496 | "type": "string" 6497 | }, 6498 | "max_wal_size": { 6499 | "type": "string" 6500 | }, 6501 | "max_wal_senders": { 6502 | "type": "integer" 6503 | }, 6504 | "max_worker_processes": { 6505 | "type": "integer", 6506 | "minimum": 0, 6507 | "maximum": 262143 6508 | }, 6509 | "shared_buffers": { 6510 | "type": "string" 6511 | }, 6512 | "statement_timeout": { 6513 | "type": "string" 6514 | }, 6515 | "track_commit_timestamp": { 6516 | "type": "boolean" 6517 | }, 6518 | "wal_keep_size": { 6519 | "type": "string" 6520 | }, 6521 | "wal_sender_timeout": { 6522 | "type": "string" 6523 | }, 6524 | "work_mem": { 6525 | "type": "string" 6526 | }, 6527 | "session_replication_role": { 6528 | "enum": [ 6529 | "origin", 6530 | "replica", 6531 | "local" 6532 | ], 6533 | "type": "string" 6534 | } 6535 | } 6536 | }, 6537 | "UpdatePostgresConfigBody": { 6538 | "type": "object", 6539 | "properties": { 6540 | "effective_cache_size": { 6541 | "type": "string" 6542 | }, 6543 | "logical_decoding_work_mem": { 6544 | "type": "string" 6545 | }, 6546 | "maintenance_work_mem": { 6547 | "type": "string" 6548 | }, 6549 | "track_activity_query_size": { 6550 | "type": "string" 6551 | }, 6552 | "max_connections": { 6553 | "type": "integer", 6554 | "minimum": 1, 6555 | "maximum": 262143 6556 | }, 6557 | "max_locks_per_transaction": { 6558 | "type": "integer", 6559 | "minimum": 10, 6560 | "maximum": 2147483640 6561 | }, 6562 | "max_parallel_maintenance_workers": { 6563 | "type": "integer", 6564 | "minimum": 0, 6565 | "maximum": 1024 6566 | }, 6567 | "max_parallel_workers": { 6568 | "type": "integer", 6569 | "minimum": 0, 6570 | "maximum": 1024 6571 | }, 6572 | "max_parallel_workers_per_gather": { 6573 | "type": "integer", 6574 | "minimum": 0, 6575 | "maximum": 1024 6576 | }, 6577 | "max_replication_slots": { 6578 | "type": "integer" 6579 | }, 6580 | "max_slot_wal_keep_size": { 6581 | "type": "string" 6582 | }, 6583 | "max_standby_archive_delay": { 6584 | "type": "string" 6585 | }, 6586 | "max_standby_streaming_delay": { 6587 | "type": "string" 6588 | }, 6589 | "max_wal_size": { 6590 | "type": "string" 6591 | }, 6592 | "max_wal_senders": { 6593 | "type": "integer" 6594 | }, 6595 | "max_worker_processes": { 6596 | "type": "integer", 6597 | "minimum": 0, 6598 | "maximum": 262143 6599 | }, 6600 | "shared_buffers": { 6601 | "type": "string" 6602 | }, 6603 | "statement_timeout": { 6604 | "type": "string" 6605 | }, 6606 | "track_commit_timestamp": { 6607 | "type": "boolean" 6608 | }, 6609 | "wal_keep_size": { 6610 | "type": "string" 6611 | }, 6612 | "wal_sender_timeout": { 6613 | "type": "string" 6614 | }, 6615 | "work_mem": { 6616 | "type": "string" 6617 | }, 6618 | "restart_database": { 6619 | "type": "boolean" 6620 | }, 6621 | "session_replication_role": { 6622 | "enum": [ 6623 | "origin", 6624 | "replica", 6625 | "local" 6626 | ], 6627 | "type": "string" 6628 | } 6629 | } 6630 | }, 6631 | "V1PgbouncerConfigResponse": { 6632 | "type": "object", 6633 | "properties": { 6634 | "pool_mode": { 6635 | "type": "string", 6636 | "enum": [ 6637 | "transaction", 6638 | "session", 6639 | "statement" 6640 | ] 6641 | }, 6642 | "default_pool_size": { 6643 | "type": "number" 6644 | }, 6645 | "ignore_startup_parameters": { 6646 | "type": "string" 6647 | }, 6648 | "max_client_conn": { 6649 | "type": "number" 6650 | }, 6651 | "connection_string": { 6652 | "type": "string" 6653 | } 6654 | } 6655 | }, 6656 | "SupavisorConfigResponse": { 6657 | "type": "object", 6658 | "properties": { 6659 | "database_type": { 6660 | "type": "string", 6661 | "enum": [ 6662 | "PRIMARY", 6663 | "READ_REPLICA" 6664 | ] 6665 | }, 6666 | "db_port": { 6667 | "type": "integer" 6668 | }, 6669 | "default_pool_size": { 6670 | "type": "integer", 6671 | "nullable": true 6672 | }, 6673 | "max_client_conn": { 6674 | "type": "integer", 6675 | "nullable": true 6676 | }, 6677 | "identifier": { 6678 | "type": "string" 6679 | }, 6680 | "is_using_scram_auth": { 6681 | "type": "boolean" 6682 | }, 6683 | "db_user": { 6684 | "type": "string" 6685 | }, 6686 | "db_host": { 6687 | "type": "string" 6688 | }, 6689 | "db_name": { 6690 | "type": "string" 6691 | }, 6692 | "connectionString": { 6693 | "type": "string" 6694 | }, 6695 | "pool_mode": { 6696 | "enum": [ 6697 | "transaction", 6698 | "session" 6699 | ], 6700 | "type": "string" 6701 | } 6702 | }, 6703 | "required": [ 6704 | "database_type", 6705 | "db_port", 6706 | "default_pool_size", 6707 | "max_client_conn", 6708 | "identifier", 6709 | "is_using_scram_auth", 6710 | "db_user", 6711 | "db_host", 6712 | "db_name", 6713 | "connectionString", 6714 | "pool_mode" 6715 | ] 6716 | }, 6717 | "UpdateSupavisorConfigBody": { 6718 | "type": "object", 6719 | "properties": { 6720 | "default_pool_size": { 6721 | "type": "integer", 6722 | "nullable": true, 6723 | "minimum": 0, 6724 | "maximum": 1000 6725 | }, 6726 | "pool_mode": { 6727 | "enum": [ 6728 | "transaction", 6729 | "session" 6730 | ], 6731 | "type": "string", 6732 | "deprecated": true, 6733 | "description": "This field is deprecated and is ignored in this request" 6734 | } 6735 | } 6736 | }, 6737 | "UpdateSupavisorConfigResponse": { 6738 | "type": "object", 6739 | "properties": { 6740 | "default_pool_size": { 6741 | "type": "integer", 6742 | "nullable": true 6743 | }, 6744 | "pool_mode": { 6745 | "enum": [ 6746 | "transaction", 6747 | "session" 6748 | ], 6749 | "type": "string" 6750 | } 6751 | }, 6752 | "required": [ 6753 | "default_pool_size", 6754 | "pool_mode" 6755 | ] 6756 | }, 6757 | "AuthConfigResponse": { 6758 | "type": "object", 6759 | "properties": { 6760 | "api_max_request_duration": { 6761 | "type": "integer", 6762 | "nullable": true 6763 | }, 6764 | "db_max_pool_size": { 6765 | "type": "integer", 6766 | "nullable": true 6767 | }, 6768 | "jwt_exp": { 6769 | "type": "integer", 6770 | "nullable": true 6771 | }, 6772 | "mailer_otp_exp": { 6773 | "type": "integer" 6774 | }, 6775 | "mailer_otp_length": { 6776 | "type": "integer", 6777 | "nullable": true 6778 | }, 6779 | "mfa_max_enrolled_factors": { 6780 | "type": "integer", 6781 | "nullable": true 6782 | }, 6783 | "mfa_phone_otp_length": { 6784 | "type": "integer" 6785 | }, 6786 | "mfa_phone_max_frequency": { 6787 | "type": "integer", 6788 | "nullable": true 6789 | }, 6790 | "password_min_length": { 6791 | "type": "integer", 6792 | "nullable": true 6793 | }, 6794 | "rate_limit_anonymous_users": { 6795 | "type": "integer", 6796 | "nullable": true 6797 | }, 6798 | "rate_limit_email_sent": { 6799 | "type": "integer", 6800 | "nullable": true 6801 | }, 6802 | "rate_limit_sms_sent": { 6803 | "type": "integer", 6804 | "nullable": true 6805 | }, 6806 | "rate_limit_token_refresh": { 6807 | "type": "integer", 6808 | "nullable": true 6809 | }, 6810 | "rate_limit_verify": { 6811 | "type": "integer", 6812 | "nullable": true 6813 | }, 6814 | "rate_limit_otp": { 6815 | "type": "integer", 6816 | "nullable": true 6817 | }, 6818 | "security_refresh_token_reuse_interval": { 6819 | "type": "integer", 6820 | "nullable": true 6821 | }, 6822 | "sessions_inactivity_timeout": { 6823 | "type": "integer", 6824 | "nullable": true 6825 | }, 6826 | "sessions_timebox": { 6827 | "type": "integer", 6828 | "nullable": true 6829 | }, 6830 | "sms_max_frequency": { 6831 | "type": "integer", 6832 | "nullable": true 6833 | }, 6834 | "sms_otp_exp": { 6835 | "type": "integer", 6836 | "nullable": true 6837 | }, 6838 | "sms_otp_length": { 6839 | "type": "integer" 6840 | }, 6841 | "smtp_max_frequency": { 6842 | "type": "integer", 6843 | "nullable": true 6844 | }, 6845 | "disable_signup": { 6846 | "type": "boolean", 6847 | "nullable": true 6848 | }, 6849 | "external_anonymous_users_enabled": { 6850 | "type": "boolean", 6851 | "nullable": true 6852 | }, 6853 | "external_apple_additional_client_ids": { 6854 | "type": "string", 6855 | "nullable": true 6856 | }, 6857 | "external_apple_client_id": { 6858 | "type": "string", 6859 | "nullable": true 6860 | }, 6861 | "external_apple_enabled": { 6862 | "type": "boolean", 6863 | "nullable": true 6864 | }, 6865 | "external_apple_secret": { 6866 | "type": "string", 6867 | "nullable": true 6868 | }, 6869 | "external_azure_client_id": { 6870 | "type": "string", 6871 | "nullable": true 6872 | }, 6873 | "external_azure_enabled": { 6874 | "type": "boolean", 6875 | "nullable": true 6876 | }, 6877 | "external_azure_secret": { 6878 | "type": "string", 6879 | "nullable": true 6880 | }, 6881 | "external_azure_url": { 6882 | "type": "string", 6883 | "nullable": true 6884 | }, 6885 | "external_bitbucket_client_id": { 6886 | "type": "string", 6887 | "nullable": true 6888 | }, 6889 | "external_bitbucket_enabled": { 6890 | "type": "boolean", 6891 | "nullable": true 6892 | }, 6893 | "external_bitbucket_secret": { 6894 | "type": "string", 6895 | "nullable": true 6896 | }, 6897 | "external_discord_client_id": { 6898 | "type": "string", 6899 | "nullable": true 6900 | }, 6901 | "external_discord_enabled": { 6902 | "type": "boolean", 6903 | "nullable": true 6904 | }, 6905 | "external_discord_secret": { 6906 | "type": "string", 6907 | "nullable": true 6908 | }, 6909 | "external_email_enabled": { 6910 | "type": "boolean", 6911 | "nullable": true 6912 | }, 6913 | "external_facebook_client_id": { 6914 | "type": "string", 6915 | "nullable": true 6916 | }, 6917 | "external_facebook_enabled": { 6918 | "type": "boolean", 6919 | "nullable": true 6920 | }, 6921 | "external_facebook_secret": { 6922 | "type": "string", 6923 | "nullable": true 6924 | }, 6925 | "external_figma_client_id": { 6926 | "type": "string", 6927 | "nullable": true 6928 | }, 6929 | "external_figma_enabled": { 6930 | "type": "boolean", 6931 | "nullable": true 6932 | }, 6933 | "external_figma_secret": { 6934 | "type": "string", 6935 | "nullable": true 6936 | }, 6937 | "external_github_client_id": { 6938 | "type": "string", 6939 | "nullable": true 6940 | }, 6941 | "external_github_enabled": { 6942 | "type": "boolean", 6943 | "nullable": true 6944 | }, 6945 | "external_github_secret": { 6946 | "type": "string", 6947 | "nullable": true 6948 | }, 6949 | "external_gitlab_client_id": { 6950 | "type": "string", 6951 | "nullable": true 6952 | }, 6953 | "external_gitlab_enabled": { 6954 | "type": "boolean", 6955 | "nullable": true 6956 | }, 6957 | "external_gitlab_secret": { 6958 | "type": "string", 6959 | "nullable": true 6960 | }, 6961 | "external_gitlab_url": { 6962 | "type": "string", 6963 | "nullable": true 6964 | }, 6965 | "external_google_additional_client_ids": { 6966 | "type": "string", 6967 | "nullable": true 6968 | }, 6969 | "external_google_client_id": { 6970 | "type": "string", 6971 | "nullable": true 6972 | }, 6973 | "external_google_enabled": { 6974 | "type": "boolean", 6975 | "nullable": true 6976 | }, 6977 | "external_google_secret": { 6978 | "type": "string", 6979 | "nullable": true 6980 | }, 6981 | "external_google_skip_nonce_check": { 6982 | "type": "boolean", 6983 | "nullable": true 6984 | }, 6985 | "external_kakao_client_id": { 6986 | "type": "string", 6987 | "nullable": true 6988 | }, 6989 | "external_kakao_enabled": { 6990 | "type": "boolean", 6991 | "nullable": true 6992 | }, 6993 | "external_kakao_secret": { 6994 | "type": "string", 6995 | "nullable": true 6996 | }, 6997 | "external_keycloak_client_id": { 6998 | "type": "string", 6999 | "nullable": true 7000 | }, 7001 | "external_keycloak_enabled": { 7002 | "type": "boolean", 7003 | "nullable": true 7004 | }, 7005 | "external_keycloak_secret": { 7006 | "type": "string", 7007 | "nullable": true 7008 | }, 7009 | "external_keycloak_url": { 7010 | "type": "string", 7011 | "nullable": true 7012 | }, 7013 | "external_linkedin_oidc_client_id": { 7014 | "type": "string", 7015 | "nullable": true 7016 | }, 7017 | "external_linkedin_oidc_enabled": { 7018 | "type": "boolean", 7019 | "nullable": true 7020 | }, 7021 | "external_linkedin_oidc_secret": { 7022 | "type": "string", 7023 | "nullable": true 7024 | }, 7025 | "external_slack_oidc_client_id": { 7026 | "type": "string", 7027 | "nullable": true 7028 | }, 7029 | "external_slack_oidc_enabled": { 7030 | "type": "boolean", 7031 | "nullable": true 7032 | }, 7033 | "external_slack_oidc_secret": { 7034 | "type": "string", 7035 | "nullable": true 7036 | }, 7037 | "external_notion_client_id": { 7038 | "type": "string", 7039 | "nullable": true 7040 | }, 7041 | "external_notion_enabled": { 7042 | "type": "boolean", 7043 | "nullable": true 7044 | }, 7045 | "external_notion_secret": { 7046 | "type": "string", 7047 | "nullable": true 7048 | }, 7049 | "external_phone_enabled": { 7050 | "type": "boolean", 7051 | "nullable": true 7052 | }, 7053 | "external_slack_client_id": { 7054 | "type": "string", 7055 | "nullable": true 7056 | }, 7057 | "external_slack_enabled": { 7058 | "type": "boolean", 7059 | "nullable": true 7060 | }, 7061 | "external_slack_secret": { 7062 | "type": "string", 7063 | "nullable": true 7064 | }, 7065 | "external_spotify_client_id": { 7066 | "type": "string", 7067 | "nullable": true 7068 | }, 7069 | "external_spotify_enabled": { 7070 | "type": "boolean", 7071 | "nullable": true 7072 | }, 7073 | "external_spotify_secret": { 7074 | "type": "string", 7075 | "nullable": true 7076 | }, 7077 | "external_twitch_client_id": { 7078 | "type": "string", 7079 | "nullable": true 7080 | }, 7081 | "external_twitch_enabled": { 7082 | "type": "boolean", 7083 | "nullable": true 7084 | }, 7085 | "external_twitch_secret": { 7086 | "type": "string", 7087 | "nullable": true 7088 | }, 7089 | "external_twitter_client_id": { 7090 | "type": "string", 7091 | "nullable": true 7092 | }, 7093 | "external_twitter_enabled": { 7094 | "type": "boolean", 7095 | "nullable": true 7096 | }, 7097 | "external_twitter_secret": { 7098 | "type": "string", 7099 | "nullable": true 7100 | }, 7101 | "external_workos_client_id": { 7102 | "type": "string", 7103 | "nullable": true 7104 | }, 7105 | "external_workos_enabled": { 7106 | "type": "boolean", 7107 | "nullable": true 7108 | }, 7109 | "external_workos_secret": { 7110 | "type": "string", 7111 | "nullable": true 7112 | }, 7113 | "external_workos_url": { 7114 | "type": "string", 7115 | "nullable": true 7116 | }, 7117 | "external_zoom_client_id": { 7118 | "type": "string", 7119 | "nullable": true 7120 | }, 7121 | "external_zoom_enabled": { 7122 | "type": "boolean", 7123 | "nullable": true 7124 | }, 7125 | "external_zoom_secret": { 7126 | "type": "string", 7127 | "nullable": true 7128 | }, 7129 | "hook_custom_access_token_enabled": { 7130 | "type": "boolean", 7131 | "nullable": true 7132 | }, 7133 | "hook_custom_access_token_uri": { 7134 | "type": "string", 7135 | "nullable": true 7136 | }, 7137 | "hook_custom_access_token_secrets": { 7138 | "type": "string", 7139 | "nullable": true 7140 | }, 7141 | "hook_mfa_verification_attempt_enabled": { 7142 | "type": "boolean", 7143 | "nullable": true 7144 | }, 7145 | "hook_mfa_verification_attempt_uri": { 7146 | "type": "string", 7147 | "nullable": true 7148 | }, 7149 | "hook_mfa_verification_attempt_secrets": { 7150 | "type": "string", 7151 | "nullable": true 7152 | }, 7153 | "hook_password_verification_attempt_enabled": { 7154 | "type": "boolean", 7155 | "nullable": true 7156 | }, 7157 | "hook_password_verification_attempt_uri": { 7158 | "type": "string", 7159 | "nullable": true 7160 | }, 7161 | "hook_password_verification_attempt_secrets": { 7162 | "type": "string", 7163 | "nullable": true 7164 | }, 7165 | "hook_send_sms_enabled": { 7166 | "type": "boolean", 7167 | "nullable": true 7168 | }, 7169 | "hook_send_sms_uri": { 7170 | "type": "string", 7171 | "nullable": true 7172 | }, 7173 | "hook_send_sms_secrets": { 7174 | "type": "string", 7175 | "nullable": true 7176 | }, 7177 | "hook_send_email_enabled": { 7178 | "type": "boolean", 7179 | "nullable": true 7180 | }, 7181 | "hook_send_email_uri": { 7182 | "type": "string", 7183 | "nullable": true 7184 | }, 7185 | "hook_send_email_secrets": { 7186 | "type": "string", 7187 | "nullable": true 7188 | }, 7189 | "mailer_allow_unverified_email_sign_ins": { 7190 | "type": "boolean", 7191 | "nullable": true 7192 | }, 7193 | "mailer_autoconfirm": { 7194 | "type": "boolean", 7195 | "nullable": true 7196 | }, 7197 | "mailer_secure_email_change_enabled": { 7198 | "type": "boolean", 7199 | "nullable": true 7200 | }, 7201 | "mailer_subjects_confirmation": { 7202 | "type": "string", 7203 | "nullable": true 7204 | }, 7205 | "mailer_subjects_email_change": { 7206 | "type": "string", 7207 | "nullable": true 7208 | }, 7209 | "mailer_subjects_invite": { 7210 | "type": "string", 7211 | "nullable": true 7212 | }, 7213 | "mailer_subjects_magic_link": { 7214 | "type": "string", 7215 | "nullable": true 7216 | }, 7217 | "mailer_subjects_reauthentication": { 7218 | "type": "string", 7219 | "nullable": true 7220 | }, 7221 | "mailer_subjects_recovery": { 7222 | "type": "string", 7223 | "nullable": true 7224 | }, 7225 | "mailer_templates_confirmation_content": { 7226 | "type": "string", 7227 | "nullable": true 7228 | }, 7229 | "mailer_templates_email_change_content": { 7230 | "type": "string", 7231 | "nullable": true 7232 | }, 7233 | "mailer_templates_invite_content": { 7234 | "type": "string", 7235 | "nullable": true 7236 | }, 7237 | "mailer_templates_magic_link_content": { 7238 | "type": "string", 7239 | "nullable": true 7240 | }, 7241 | "mailer_templates_reauthentication_content": { 7242 | "type": "string", 7243 | "nullable": true 7244 | }, 7245 | "mailer_templates_recovery_content": { 7246 | "type": "string", 7247 | "nullable": true 7248 | }, 7249 | "mfa_totp_enroll_enabled": { 7250 | "type": "boolean", 7251 | "nullable": true 7252 | }, 7253 | "mfa_totp_verify_enabled": { 7254 | "type": "boolean", 7255 | "nullable": true 7256 | }, 7257 | "mfa_phone_enroll_enabled": { 7258 | "type": "boolean", 7259 | "nullable": true 7260 | }, 7261 | "mfa_phone_verify_enabled": { 7262 | "type": "boolean", 7263 | "nullable": true 7264 | }, 7265 | "mfa_web_authn_enroll_enabled": { 7266 | "type": "boolean", 7267 | "nullable": true 7268 | }, 7269 | "mfa_web_authn_verify_enabled": { 7270 | "type": "boolean", 7271 | "nullable": true 7272 | }, 7273 | "mfa_phone_template": { 7274 | "type": "string", 7275 | "nullable": true 7276 | }, 7277 | "password_hibp_enabled": { 7278 | "type": "boolean", 7279 | "nullable": true 7280 | }, 7281 | "password_required_characters": { 7282 | "type": "string", 7283 | "nullable": true 7284 | }, 7285 | "refresh_token_rotation_enabled": { 7286 | "type": "boolean", 7287 | "nullable": true 7288 | }, 7289 | "saml_enabled": { 7290 | "type": "boolean", 7291 | "nullable": true 7292 | }, 7293 | "saml_external_url": { 7294 | "type": "string", 7295 | "nullable": true 7296 | }, 7297 | "saml_allow_encrypted_assertions": { 7298 | "type": "boolean", 7299 | "nullable": true 7300 | }, 7301 | "security_captcha_enabled": { 7302 | "type": "boolean", 7303 | "nullable": true 7304 | }, 7305 | "security_captcha_provider": { 7306 | "type": "string", 7307 | "nullable": true 7308 | }, 7309 | "security_captcha_secret": { 7310 | "type": "string", 7311 | "nullable": true 7312 | }, 7313 | "security_manual_linking_enabled": { 7314 | "type": "boolean", 7315 | "nullable": true 7316 | }, 7317 | "security_update_password_require_reauthentication": { 7318 | "type": "boolean", 7319 | "nullable": true 7320 | }, 7321 | "sessions_single_per_user": { 7322 | "type": "boolean", 7323 | "nullable": true 7324 | }, 7325 | "sessions_tags": { 7326 | "type": "string", 7327 | "nullable": true 7328 | }, 7329 | "site_url": { 7330 | "type": "string", 7331 | "nullable": true 7332 | }, 7333 | "sms_autoconfirm": { 7334 | "type": "boolean", 7335 | "nullable": true 7336 | }, 7337 | "sms_messagebird_access_key": { 7338 | "type": "string", 7339 | "nullable": true 7340 | }, 7341 | "sms_messagebird_originator": { 7342 | "type": "string", 7343 | "nullable": true 7344 | }, 7345 | "sms_provider": { 7346 | "type": "string", 7347 | "nullable": true 7348 | }, 7349 | "sms_template": { 7350 | "type": "string", 7351 | "nullable": true 7352 | }, 7353 | "sms_test_otp": { 7354 | "type": "string", 7355 | "nullable": true 7356 | }, 7357 | "sms_test_otp_valid_until": { 7358 | "type": "string", 7359 | "nullable": true 7360 | }, 7361 | "sms_textlocal_api_key": { 7362 | "type": "string", 7363 | "nullable": true 7364 | }, 7365 | "sms_textlocal_sender": { 7366 | "type": "string", 7367 | "nullable": true 7368 | }, 7369 | "sms_twilio_account_sid": { 7370 | "type": "string", 7371 | "nullable": true 7372 | }, 7373 | "sms_twilio_auth_token": { 7374 | "type": "string", 7375 | "nullable": true 7376 | }, 7377 | "sms_twilio_content_sid": { 7378 | "type": "string", 7379 | "nullable": true 7380 | }, 7381 | "sms_twilio_message_service_sid": { 7382 | "type": "string", 7383 | "nullable": true 7384 | }, 7385 | "sms_twilio_verify_account_sid": { 7386 | "type": "string", 7387 | "nullable": true 7388 | }, 7389 | "sms_twilio_verify_auth_token": { 7390 | "type": "string", 7391 | "nullable": true 7392 | }, 7393 | "sms_twilio_verify_message_service_sid": { 7394 | "type": "string", 7395 | "nullable": true 7396 | }, 7397 | "sms_vonage_api_key": { 7398 | "type": "string", 7399 | "nullable": true 7400 | }, 7401 | "sms_vonage_api_secret": { 7402 | "type": "string", 7403 | "nullable": true 7404 | }, 7405 | "sms_vonage_from": { 7406 | "type": "string", 7407 | "nullable": true 7408 | }, 7409 | "smtp_admin_email": { 7410 | "type": "string", 7411 | "nullable": true 7412 | }, 7413 | "smtp_host": { 7414 | "type": "string", 7415 | "nullable": true 7416 | }, 7417 | "smtp_pass": { 7418 | "type": "string", 7419 | "nullable": true 7420 | }, 7421 | "smtp_port": { 7422 | "type": "string", 7423 | "nullable": true 7424 | }, 7425 | "smtp_sender_name": { 7426 | "type": "string", 7427 | "nullable": true 7428 | }, 7429 | "smtp_user": { 7430 | "type": "string", 7431 | "nullable": true 7432 | }, 7433 | "uri_allow_list": { 7434 | "type": "string", 7435 | "nullable": true 7436 | } 7437 | }, 7438 | "required": [ 7439 | "api_max_request_duration", 7440 | "db_max_pool_size", 7441 | "jwt_exp", 7442 | "mailer_otp_exp", 7443 | "mailer_otp_length", 7444 | "mfa_max_enrolled_factors", 7445 | "mfa_phone_otp_length", 7446 | "mfa_phone_max_frequency", 7447 | "password_min_length", 7448 | "rate_limit_anonymous_users", 7449 | "rate_limit_email_sent", 7450 | "rate_limit_sms_sent", 7451 | "rate_limit_token_refresh", 7452 | "rate_limit_verify", 7453 | "rate_limit_otp", 7454 | "security_refresh_token_reuse_interval", 7455 | "sessions_inactivity_timeout", 7456 | "sessions_timebox", 7457 | "sms_max_frequency", 7458 | "sms_otp_exp", 7459 | "sms_otp_length", 7460 | "smtp_max_frequency", 7461 | "disable_signup", 7462 | "external_anonymous_users_enabled", 7463 | "external_apple_additional_client_ids", 7464 | "external_apple_client_id", 7465 | "external_apple_enabled", 7466 | "external_apple_secret", 7467 | "external_azure_client_id", 7468 | "external_azure_enabled", 7469 | "external_azure_secret", 7470 | "external_azure_url", 7471 | "external_bitbucket_client_id", 7472 | "external_bitbucket_enabled", 7473 | "external_bitbucket_secret", 7474 | "external_discord_client_id", 7475 | "external_discord_enabled", 7476 | "external_discord_secret", 7477 | "external_email_enabled", 7478 | "external_facebook_client_id", 7479 | "external_facebook_enabled", 7480 | "external_facebook_secret", 7481 | "external_figma_client_id", 7482 | "external_figma_enabled", 7483 | "external_figma_secret", 7484 | "external_github_client_id", 7485 | "external_github_enabled", 7486 | "external_github_secret", 7487 | "external_gitlab_client_id", 7488 | "external_gitlab_enabled", 7489 | "external_gitlab_secret", 7490 | "external_gitlab_url", 7491 | "external_google_additional_client_ids", 7492 | "external_google_client_id", 7493 | "external_google_enabled", 7494 | "external_google_secret", 7495 | "external_google_skip_nonce_check", 7496 | "external_kakao_client_id", 7497 | "external_kakao_enabled", 7498 | "external_kakao_secret", 7499 | "external_keycloak_client_id", 7500 | "external_keycloak_enabled", 7501 | "external_keycloak_secret", 7502 | "external_keycloak_url", 7503 | "external_linkedin_oidc_client_id", 7504 | "external_linkedin_oidc_enabled", 7505 | "external_linkedin_oidc_secret", 7506 | "external_slack_oidc_client_id", 7507 | "external_slack_oidc_enabled", 7508 | "external_slack_oidc_secret", 7509 | "external_notion_client_id", 7510 | "external_notion_enabled", 7511 | "external_notion_secret", 7512 | "external_phone_enabled", 7513 | "external_slack_client_id", 7514 | "external_slack_enabled", 7515 | "external_slack_secret", 7516 | "external_spotify_client_id", 7517 | "external_spotify_enabled", 7518 | "external_spotify_secret", 7519 | "external_twitch_client_id", 7520 | "external_twitch_enabled", 7521 | "external_twitch_secret", 7522 | "external_twitter_client_id", 7523 | "external_twitter_enabled", 7524 | "external_twitter_secret", 7525 | "external_workos_client_id", 7526 | "external_workos_enabled", 7527 | "external_workos_secret", 7528 | "external_workos_url", 7529 | "external_zoom_client_id", 7530 | "external_zoom_enabled", 7531 | "external_zoom_secret", 7532 | "hook_custom_access_token_enabled", 7533 | "hook_custom_access_token_uri", 7534 | "hook_custom_access_token_secrets", 7535 | "hook_mfa_verification_attempt_enabled", 7536 | "hook_mfa_verification_attempt_uri", 7537 | "hook_mfa_verification_attempt_secrets", 7538 | "hook_password_verification_attempt_enabled", 7539 | "hook_password_verification_attempt_uri", 7540 | "hook_password_verification_attempt_secrets", 7541 | "hook_send_sms_enabled", 7542 | "hook_send_sms_uri", 7543 | "hook_send_sms_secrets", 7544 | "hook_send_email_enabled", 7545 | "hook_send_email_uri", 7546 | "hook_send_email_secrets", 7547 | "mailer_allow_unverified_email_sign_ins", 7548 | "mailer_autoconfirm", 7549 | "mailer_secure_email_change_enabled", 7550 | "mailer_subjects_confirmation", 7551 | "mailer_subjects_email_change", 7552 | "mailer_subjects_invite", 7553 | "mailer_subjects_magic_link", 7554 | "mailer_subjects_reauthentication", 7555 | "mailer_subjects_recovery", 7556 | "mailer_templates_confirmation_content", 7557 | "mailer_templates_email_change_content", 7558 | "mailer_templates_invite_content", 7559 | "mailer_templates_magic_link_content", 7560 | "mailer_templates_reauthentication_content", 7561 | "mailer_templates_recovery_content", 7562 | "mfa_totp_enroll_enabled", 7563 | "mfa_totp_verify_enabled", 7564 | "mfa_phone_enroll_enabled", 7565 | "mfa_phone_verify_enabled", 7566 | "mfa_web_authn_enroll_enabled", 7567 | "mfa_web_authn_verify_enabled", 7568 | "mfa_phone_template", 7569 | "password_hibp_enabled", 7570 | "password_required_characters", 7571 | "refresh_token_rotation_enabled", 7572 | "saml_enabled", 7573 | "saml_external_url", 7574 | "saml_allow_encrypted_assertions", 7575 | "security_captcha_enabled", 7576 | "security_captcha_provider", 7577 | "security_captcha_secret", 7578 | "security_manual_linking_enabled", 7579 | "security_update_password_require_reauthentication", 7580 | "sessions_single_per_user", 7581 | "sessions_tags", 7582 | "site_url", 7583 | "sms_autoconfirm", 7584 | "sms_messagebird_access_key", 7585 | "sms_messagebird_originator", 7586 | "sms_provider", 7587 | "sms_template", 7588 | "sms_test_otp", 7589 | "sms_test_otp_valid_until", 7590 | "sms_textlocal_api_key", 7591 | "sms_textlocal_sender", 7592 | "sms_twilio_account_sid", 7593 | "sms_twilio_auth_token", 7594 | "sms_twilio_content_sid", 7595 | "sms_twilio_message_service_sid", 7596 | "sms_twilio_verify_account_sid", 7597 | "sms_twilio_verify_auth_token", 7598 | "sms_twilio_verify_message_service_sid", 7599 | "sms_vonage_api_key", 7600 | "sms_vonage_api_secret", 7601 | "sms_vonage_from", 7602 | "smtp_admin_email", 7603 | "smtp_host", 7604 | "smtp_pass", 7605 | "smtp_port", 7606 | "smtp_sender_name", 7607 | "smtp_user", 7608 | "uri_allow_list" 7609 | ] 7610 | }, 7611 | "UpdateAuthConfigBody": { 7612 | "type": "object", 7613 | "properties": { 7614 | "jwt_exp": { 7615 | "type": "integer", 7616 | "minimum": 0, 7617 | "maximum": 604800 7618 | }, 7619 | "smtp_max_frequency": { 7620 | "type": "integer", 7621 | "minimum": 0, 7622 | "maximum": 32767 7623 | }, 7624 | "mfa_max_enrolled_factors": { 7625 | "type": "integer", 7626 | "minimum": 0, 7627 | "maximum": 2147483647 7628 | }, 7629 | "sessions_timebox": { 7630 | "type": "integer", 7631 | "minimum": 0 7632 | }, 7633 | "sessions_inactivity_timeout": { 7634 | "type": "integer", 7635 | "minimum": 0 7636 | }, 7637 | "rate_limit_anonymous_users": { 7638 | "type": "integer", 7639 | "minimum": 1, 7640 | "maximum": 2147483647 7641 | }, 7642 | "rate_limit_email_sent": { 7643 | "type": "integer", 7644 | "minimum": 1, 7645 | "maximum": 2147483647 7646 | }, 7647 | "rate_limit_sms_sent": { 7648 | "type": "integer", 7649 | "minimum": 1, 7650 | "maximum": 2147483647 7651 | }, 7652 | "rate_limit_verify": { 7653 | "type": "integer", 7654 | "minimum": 1, 7655 | "maximum": 2147483647 7656 | }, 7657 | "rate_limit_token_refresh": { 7658 | "type": "integer", 7659 | "minimum": 1, 7660 | "maximum": 2147483647 7661 | }, 7662 | "rate_limit_otp": { 7663 | "type": "integer", 7664 | "minimum": 1, 7665 | "maximum": 2147483647 7666 | }, 7667 | "password_min_length": { 7668 | "type": "integer", 7669 | "minimum": 6, 7670 | "maximum": 32767 7671 | }, 7672 | "security_refresh_token_reuse_interval": { 7673 | "type": "integer", 7674 | "minimum": 0, 7675 | "maximum": 2147483647 7676 | }, 7677 | "mailer_otp_exp": { 7678 | "type": "integer", 7679 | "minimum": 0, 7680 | "maximum": 2147483647 7681 | }, 7682 | "mailer_otp_length": { 7683 | "type": "integer", 7684 | "minimum": 6, 7685 | "maximum": 10 7686 | }, 7687 | "sms_max_frequency": { 7688 | "type": "integer", 7689 | "minimum": 0, 7690 | "maximum": 32767 7691 | }, 7692 | "sms_otp_exp": { 7693 | "type": "integer", 7694 | "minimum": 0, 7695 | "maximum": 2147483647 7696 | }, 7697 | "sms_otp_length": { 7698 | "type": "integer", 7699 | "minimum": 0, 7700 | "maximum": 32767 7701 | }, 7702 | "db_max_pool_size": { 7703 | "type": "integer" 7704 | }, 7705 | "api_max_request_duration": { 7706 | "type": "integer" 7707 | }, 7708 | "mfa_phone_max_frequency": { 7709 | "type": "integer", 7710 | "minimum": 0, 7711 | "maximum": 32767 7712 | }, 7713 | "mfa_phone_otp_length": { 7714 | "type": "integer", 7715 | "minimum": 0, 7716 | "maximum": 32767 7717 | }, 7718 | "site_url": { 7719 | "type": "string", 7720 | "pattern": "/^[^,]+$/" 7721 | }, 7722 | "disable_signup": { 7723 | "type": "boolean" 7724 | }, 7725 | "smtp_admin_email": { 7726 | "type": "string" 7727 | }, 7728 | "smtp_host": { 7729 | "type": "string" 7730 | }, 7731 | "smtp_port": { 7732 | "type": "string" 7733 | }, 7734 | "smtp_user": { 7735 | "type": "string" 7736 | }, 7737 | "smtp_pass": { 7738 | "type": "string" 7739 | }, 7740 | "smtp_sender_name": { 7741 | "type": "string" 7742 | }, 7743 | "mailer_allow_unverified_email_sign_ins": { 7744 | "type": "boolean" 7745 | }, 7746 | "mailer_autoconfirm": { 7747 | "type": "boolean" 7748 | }, 7749 | "mailer_subjects_invite": { 7750 | "type": "string" 7751 | }, 7752 | "mailer_subjects_confirmation": { 7753 | "type": "string" 7754 | }, 7755 | "mailer_subjects_recovery": { 7756 | "type": "string" 7757 | }, 7758 | "mailer_subjects_email_change": { 7759 | "type": "string" 7760 | }, 7761 | "mailer_subjects_magic_link": { 7762 | "type": "string" 7763 | }, 7764 | "mailer_subjects_reauthentication": { 7765 | "type": "string" 7766 | }, 7767 | "mailer_templates_invite_content": { 7768 | "type": "string" 7769 | }, 7770 | "mailer_templates_confirmation_content": { 7771 | "type": "string" 7772 | }, 7773 | "mailer_templates_recovery_content": { 7774 | "type": "string" 7775 | }, 7776 | "mailer_templates_email_change_content": { 7777 | "type": "string" 7778 | }, 7779 | "mailer_templates_magic_link_content": { 7780 | "type": "string" 7781 | }, 7782 | "mailer_templates_reauthentication_content": { 7783 | "type": "string" 7784 | }, 7785 | "uri_allow_list": { 7786 | "type": "string" 7787 | }, 7788 | "external_anonymous_users_enabled": { 7789 | "type": "boolean" 7790 | }, 7791 | "external_email_enabled": { 7792 | "type": "boolean" 7793 | }, 7794 | "external_phone_enabled": { 7795 | "type": "boolean" 7796 | }, 7797 | "saml_enabled": { 7798 | "type": "boolean" 7799 | }, 7800 | "saml_external_url": { 7801 | "type": "string", 7802 | "pattern": "/^[^,]+$/" 7803 | }, 7804 | "security_captcha_enabled": { 7805 | "type": "boolean" 7806 | }, 7807 | "security_captcha_provider": { 7808 | "type": "string" 7809 | }, 7810 | "security_captcha_secret": { 7811 | "type": "string" 7812 | }, 7813 | "sessions_single_per_user": { 7814 | "type": "boolean" 7815 | }, 7816 | "sessions_tags": { 7817 | "type": "string", 7818 | "pattern": "/^\\s*([a-z0-9_-]+(\\s*,+\\s*)?)*\\s*$/i" 7819 | }, 7820 | "mailer_secure_email_change_enabled": { 7821 | "type": "boolean" 7822 | }, 7823 | "refresh_token_rotation_enabled": { 7824 | "type": "boolean" 7825 | }, 7826 | "password_hibp_enabled": { 7827 | "type": "boolean" 7828 | }, 7829 | "password_required_characters": { 7830 | "type": "string", 7831 | "enum": [ 7832 | "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ:0123456789", 7833 | "abcdefghijklmnopqrstuvwxyz:ABCDEFGHIJKLMNOPQRSTUVWXYZ:0123456789", 7834 | "abcdefghijklmnopqrstuvwxyz:ABCDEFGHIJKLMNOPQRSTUVWXYZ:0123456789:!@#$%^&*()_+-=[]{};'\\\\:\"|\u003C\u003E?,./`~", 7835 | "" 7836 | ] 7837 | }, 7838 | "security_manual_linking_enabled": { 7839 | "type": "boolean" 7840 | }, 7841 | "security_update_password_require_reauthentication": { 7842 | "type": "boolean" 7843 | }, 7844 | "sms_autoconfirm": { 7845 | "type": "boolean" 7846 | }, 7847 | "sms_provider": { 7848 | "type": "string" 7849 | }, 7850 | "sms_messagebird_access_key": { 7851 | "type": "string" 7852 | }, 7853 | "sms_messagebird_originator": { 7854 | "type": "string" 7855 | }, 7856 | "sms_test_otp": { 7857 | "type": "string", 7858 | "pattern": "/^([0-9]{1,15}=[0-9]+,?)*$/" 7859 | }, 7860 | "sms_test_otp_valid_until": { 7861 | "type": "string" 7862 | }, 7863 | "sms_textlocal_api_key": { 7864 | "type": "string" 7865 | }, 7866 | "sms_textlocal_sender": { 7867 | "type": "string" 7868 | }, 7869 | "sms_twilio_account_sid": { 7870 | "type": "string" 7871 | }, 7872 | "sms_twilio_auth_token": { 7873 | "type": "string" 7874 | }, 7875 | "sms_twilio_content_sid": { 7876 | "type": "string" 7877 | }, 7878 | "sms_twilio_message_service_sid": { 7879 | "type": "string" 7880 | }, 7881 | "sms_twilio_verify_account_sid": { 7882 | "type": "string" 7883 | }, 7884 | "sms_twilio_verify_auth_token": { 7885 | "type": "string" 7886 | }, 7887 | "sms_twilio_verify_message_service_sid": { 7888 | "type": "string" 7889 | }, 7890 | "sms_vonage_api_key": { 7891 | "type": "string" 7892 | }, 7893 | "sms_vonage_api_secret": { 7894 | "type": "string" 7895 | }, 7896 | "sms_vonage_from": { 7897 | "type": "string" 7898 | }, 7899 | "sms_template": { 7900 | "type": "string" 7901 | }, 7902 | "hook_mfa_verification_attempt_enabled": { 7903 | "type": "boolean" 7904 | }, 7905 | "hook_mfa_verification_attempt_uri": { 7906 | "type": "string" 7907 | }, 7908 | "hook_mfa_verification_attempt_secrets": { 7909 | "type": "string" 7910 | }, 7911 | "hook_password_verification_attempt_enabled": { 7912 | "type": "boolean" 7913 | }, 7914 | "hook_password_verification_attempt_uri": { 7915 | "type": "string" 7916 | }, 7917 | "hook_password_verification_attempt_secrets": { 7918 | "type": "string" 7919 | }, 7920 | "hook_custom_access_token_enabled": { 7921 | "type": "boolean" 7922 | }, 7923 | "hook_custom_access_token_uri": { 7924 | "type": "string" 7925 | }, 7926 | "hook_custom_access_token_secrets": { 7927 | "type": "string" 7928 | }, 7929 | "hook_send_sms_enabled": { 7930 | "type": "boolean" 7931 | }, 7932 | "hook_send_sms_uri": { 7933 | "type": "string" 7934 | }, 7935 | "hook_send_sms_secrets": { 7936 | "type": "string" 7937 | }, 7938 | "hook_send_email_enabled": { 7939 | "type": "boolean" 7940 | }, 7941 | "hook_send_email_uri": { 7942 | "type": "string" 7943 | }, 7944 | "hook_send_email_secrets": { 7945 | "type": "string" 7946 | }, 7947 | "external_apple_enabled": { 7948 | "type": "boolean" 7949 | }, 7950 | "external_apple_client_id": { 7951 | "type": "string" 7952 | }, 7953 | "external_apple_secret": { 7954 | "type": "string" 7955 | }, 7956 | "external_apple_additional_client_ids": { 7957 | "type": "string" 7958 | }, 7959 | "external_azure_enabled": { 7960 | "type": "boolean" 7961 | }, 7962 | "external_azure_client_id": { 7963 | "type": "string" 7964 | }, 7965 | "external_azure_secret": { 7966 | "type": "string" 7967 | }, 7968 | "external_azure_url": { 7969 | "type": "string" 7970 | }, 7971 | "external_bitbucket_enabled": { 7972 | "type": "boolean" 7973 | }, 7974 | "external_bitbucket_client_id": { 7975 | "type": "string" 7976 | }, 7977 | "external_bitbucket_secret": { 7978 | "type": "string" 7979 | }, 7980 | "external_discord_enabled": { 7981 | "type": "boolean" 7982 | }, 7983 | "external_discord_client_id": { 7984 | "type": "string" 7985 | }, 7986 | "external_discord_secret": { 7987 | "type": "string" 7988 | }, 7989 | "external_facebook_enabled": { 7990 | "type": "boolean" 7991 | }, 7992 | "external_facebook_client_id": { 7993 | "type": "string" 7994 | }, 7995 | "external_facebook_secret": { 7996 | "type": "string" 7997 | }, 7998 | "external_figma_enabled": { 7999 | "type": "boolean" 8000 | }, 8001 | "external_figma_client_id": { 8002 | "type": "string" 8003 | }, 8004 | "external_figma_secret": { 8005 | "type": "string" 8006 | }, 8007 | "external_github_enabled": { 8008 | "type": "boolean" 8009 | }, 8010 | "external_github_client_id": { 8011 | "type": "string" 8012 | }, 8013 | "external_github_secret": { 8014 | "type": "string" 8015 | }, 8016 | "external_gitlab_enabled": { 8017 | "type": "boolean" 8018 | }, 8019 | "external_gitlab_client_id": { 8020 | "type": "string" 8021 | }, 8022 | "external_gitlab_secret": { 8023 | "type": "string" 8024 | }, 8025 | "external_gitlab_url": { 8026 | "type": "string" 8027 | }, 8028 | "external_google_enabled": { 8029 | "type": "boolean" 8030 | }, 8031 | "external_google_client_id": { 8032 | "type": "string" 8033 | }, 8034 | "external_google_secret": { 8035 | "type": "string" 8036 | }, 8037 | "external_google_additional_client_ids": { 8038 | "type": "string" 8039 | }, 8040 | "external_google_skip_nonce_check": { 8041 | "type": "boolean" 8042 | }, 8043 | "external_kakao_enabled": { 8044 | "type": "boolean" 8045 | }, 8046 | "external_kakao_client_id": { 8047 | "type": "string" 8048 | }, 8049 | "external_kakao_secret": { 8050 | "type": "string" 8051 | }, 8052 | "external_keycloak_enabled": { 8053 | "type": "boolean" 8054 | }, 8055 | "external_keycloak_client_id": { 8056 | "type": "string" 8057 | }, 8058 | "external_keycloak_secret": { 8059 | "type": "string" 8060 | }, 8061 | "external_keycloak_url": { 8062 | "type": "string" 8063 | }, 8064 | "external_linkedin_oidc_enabled": { 8065 | "type": "boolean" 8066 | }, 8067 | "external_linkedin_oidc_client_id": { 8068 | "type": "string" 8069 | }, 8070 | "external_linkedin_oidc_secret": { 8071 | "type": "string" 8072 | }, 8073 | "external_slack_oidc_enabled": { 8074 | "type": "boolean" 8075 | }, 8076 | "external_slack_oidc_client_id": { 8077 | "type": "string" 8078 | }, 8079 | "external_slack_oidc_secret": { 8080 | "type": "string" 8081 | }, 8082 | "external_notion_enabled": { 8083 | "type": "boolean" 8084 | }, 8085 | "external_notion_client_id": { 8086 | "type": "string" 8087 | }, 8088 | "external_notion_secret": { 8089 | "type": "string" 8090 | }, 8091 | "external_slack_enabled": { 8092 | "type": "boolean" 8093 | }, 8094 | "external_slack_client_id": { 8095 | "type": "string" 8096 | }, 8097 | "external_slack_secret": { 8098 | "type": "string" 8099 | }, 8100 | "external_spotify_enabled": { 8101 | "type": "boolean" 8102 | }, 8103 | "external_spotify_client_id": { 8104 | "type": "string" 8105 | }, 8106 | "external_spotify_secret": { 8107 | "type": "string" 8108 | }, 8109 | "external_twitch_enabled": { 8110 | "type": "boolean" 8111 | }, 8112 | "external_twitch_client_id": { 8113 | "type": "string" 8114 | }, 8115 | "external_twitch_secret": { 8116 | "type": "string" 8117 | }, 8118 | "external_twitter_enabled": { 8119 | "type": "boolean" 8120 | }, 8121 | "external_twitter_client_id": { 8122 | "type": "string" 8123 | }, 8124 | "external_twitter_secret": { 8125 | "type": "string" 8126 | }, 8127 | "external_workos_enabled": { 8128 | "type": "boolean" 8129 | }, 8130 | "external_workos_client_id": { 8131 | "type": "string" 8132 | }, 8133 | "external_workos_secret": { 8134 | "type": "string" 8135 | }, 8136 | "external_workos_url": { 8137 | "type": "string" 8138 | }, 8139 | "external_zoom_enabled": { 8140 | "type": "boolean" 8141 | }, 8142 | "external_zoom_client_id": { 8143 | "type": "string" 8144 | }, 8145 | "external_zoom_secret": { 8146 | "type": "string" 8147 | }, 8148 | "mfa_totp_enroll_enabled": { 8149 | "type": "boolean" 8150 | }, 8151 | "mfa_totp_verify_enabled": { 8152 | "type": "boolean" 8153 | }, 8154 | "mfa_web_authn_enroll_enabled": { 8155 | "type": "boolean" 8156 | }, 8157 | "mfa_web_authn_verify_enabled": { 8158 | "type": "boolean" 8159 | }, 8160 | "mfa_phone_enroll_enabled": { 8161 | "type": "boolean" 8162 | }, 8163 | "mfa_phone_verify_enabled": { 8164 | "type": "boolean" 8165 | }, 8166 | "mfa_phone_template": { 8167 | "type": "string" 8168 | } 8169 | } 8170 | }, 8171 | "CreateThirdPartyAuthBody": { 8172 | "type": "object", 8173 | "properties": { 8174 | "oidc_issuer_url": { 8175 | "type": "string" 8176 | }, 8177 | "jwks_url": { 8178 | "type": "string" 8179 | }, 8180 | "custom_jwks": { 8181 | "type": "object" 8182 | } 8183 | } 8184 | }, 8185 | "ThirdPartyAuth": { 8186 | "type": "object", 8187 | "properties": { 8188 | "id": { 8189 | "type": "string" 8190 | }, 8191 | "type": { 8192 | "type": "string" 8193 | }, 8194 | "oidc_issuer_url": { 8195 | "type": "string", 8196 | "nullable": true 8197 | }, 8198 | "jwks_url": { 8199 | "type": "string", 8200 | "nullable": true 8201 | }, 8202 | "custom_jwks": { 8203 | "type": "object", 8204 | "nullable": true 8205 | }, 8206 | "resolved_jwks": { 8207 | "type": "object", 8208 | "nullable": true 8209 | }, 8210 | "inserted_at": { 8211 | "type": "string" 8212 | }, 8213 | "updated_at": { 8214 | "type": "string" 8215 | }, 8216 | "resolved_at": { 8217 | "type": "string", 8218 | "nullable": true 8219 | } 8220 | }, 8221 | "required": [ 8222 | "id", 8223 | "type", 8224 | "inserted_at", 8225 | "updated_at" 8226 | ] 8227 | }, 8228 | "ProjectAvailableRestoreVersion": { 8229 | "type": "object", 8230 | "properties": { 8231 | "version": { 8232 | "type": "string" 8233 | }, 8234 | "release_channel": { 8235 | "type": "string", 8236 | "enum": [ 8237 | "internal", 8238 | "alpha", 8239 | "beta", 8240 | "ga", 8241 | "withdrawn", 8242 | "preview" 8243 | ] 8244 | }, 8245 | "postgres_engine": { 8246 | "type": "string", 8247 | "enum": [ 8248 | "13", 8249 | "14", 8250 | "15", 8251 | "17", 8252 | "17-oriole" 8253 | ] 8254 | } 8255 | }, 8256 | "required": [ 8257 | "version", 8258 | "release_channel", 8259 | "postgres_engine" 8260 | ] 8261 | }, 8262 | "GetProjectAvailableRestoreVersionsResponse": { 8263 | "type": "object", 8264 | "properties": { 8265 | "available_versions": { 8266 | "type": "array", 8267 | "items": { 8268 | "$ref": "#/components/schemas/ProjectAvailableRestoreVersion" 8269 | } 8270 | } 8271 | }, 8272 | "required": [ 8273 | "available_versions" 8274 | ] 8275 | }, 8276 | "RestoreProjectBodyDto": { 8277 | "type": "object", 8278 | "properties": { 8279 | 8280 | }, 8281 | "hideDefinitions": [ 8282 | "release_channel", 8283 | "postgres_engine" 8284 | ] 8285 | }, 8286 | "V1AnalyticsResponse": { 8287 | "type": "object", 8288 | "properties": { 8289 | "error": { 8290 | "oneOf": [ 8291 | { 8292 | "properties": { 8293 | "code": { 8294 | "type": "number" 8295 | }, 8296 | "errors": { 8297 | "type": "array", 8298 | "items": { 8299 | "properties": { 8300 | "domain": { 8301 | "type": "string" 8302 | }, 8303 | "location": { 8304 | "type": "string" 8305 | }, 8306 | "locationType": { 8307 | "type": "string" 8308 | }, 8309 | "message": { 8310 | "type": "string" 8311 | }, 8312 | "reason": { 8313 | "type": "string" 8314 | } 8315 | } 8316 | } 8317 | }, 8318 | "message": { 8319 | "type": "string" 8320 | }, 8321 | "status": { 8322 | "type": "string" 8323 | } 8324 | } 8325 | }, 8326 | { 8327 | "type": "string" 8328 | } 8329 | ] 8330 | }, 8331 | "result": { 8332 | "type": "array", 8333 | "items": { 8334 | "type": "object" 8335 | } 8336 | } 8337 | } 8338 | }, 8339 | "V1RunQueryBody": { 8340 | "type": "object", 8341 | "properties": { 8342 | "query": { 8343 | "type": "string" 8344 | } 8345 | }, 8346 | "required": [ 8347 | "query" 8348 | ] 8349 | }, 8350 | "GetProjectDbMetadataResponseDto": { 8351 | "type": "object", 8352 | "properties": { 8353 | "databases": { 8354 | "type": "array", 8355 | "items": { 8356 | "type": "object", 8357 | "properties": { 8358 | "name": { 8359 | "type": "string" 8360 | }, 8361 | "schemas": { 8362 | "type": "array", 8363 | "items": { 8364 | "type": "object", 8365 | "properties": { 8366 | "name": { 8367 | "type": "string" 8368 | } 8369 | }, 8370 | "required": [ 8371 | "name" 8372 | ], 8373 | "additionalProperties": true 8374 | } 8375 | } 8376 | }, 8377 | "required": [ 8378 | "name", 8379 | "schemas" 8380 | ], 8381 | "additionalProperties": true 8382 | } 8383 | } 8384 | }, 8385 | "required": [ 8386 | "databases" 8387 | ] 8388 | }, 8389 | "FunctionResponse": { 8390 | "type": "object", 8391 | "properties": { 8392 | "version": { 8393 | "type": "integer" 8394 | }, 8395 | "created_at": { 8396 | "type": "integer", 8397 | "format": "int64" 8398 | }, 8399 | "updated_at": { 8400 | "type": "integer", 8401 | "format": "int64" 8402 | }, 8403 | "id": { 8404 | "type": "string" 8405 | }, 8406 | "slug": { 8407 | "type": "string" 8408 | }, 8409 | "name": { 8410 | "type": "string" 8411 | }, 8412 | "status": { 8413 | "enum": [ 8414 | "ACTIVE", 8415 | "REMOVED", 8416 | "THROTTLED" 8417 | ], 8418 | "type": "string" 8419 | }, 8420 | "verify_jwt": { 8421 | "type": "boolean" 8422 | }, 8423 | "import_map": { 8424 | "type": "boolean" 8425 | }, 8426 | "entrypoint_path": { 8427 | "type": "string" 8428 | }, 8429 | "import_map_path": { 8430 | "type": "string" 8431 | } 8432 | }, 8433 | "required": [ 8434 | "version", 8435 | "created_at", 8436 | "updated_at", 8437 | "id", 8438 | "slug", 8439 | "name", 8440 | "status" 8441 | ] 8442 | }, 8443 | "V1CreateFunctionBody": { 8444 | "type": "object", 8445 | "properties": { 8446 | "slug": { 8447 | "type": "string", 8448 | "pattern": "/^[A-Za-z0-9_-]+$/" 8449 | }, 8450 | "name": { 8451 | "type": "string" 8452 | }, 8453 | "body": { 8454 | "type": "string" 8455 | }, 8456 | "verify_jwt": { 8457 | "type": "boolean" 8458 | } 8459 | }, 8460 | "required": [ 8461 | "slug", 8462 | "name", 8463 | "body" 8464 | ] 8465 | }, 8466 | "BulkUpdateFunctionBody": { 8467 | "type": "object", 8468 | "properties": { 8469 | "version": { 8470 | "type": "integer" 8471 | }, 8472 | "created_at": { 8473 | "type": "integer", 8474 | "format": "int64" 8475 | }, 8476 | "id": { 8477 | "type": "string" 8478 | }, 8479 | "slug": { 8480 | "type": "string" 8481 | }, 8482 | "name": { 8483 | "type": "string" 8484 | }, 8485 | "status": { 8486 | "enum": [ 8487 | "ACTIVE", 8488 | "REMOVED", 8489 | "THROTTLED" 8490 | ], 8491 | "type": "string" 8492 | }, 8493 | "verify_jwt": { 8494 | "type": "boolean" 8495 | }, 8496 | "import_map": { 8497 | "type": "boolean" 8498 | }, 8499 | "entrypoint_path": { 8500 | "type": "string" 8501 | }, 8502 | "import_map_path": { 8503 | "type": "string" 8504 | } 8505 | }, 8506 | "required": [ 8507 | "version", 8508 | "id", 8509 | "slug", 8510 | "name", 8511 | "status" 8512 | ] 8513 | }, 8514 | "BulkUpdateFunctionResponse": { 8515 | "type": "object", 8516 | "properties": { 8517 | "functions": { 8518 | "type": "array", 8519 | "items": { 8520 | "$ref": "#/components/schemas/FunctionResponse" 8521 | } 8522 | } 8523 | }, 8524 | "required": [ 8525 | "functions" 8526 | ] 8527 | }, 8528 | "FunctionDeployMetadata": { 8529 | "type": "object", 8530 | "properties": { 8531 | "entrypoint_path": { 8532 | "type": "string" 8533 | }, 8534 | "import_map_path": { 8535 | "type": "string" 8536 | }, 8537 | "static_patterns": { 8538 | "type": "array", 8539 | "items": { 8540 | "type": "string" 8541 | } 8542 | }, 8543 | "verify_jwt": { 8544 | "type": "boolean" 8545 | }, 8546 | "name": { 8547 | "type": "string" 8548 | } 8549 | }, 8550 | "required": [ 8551 | "entrypoint_path" 8552 | ] 8553 | }, 8554 | "FunctionDeployBody": { 8555 | "type": "object", 8556 | "properties": { 8557 | "file": { 8558 | "type": "array", 8559 | "items": { 8560 | "type": "string", 8561 | "format": "binary" 8562 | } 8563 | }, 8564 | "metadata": { 8565 | "$ref": "#/components/schemas/FunctionDeployMetadata" 8566 | } 8567 | }, 8568 | "required": [ 8569 | "file", 8570 | "metadata" 8571 | ] 8572 | }, 8573 | "DeployFunctionResponse": { 8574 | "type": "object", 8575 | "properties": { 8576 | "version": { 8577 | "type": "integer" 8578 | }, 8579 | "created_at": { 8580 | "type": "integer", 8581 | "format": "int64" 8582 | }, 8583 | "updated_at": { 8584 | "type": "integer", 8585 | "format": "int64" 8586 | }, 8587 | "id": { 8588 | "type": "string" 8589 | }, 8590 | "slug": { 8591 | "type": "string" 8592 | }, 8593 | "name": { 8594 | "type": "string" 8595 | }, 8596 | "status": { 8597 | "enum": [ 8598 | "ACTIVE", 8599 | "REMOVED", 8600 | "THROTTLED" 8601 | ], 8602 | "type": "string" 8603 | }, 8604 | "verify_jwt": { 8605 | "type": "boolean" 8606 | }, 8607 | "import_map": { 8608 | "type": "boolean" 8609 | }, 8610 | "entrypoint_path": { 8611 | "type": "string" 8612 | }, 8613 | "import_map_path": { 8614 | "type": "string" 8615 | } 8616 | }, 8617 | "required": [ 8618 | "version", 8619 | "id", 8620 | "slug", 8621 | "name", 8622 | "status" 8623 | ] 8624 | }, 8625 | "FunctionSlugResponse": { 8626 | "type": "object", 8627 | "properties": { 8628 | "version": { 8629 | "type": "integer" 8630 | }, 8631 | "created_at": { 8632 | "type": "integer", 8633 | "format": "int64" 8634 | }, 8635 | "updated_at": { 8636 | "type": "integer", 8637 | "format": "int64" 8638 | }, 8639 | "id": { 8640 | "type": "string" 8641 | }, 8642 | "slug": { 8643 | "type": "string" 8644 | }, 8645 | "name": { 8646 | "type": "string" 8647 | }, 8648 | "status": { 8649 | "enum": [ 8650 | "ACTIVE", 8651 | "REMOVED", 8652 | "THROTTLED" 8653 | ], 8654 | "type": "string" 8655 | }, 8656 | "verify_jwt": { 8657 | "type": "boolean" 8658 | }, 8659 | "import_map": { 8660 | "type": "boolean" 8661 | }, 8662 | "entrypoint_path": { 8663 | "type": "string" 8664 | }, 8665 | "import_map_path": { 8666 | "type": "string" 8667 | } 8668 | }, 8669 | "required": [ 8670 | "version", 8671 | "created_at", 8672 | "updated_at", 8673 | "id", 8674 | "slug", 8675 | "name", 8676 | "status" 8677 | ] 8678 | }, 8679 | "V1UpdateFunctionBody": { 8680 | "type": "object", 8681 | "properties": { 8682 | "name": { 8683 | "type": "string" 8684 | }, 8685 | "body": { 8686 | "type": "string" 8687 | }, 8688 | "verify_jwt": { 8689 | "type": "boolean" 8690 | } 8691 | } 8692 | }, 8693 | "V1StorageBucketResponse": { 8694 | "type": "object", 8695 | "properties": { 8696 | "id": { 8697 | "type": "string" 8698 | }, 8699 | "name": { 8700 | "type": "string" 8701 | }, 8702 | "owner": { 8703 | "type": "string" 8704 | }, 8705 | "created_at": { 8706 | "type": "string" 8707 | }, 8708 | "updated_at": { 8709 | "type": "string" 8710 | }, 8711 | "public": { 8712 | "type": "boolean" 8713 | } 8714 | }, 8715 | "required": [ 8716 | "id", 8717 | "name", 8718 | "owner", 8719 | "created_at", 8720 | "updated_at", 8721 | "public" 8722 | ] 8723 | }, 8724 | "AttributeValue": { 8725 | "type": "object", 8726 | "properties": { 8727 | "default": { 8728 | "oneOf": [ 8729 | { 8730 | "type": "object" 8731 | }, 8732 | { 8733 | "type": "number" 8734 | }, 8735 | { 8736 | "type": "string" 8737 | }, 8738 | { 8739 | "type": "boolean" 8740 | } 8741 | ] 8742 | }, 8743 | "name": { 8744 | "type": "string" 8745 | }, 8746 | "names": { 8747 | "type": "array", 8748 | "items": { 8749 | "type": "string" 8750 | } 8751 | }, 8752 | "array": { 8753 | "type": "boolean" 8754 | } 8755 | } 8756 | }, 8757 | "AttributeMapping": { 8758 | "type": "object", 8759 | "properties": { 8760 | "keys": { 8761 | "type": "object", 8762 | "additionalProperties": { 8763 | "$ref": "#/components/schemas/AttributeValue" 8764 | } 8765 | } 8766 | }, 8767 | "required": [ 8768 | "keys" 8769 | ] 8770 | }, 8771 | "CreateProviderBody": { 8772 | "type": "object", 8773 | "properties": { 8774 | "type": { 8775 | "type": "string", 8776 | "enum": [ 8777 | "saml" 8778 | ], 8779 | "description": "What type of provider will be created" 8780 | }, 8781 | "metadata_xml": { 8782 | "type": "string" 8783 | }, 8784 | "metadata_url": { 8785 | "type": "string" 8786 | }, 8787 | "domains": { 8788 | "type": "array", 8789 | "items": { 8790 | "type": "string" 8791 | } 8792 | }, 8793 | "attribute_mapping": { 8794 | "$ref": "#/components/schemas/AttributeMapping" 8795 | } 8796 | }, 8797 | "required": [ 8798 | "type" 8799 | ] 8800 | }, 8801 | "SamlDescriptor": { 8802 | "type": "object", 8803 | "properties": { 8804 | "id": { 8805 | "type": "string" 8806 | }, 8807 | "entity_id": { 8808 | "type": "string" 8809 | }, 8810 | "metadata_url": { 8811 | "type": "string" 8812 | }, 8813 | "metadata_xml": { 8814 | "type": "string" 8815 | }, 8816 | "attribute_mapping": { 8817 | "$ref": "#/components/schemas/AttributeMapping" 8818 | } 8819 | }, 8820 | "required": [ 8821 | "id", 8822 | "entity_id" 8823 | ] 8824 | }, 8825 | "Domain": { 8826 | "type": "object", 8827 | "properties": { 8828 | "id": { 8829 | "type": "string" 8830 | }, 8831 | "domain": { 8832 | "type": "string" 8833 | }, 8834 | "created_at": { 8835 | "type": "string" 8836 | }, 8837 | "updated_at": { 8838 | "type": "string" 8839 | } 8840 | }, 8841 | "required": [ 8842 | "id" 8843 | ] 8844 | }, 8845 | "CreateProviderResponse": { 8846 | "type": "object", 8847 | "properties": { 8848 | "id": { 8849 | "type": "string" 8850 | }, 8851 | "saml": { 8852 | "$ref": "#/components/schemas/SamlDescriptor" 8853 | }, 8854 | "domains": { 8855 | "type": "array", 8856 | "items": { 8857 | "$ref": "#/components/schemas/Domain" 8858 | } 8859 | }, 8860 | "created_at": { 8861 | "type": "string" 8862 | }, 8863 | "updated_at": { 8864 | "type": "string" 8865 | } 8866 | }, 8867 | "required": [ 8868 | "id" 8869 | ] 8870 | }, 8871 | "Provider": { 8872 | "type": "object", 8873 | "properties": { 8874 | "id": { 8875 | "type": "string" 8876 | }, 8877 | "saml": { 8878 | "$ref": "#/components/schemas/SamlDescriptor" 8879 | }, 8880 | "domains": { 8881 | "type": "array", 8882 | "items": { 8883 | "$ref": "#/components/schemas/Domain" 8884 | } 8885 | }, 8886 | "created_at": { 8887 | "type": "string" 8888 | }, 8889 | "updated_at": { 8890 | "type": "string" 8891 | } 8892 | }, 8893 | "required": [ 8894 | "id" 8895 | ] 8896 | }, 8897 | "ListProvidersResponse": { 8898 | "type": "object", 8899 | "properties": { 8900 | "items": { 8901 | "type": "array", 8902 | "items": { 8903 | "$ref": "#/components/schemas/Provider" 8904 | } 8905 | } 8906 | }, 8907 | "required": [ 8908 | "items" 8909 | ] 8910 | }, 8911 | "GetProviderResponse": { 8912 | "type": "object", 8913 | "properties": { 8914 | "id": { 8915 | "type": "string" 8916 | }, 8917 | "saml": { 8918 | "$ref": "#/components/schemas/SamlDescriptor" 8919 | }, 8920 | "domains": { 8921 | "type": "array", 8922 | "items": { 8923 | "$ref": "#/components/schemas/Domain" 8924 | } 8925 | }, 8926 | "created_at": { 8927 | "type": "string" 8928 | }, 8929 | "updated_at": { 8930 | "type": "string" 8931 | } 8932 | }, 8933 | "required": [ 8934 | "id" 8935 | ] 8936 | }, 8937 | "UpdateProviderBody": { 8938 | "type": "object", 8939 | "properties": { 8940 | "metadata_xml": { 8941 | "type": "string" 8942 | }, 8943 | "metadata_url": { 8944 | "type": "string" 8945 | }, 8946 | "domains": { 8947 | "type": "array", 8948 | "items": { 8949 | "type": "string" 8950 | } 8951 | }, 8952 | "attribute_mapping": { 8953 | "$ref": "#/components/schemas/AttributeMapping" 8954 | } 8955 | } 8956 | }, 8957 | "UpdateProviderResponse": { 8958 | "type": "object", 8959 | "properties": { 8960 | "id": { 8961 | "type": "string" 8962 | }, 8963 | "saml": { 8964 | "$ref": "#/components/schemas/SamlDescriptor" 8965 | }, 8966 | "domains": { 8967 | "type": "array", 8968 | "items": { 8969 | "$ref": "#/components/schemas/Domain" 8970 | } 8971 | }, 8972 | "created_at": { 8973 | "type": "string" 8974 | }, 8975 | "updated_at": { 8976 | "type": "string" 8977 | } 8978 | }, 8979 | "required": [ 8980 | "id" 8981 | ] 8982 | }, 8983 | "DeleteProviderResponse": { 8984 | "type": "object", 8985 | "properties": { 8986 | "id": { 8987 | "type": "string" 8988 | }, 8989 | "saml": { 8990 | "$ref": "#/components/schemas/SamlDescriptor" 8991 | }, 8992 | "domains": { 8993 | "type": "array", 8994 | "items": { 8995 | "$ref": "#/components/schemas/Domain" 8996 | } 8997 | }, 8998 | "created_at": { 8999 | "type": "string" 9000 | }, 9001 | "updated_at": { 9002 | "type": "string" 9003 | } 9004 | }, 9005 | "required": [ 9006 | "id" 9007 | ] 9008 | }, 9009 | "V1Backup": { 9010 | "type": "object", 9011 | "properties": { 9012 | "status": { 9013 | "type": "string", 9014 | "enum": [ 9015 | "COMPLETED", 9016 | "FAILED", 9017 | "PENDING", 9018 | "REMOVED", 9019 | "ARCHIVED", 9020 | "CANCELLED" 9021 | ] 9022 | }, 9023 | "is_physical_backup": { 9024 | "type": "boolean" 9025 | }, 9026 | "inserted_at": { 9027 | "type": "string" 9028 | } 9029 | }, 9030 | "required": [ 9031 | "status", 9032 | "is_physical_backup", 9033 | "inserted_at" 9034 | ] 9035 | }, 9036 | "V1PhysicalBackup": { 9037 | "type": "object", 9038 | "properties": { 9039 | "earliest_physical_backup_date_unix": { 9040 | "type": "integer", 9041 | "format": "int64" 9042 | }, 9043 | "latest_physical_backup_date_unix": { 9044 | "type": "integer", 9045 | "format": "int64" 9046 | } 9047 | } 9048 | }, 9049 | "V1BackupsResponse": { 9050 | "type": "object", 9051 | "properties": { 9052 | "region": { 9053 | "type": "string" 9054 | }, 9055 | "walg_enabled": { 9056 | "type": "boolean" 9057 | }, 9058 | "pitr_enabled": { 9059 | "type": "boolean" 9060 | }, 9061 | "backups": { 9062 | "type": "array", 9063 | "items": { 9064 | "$ref": "#/components/schemas/V1Backup" 9065 | } 9066 | }, 9067 | "physical_backup_data": { 9068 | "$ref": "#/components/schemas/V1PhysicalBackup" 9069 | } 9070 | }, 9071 | "required": [ 9072 | "region", 9073 | "walg_enabled", 9074 | "pitr_enabled", 9075 | "backups", 9076 | "physical_backup_data" 9077 | ] 9078 | }, 9079 | "V1RestorePitrBody": { 9080 | "type": "object", 9081 | "properties": { 9082 | "recovery_time_target_unix": { 9083 | "type": "integer", 9084 | "minimum": 0, 9085 | "format": "int64" 9086 | } 9087 | }, 9088 | "required": [ 9089 | "recovery_time_target_unix" 9090 | ] 9091 | }, 9092 | "V1OrganizationMemberResponse": { 9093 | "type": "object", 9094 | "properties": { 9095 | "user_id": { 9096 | "type": "string" 9097 | }, 9098 | "user_name": { 9099 | "type": "string" 9100 | }, 9101 | "email": { 9102 | "type": "string" 9103 | }, 9104 | "role_name": { 9105 | "type": "string" 9106 | }, 9107 | "mfa_enabled": { 9108 | "type": "boolean" 9109 | } 9110 | }, 9111 | "required": [ 9112 | "user_id", 9113 | "user_name", 9114 | "role_name", 9115 | "mfa_enabled" 9116 | ] 9117 | }, 9118 | "BillingPlanId": { 9119 | "type": "string", 9120 | "enum": [ 9121 | "free", 9122 | "pro", 9123 | "team", 9124 | "enterprise" 9125 | ] 9126 | }, 9127 | "V1OrganizationSlugResponse": { 9128 | "type": "object", 9129 | "properties": { 9130 | "plan": { 9131 | "$ref": "#/components/schemas/BillingPlanId" 9132 | }, 9133 | "opt_in_tags": { 9134 | "type": "array", 9135 | "items": { 9136 | "type": "string", 9137 | "enum": [ 9138 | "AI_SQL_GENERATOR_OPT_IN" 9139 | ] 9140 | } 9141 | }, 9142 | "allowed_release_channels": { 9143 | "type": "array", 9144 | "items": { 9145 | "$ref": "#/components/schemas/ReleaseChannel" 9146 | } 9147 | }, 9148 | "id": { 9149 | "type": "string" 9150 | }, 9151 | "name": { 9152 | "type": "string" 9153 | } 9154 | }, 9155 | "required": [ 9156 | "opt_in_tags", 9157 | "allowed_release_channels", 9158 | "id", 9159 | "name" 9160 | ] 9161 | } 9162 | } 9163 | } 9164 | } 9165 | ```