remove mongo

This commit is contained in:
johnpccd 2025-05-24 04:57:04 +02:00
parent ec65ad5395
commit ff3d22e9b1
9 changed files with 18 additions and 30 deletions

View File

@ -7,12 +7,6 @@ LOG_LEVEL=INFO
CORS_ORIGINS=* CORS_ORIGINS=*
# Database Settings # Database Settings
# Choose database type: "mongodb" or "firestore"
DATABASE_TYPE=mongodb
# MongoDB Settings (used when DATABASE_TYPE=mongodb)
DATABASE_URI=mongodb://localhost:27017
DATABASE_NAME=imagedb
# Google Cloud Firestore Settings (used when DATABASE_TYPE=firestore) # Google Cloud Firestore Settings (used when DATABASE_TYPE=firestore)
# Path to service account credentials file (optional, uses application default credentials if not set) # Path to service account credentials file (optional, uses application default credentials if not set)

View File

@ -82,7 +82,6 @@ sereact/
4. Create a `.env` file with the following environment variables: 4. Create a `.env` file with the following environment variables:
``` ```
# Firestore # Firestore
DATABASE_NAME=imagedb
FIRESTORE_PROJECT_ID=your-gcp-project-id FIRESTORE_PROJECT_ID=your-gcp-project-id
FIRESTORE_CREDENTIALS_FILE=path/to/firestore-credentials.json FIRESTORE_CREDENTIALS_FILE=path/to/firestore-credentials.json

View File

@ -53,12 +53,14 @@ Sensitive data should be managed using Google Secret Manager:
```bash ```bash
# Create a secret # Create a secret
gcloud secrets create sereact-db-uri --replication-policy="automatic" gcloud secrets create sereact-api-key-secret --replication-policy="automatic"
gcloud secrets create sereact-vector-db-key --replication-policy="automatic"
# Add a secret version # Add a secret version
echo -n "your-mongodb-uri" | gcloud secrets versions add sereact-db-uri --data-file=- echo -n "your-api-key-secret" | gcloud secrets versions add sereact-api-key-secret --data-file=-
echo -n "your-vector-db-key" | gcloud secrets versions add sereact-vector-db-key --data-file=-
# Update Cloud Run service to use the secret # Update Cloud Run service to use the secrets
gcloud run services update sereact \ gcloud run services update sereact \
--update-secrets=DATABASE_URI=sereact-db-uri:latest --update-secrets=API_KEY_SECRET=sereact-api-key-secret:latest,VECTOR_DB_API_KEY=sereact-vector-db-key:latest
``` ```

View File

@ -14,13 +14,10 @@ spec:
cpu: "1" cpu: "1"
memory: "1Gi" memory: "1Gi"
env: env:
- name: DATABASE_URI - name: FIRESTORE_PROJECT_ID
valueFrom: value: "gen-lang-client-0424120530"
secretKeyRef: - name: FIRESTORE_CREDENTIALS_FILE
name: sereact-db-uri value: "/var/secrets/google/key.json"
key: latest
- name: DATABASE_NAME
value: "imagedb"
- name: GCS_BUCKET_NAME - name: GCS_BUCKET_NAME
value: "your-bucket-name" value: "your-bucket-name"
- name: API_KEY_SECRET - name: API_KEY_SECRET

View File

@ -26,8 +26,8 @@ steps:
- '--region=us-central1' - '--region=us-central1'
- '--platform=managed' - '--platform=managed'
- '--allow-unauthenticated' - '--allow-unauthenticated'
- '--set-env-vars=GCS_BUCKET_NAME=${_GCS_BUCKET_NAME},DATABASE_NAME=${_DATABASE_NAME},VECTOR_DB_ENVIRONMENT=${_VECTOR_DB_ENVIRONMENT},VECTOR_DB_INDEX_NAME=${_VECTOR_DB_INDEX_NAME},LOG_LEVEL=INFO' - '--set-env-vars=GCS_BUCKET_NAME=${_GCS_BUCKET_NAME},FIRESTORE_PROJECT_ID=${PROJECT_ID},VECTOR_DB_ENVIRONMENT=${_VECTOR_DB_ENVIRONMENT},VECTOR_DB_INDEX_NAME=${_VECTOR_DB_INDEX_NAME},LOG_LEVEL=INFO'
- '--set-secrets=DATABASE_URI=sereact-db-uri:latest,API_KEY_SECRET=sereact-api-key-secret:latest,VECTOR_DB_API_KEY=sereact-vector-db-key:latest' - '--set-secrets=API_KEY_SECRET=sereact-api-key-secret:latest,VECTOR_DB_API_KEY=sereact-vector-db-key:latest'
# Optional: Run tests after deployment # Optional: Run tests after deployment
# - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk' # - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
@ -46,7 +46,6 @@ images:
# Substitution variables to be set in the Cloud Build trigger # Substitution variables to be set in the Cloud Build trigger
substitutions: substitutions:
_GCS_BUCKET_NAME: 'your-app-storage-bucket' _GCS_BUCKET_NAME: 'your-app-storage-bucket'
_DATABASE_NAME: 'imagedb'
_VECTOR_DB_ENVIRONMENT: 'your-pinecone-env' _VECTOR_DB_ENVIRONMENT: 'your-pinecone-env'
_VECTOR_DB_INDEX_NAME: 'image-embeddings' _VECTOR_DB_INDEX_NAME: 'image-embeddings'

