- add buildAuthorization function for token handling - implement consumeAuthTokensFromUrl to extract tokens from URL - update axios request interceptor to handle authorization - improve error handling for unauthorized access - refactor app.py to validate JWT tokens and manage user sessions - add auth_guard for claim-based authorization checks - create auth_user model for user profile management - update README with service details and setup instructions
Micro Service Apps
Backend micro services for the FST data production line.
Services
root_db_api: FST/root database APIs (Flask + SQLAlchemy + PostgreSQL)mta_manage_system: MTA management service (Flask + Flask-SQLAlchemy)
Prerequisites
- Python
>=3.12 uvpackage manager- PostgreSQL (for
root_db_api)
Dependency Installation
Option A: Install from repo root (recommended)
cd "C:\Users\A200315753\Work\FST\fst-editor\fst_data_pipeline-feature-editor-api"
uv venv
.\.venv\Scripts\Activate.ps1
uv sync
Option B: Install per app
root_db_api
cd "C:\Users\A200315753\Work\FST\fst-editor\fst_data_pipeline-feature-editor-api\fst_data_pipeline\apps\root_db_api"
uv venv
.\.venv\Scripts\Activate.ps1
uv sync
mta_manage_system
cd "C:\Users\A200315753\Work\FST\fst-editor\fst_data_pipeline-feature-editor-api\fst_data_pipeline\apps\mta_manage_system"
uv venv
.\.venv\Scripts\Activate.ps1
uv sync
Database Configuration
1) root_db_api
root_db_api reads DB settings from environment variables in:
fst_data_pipeline/apps/root_db_api/src/db/connection.py
Required variables:
DB_USERDB_PASSWORDDB_BASE_URL
The runtime DB URL is assembled as:
postgresql://{DB_USER}:{DB_PASSWORD}@{DB_BASE_URL}
Example (PowerShell):
$env:DB_USER = "admin"
$env:DB_PASSWORD = "your_password"
$env:DB_BASE_URL = "127.0.0.1:5432/fsq_dev"
You can also see a container run example in:
start.sh
2) mta_manage_system
mta_manage_system reads DB from:
fst_data_pipeline/apps/mta_manage_system/config.py
Key variable:
DATABASE_URL
Example:
$env:DATABASE_URL = "postgresql://username:password@127.0.0.1:5432/dbname"
config.py will load env files automatically in this order:
.env.env.<FLASK_ENV>.env.local
Run (quick)
root_db_api
cd "C:\Users\A200315753\Work\FST\fst-editor\fst_data_pipeline-feature-editor-api\fst_data_pipeline\apps\root_db_api"
python src\app.py
Default API endpoint:
http://localhost:5232/api
mta_manage_system
cd "C:\Users\A200315753\Work\FST\fst-editor\fst_data_pipeline-feature-editor-api\fst_data_pipeline\apps\mta_manage_system"
python app.py
Notes
root_db_apihas a detailed service-level guide infst_data_pipeline/apps/root_db_api/README.md.- Keep secrets (DB password, OAuth secrets) in environment variables or local
.envfiles; do not commit them.