+{"type":"object","description":"Request body for creating a project and its primary database.","required":["name","org_id","database"],"properties":{"name":{"type":"string","description":"Human-readable project name.","minLength":1,"maxLength":100,"pattern":"^[^\\x00]*$"},"org_id":{"type":"string","minLength":1,"pattern":"^[^\\x00]+$","description":"Better Auth organization ID."},"description":{"type":"string","description":"Optional project description.","maxLength":500},"tags":{"type":"array","description":"User-defined labels to attach to the project.","maxItems":10,"items":{"type":"string","maxLength":50}},"cloud":{"type":"string","enum":["aws","azure","gcp"],"description":"Cloud provider for the project.","default":"aws"},"database":{"type":"object","description":"Primary database. Created atomically with the project.","required":["host","port","name","username","password"],"properties":{"host":{"type":"string","minLength":1,"pattern":"^[^\\s\\x00]+$","description":"PostgreSQL host."},"port":{"type":"integer","minimum":1,"maximum":65535,"description":"PostgreSQL port."},"name":{"type":"string","minLength":1,"pattern":"^[^\\x00]+$","description":"PostgreSQL database name."},"username":{"type":"string","minLength":1,"pattern":"^[^\\x00]+$","description":"PostgreSQL username."},"password":{"type":"string","format":"password","minLength":1,"pattern":"^[^\\x00]+$","description":"PostgreSQL password. Stored encrypted at rest.","writeOnly":true},"ssl_mode":{"type":"string","enum":["disable","allow","prefer","require","verify-ca","verify-full"],"description":"PostgreSQL SSL connection mode.","x-readme-ref-name":"SSLMode"},"role":{"type":"string","enum":["primary","replica"],"description":"Database role. Primary receives writes, replicas receive reads.","default":"primary","x-readme-ref-name":"DatabaseRole"},"pool_region":{"type":"string","description":"Region where the connection pool is maintained (near the database). When set and different from the client's edge region, queries are relayed through the pool region's data plane. Empty means direct connection.\n","example":"us-east-1"},"query_timeout_ms":{"type":"integer","minimum":0,"maximum":300000,"default":0,"description":"Query timeout in milliseconds. 0 means disabled (default).\n"},"auto_read_routing":{"type":"boolean","default":false,"description":"Auto-route SELECT queries to read replicas.\n"},"cache_config":{"type":"object","description":"Query cache configuration.","required":["enabled","ttl_seconds","max_entries","swr_seconds"],"properties":{"enabled":{"type":"boolean","default":true,"description":"Whether query caching is enabled. When false, all queries bypass the cache."},"ttl_seconds":{"type":"integer","minimum":0,"maximum":86400,"default":60,"description":"Cache TTL in seconds for query results."},"max_entries":{"type":"integer","minimum":0,"maximum":1000000,"default":10000,"description":"Maximum number of cached query results."},"swr_seconds":{"type":"integer","minimum":0,"maximum":86400,"default":30,"description":"Stale-while-revalidate window in seconds."}},"x-readme-ref-name":"CacheConfig"},"pool_config":{"type":"object","description":"Connection pool configuration.","required":["pool_size","min_pool_size","pool_mode"],"properties":{"pool_size":{"type":"integer","minimum":1,"maximum":10000,"default":10,"description":"Maximum connections in the pool."},"min_pool_size":{"type":"integer","minimum":1,"maximum":10000,"default":1,"description":"Minimum idle connections maintained."},"pool_mode":{"type":"string","enum":["session","transaction","statement"],"description":"Connection pool mode.","x-readme-ref-name":"PoolMode"},"max_active":{"type":"integer","minimum":1,"maximum":10000,"default":200,"description":"Maximum concurrent upstream connections per pool."}},"x-readme-ref-name":"PoolConfig"}},"x-readme-ref-name":"CreateDatabaseRequest"}},"x-readme-ref-name":"CreateProjectRequest"}
0 commit comments