Files
supabase/apps/studio/pages/api/platform/projects/[ref]/settings.ts
T
LennyandJoshen Lim fbef43fbbc fix: use storage endpoint in S3 settings (#37469)
* fix: use storage endpoint in S3 settings

* Update retrieval of endpoint for analytics bucket related components

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-07-30 10:05:14 -04:00

68 lines
2.0 KiB
TypeScript

import { NextApiRequest, NextApiResponse } from 'next'
import { components } from 'api-types'
import apiWrapper from 'lib/api/apiWrapper'
import { PROJECT_ENDPOINT, PROJECT_ENDPOINT_PROTOCOL } from 'pages/api/constants'
type ProjectAppConfig = components['schemas']['ProjectSettingsResponse']['app_config'] & {
protocol?: string
}
export type ProjectSettings = components['schemas']['ProjectSettingsResponse'] & {
app_config?: ProjectAppConfig
}
export default (req: NextApiRequest, res: NextApiResponse) => apiWrapper(req, res, handler)
async function handler(req: NextApiRequest, res: NextApiResponse) {
const { method } = req
switch (method) {
case 'GET':
return handleGetAll(req, res)
default:
res.setHeader('Allow', ['GET'])
res.status(405).json({ data: null, error: { message: `Method ${method} Not Allowed` } })
}
}
const handleGetAll = async (req: NextApiRequest, res: NextApiResponse) => {
const response: ProjectSettings = {
app_config: {
db_schema: 'public',
endpoint: PROJECT_ENDPOINT,
storage_endpoint: PROJECT_ENDPOINT,
// manually added to force the frontend to use the correct URL
protocol: PROJECT_ENDPOINT_PROTOCOL,
},
cloud_provider: 'AWS',
db_dns_name: '-',
db_host: 'localhost',
db_ip_addr_config: 'legacy' as const,
db_name: 'postgres',
db_port: 5432,
db_user: 'postgres',
inserted_at: '2021-08-02T06:40:40.646Z',
jwt_secret:
process.env.AUTH_JWT_SECRET ?? 'super-secret-jwt-token-with-at-least-32-characters-long',
name: process.env.DEFAULT_PROJECT_NAME || 'Default Project',
ref: 'default',
region: 'ap-southeast-1',
service_api_keys: [
{
api_key: process.env.SUPABASE_SERVICE_KEY ?? '',
name: 'service_role key',
tags: 'service_role',
},
{
api_key: process.env.SUPABASE_ANON_KEY ?? '',
name: 'anon key',
tags: 'anon',
},
],
ssl_enforced: false,
status: 'ACTIVE_HEALTHY',
}
return res.status(200).json(response)
}