Bygg NeuroSemantics AI: minimal mobilapp, en backend, IaC och CI/CD
Ersätter den tidigare webappen på denna branch med ett fokuserat monorepo: - apps/mobile: Expo/React Native med tre vyer (Welcome, Chat, Paywall), Cognito hosted UI-inloggning (Apple/Google/e-post) och In-App Purchase/Play Billing via en gemensam purchases-modul. - services/api: en enda Lambda-backend — OpenAI Responses API med Markdown-kunskapsbas som systeminstruktioner, free tier-gräns i PostgreSQL (HTTP 402 -> paywall) och kvittoverifiering bakom ett delat PaymentProvider-interface (Apple/Google, Stripe kan läggas till för webb senare). - infra: AWS CDK-stack med API Gateway (JWT-authorizer), Lambda, Cognito, Aurora Serverless v2 och Secrets Manager. - db/migrations: minimal datamodell (users + usage), inga konversationer sparas. - GitHub Actions: CI (lint, typecheck, test) och deploy från main. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0118DaxZR36RpnY524vRqx3z
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
import Constants from 'expo-constants';
|
||||
|
||||
const extra = (Constants.expoConfig?.extra ?? {}) as Record<string, string>;
|
||||
|
||||
function required(key: string): string {
|
||||
const value = extra[key];
|
||||
if (!value) throw new Error(`Missing "${key}" in app.json extra`);
|
||||
return value;
|
||||
}
|
||||
|
||||
export const appConfig = {
|
||||
apiUrl: required('apiUrl'),
|
||||
cognitoDomain: required('cognitoDomain'),
|
||||
cognitoClientId: required('cognitoClientId'),
|
||||
iosMonthlyProductId: required('iosMonthlyProductId'),
|
||||
iosYearlyProductId: required('iosYearlyProductId'),
|
||||
androidMonthlyProductId: required('androidMonthlyProductId'),
|
||||
androidYearlyProductId: required('androidYearlyProductId'),
|
||||
};
|
||||
Reference in New Issue
Block a user