View File

@ -53,22 +53,20 @@ This directory contains Terraform configurations to provision the required Googl
## Managing Secrets ## Managing Secrets
Secrets for environment variables (DATABASE_URI, API_KEY_SECRET, etc.) should be managed separately using Google Secret Manager: Secrets for environment variables (API_KEY_SECRET, VECTOR_DB_API_KEY, etc.) should be managed separately using Google Secret Manager:
```bash ```bash
# Create secrets # Create secrets
gcloud secrets create sereact-db-uri --replication-policy="automatic"
gcloud secrets create sereact-api-key-secret --replication-policy="automatic" gcloud secrets create sereact-api-key-secret --replication-policy="automatic"
gcloud secrets create sereact-vector-db-key --replication-policy="automatic" gcloud secrets create sereact-vector-db-key --replication-policy="automatic"
# Add secret versions # Add secret versions
echo -n "your-secret-value" | gcloud secrets versions add sereact-db-uri --data-file=-
echo -n "your-secret-value" | gcloud secrets versions add sereact-api-key-secret --data-file=- echo -n "your-secret-value" | gcloud secrets versions add sereact-api-key-secret --data-file=-
echo -n "your-secret-value" | gcloud secrets versions add sereact-vector-db-key --data-file=- echo -n "your-secret-value" | gcloud secrets versions add sereact-vector-db-key --data-file=-
# Update Cloud Run service to use secrets # Update Cloud Run service to use secrets
gcloud run services update sereact \ gcloud run services update sereact \
--update-secrets=DATABASE_URI=sereact-db-uri:latest,API_KEY_SECRET=sereact-api-key-secret:latest,VECTOR_DB_API_KEY=sereact-vector-db-key:latest --update-secrets=API_KEY_SECRET=sereact-api-key-secret:latest,VECTOR_DB_API_KEY=sereact-vector-db-key:latest
``` ```
## CI/CD Integration ## CI/CD Integration

View File

@ -64,8 +64,8 @@ resource "google_cloud_run_service" "sereact" {
} }
env { env {
name = "DATABASE_NAME" name = "FIRESTORE_PROJECT_ID"
value = var.firestore_db_name value = var.project_id
} }
env { env {

View File

@ -11,7 +11,7 @@ services:
environment: environment:
- PYTHONUNBUFFERED=1 - PYTHONUNBUFFERED=1
- ENVIRONMENT=development - ENVIRONMENT=development
- DATABASE_NAME=imagedb
- FIRESTORE_CREDENTIALS_FILE=/app/firestore-credentials.json - FIRESTORE_CREDENTIALS_FILE=/app/firestore-credentials.json
- GOOGLE_APPLICATION_CREDENTIALS=/app/firestore-credentials.json - GOOGLE_APPLICATION_CREDENTIALS=/app/firestore-credentials.json
- FIRESTORE_PROJECT_ID=${FIRESTORE_PROJECT_ID:-}
command: uvicorn main:app --host 0.0.0.0 --port 8000 --reload command: uvicorn main:app --host 0.0.0.0 --port 8000 --reload

View File

@ -17,8 +17,7 @@ class Settings(BaseSettings):
return [i.strip() for i in v.split(",")] return [i.strip() for i in v.split(",")]
return v return v
# Database settings # Firestore settings
DATABASE_NAME: str = os.getenv("DATABASE_NAME", "imagedb")
FIRESTORE_PROJECT_ID: str = os.getenv("FIRESTORE_PROJECT_ID", "") FIRESTORE_PROJECT_ID: str = os.getenv("FIRESTORE_PROJECT_ID", "")
FIRESTORE_CREDENTIALS_FILE: str = os.getenv("FIRESTORE_CREDENTIALS_FILE", "firestore-credentials.json") FIRESTORE_CREDENTIALS_FILE: str = os.getenv("FIRESTORE_CREDENTIALS_FILE", "firestore-credentials.json")