feat(backend): add standalone data plane

Replace the Supabase application data plane with the Node/PostgreSQL API, migrate mobile, admin, web, and MCP callers, add controlled cutover tooling, and define hardened Dokploy infrastructure.
This commit is contained in:
jjbrunton committed 2026-08-28 14:42:11 +01:00
1 parent 01bb8225ae
commit 006761d3b0
294 files changed
+16259 -6138

No files matched your search

+25 -3
View File
@@ -2,20 +2,42 @@
export interface Profile {
id: string;
name: string | null;
email: string | null;
avatar_url: string | null;
push_token: string | null;
is_premium: boolean;
couple_id: string | null;
gender: 'male' | 'female' | 'non-binary' | 'prefer-not-to-say' | null;
show_explicit_content: boolean;
max_intensity: 1 | 2 | 3 | 4 | 5;
created_at: string;
updated_at: string;
/** RSA public key in JWK format for E2EE */
public_key_jwk?: Record<string, unknown> | null;
/** When true, packs marked as is_explicit will be hidden */
hide_nsfw?: boolean;
hide_nsfw: boolean;
/** Whether onboarding flow has been completed */
onboarding_completed?: boolean;
onboarding_completed: boolean;
/** Version of onboarding flow completed. 0 = never, 1+ = that version */
onboarding_version?: number;
onboarding_version: number;
}
/** Public response returned by the standalone Sauci API identity bootstrap. */
export interface MeResponse {
profile: Profile;
}
/** Per-user interest state; the API always derives the user from the bearer token. */
export interface FeatureInterestResponse {
feature: string;
interested: boolean;
}
export interface ApiErrorResponse {
error: {
code: string;
message: string;
};
}
// Couple pairing