Files
foxhunt/services/api/.sqlx/query-c00246b33b871002aa0a1a1a098ced5b5057a1e7cc7a4bf8a4200d4b5777a73b.json
jgrusewski e50ea55064 feat: create services/api/ — unified gRPC gateway with tonic-web
Copied from api_gateway, removed REST handlers (port 8080),
added tonic-web + CORS for grpc-web browser access.
Binary renamed: api-gateway → api

Changes:
- Package name: api-gateway → api
- Deleted src/handlers/ (REST ML endpoints on port 8080)
- Added tonic-web 0.13 + tower-http CORS layer
- Server::builder().accept_http1(true) for grpc-web
- CORS_ORIGINS env var (default http://localhost:5173)
- Metrics server on port 9091 (axum) preserved
- All 95 lib tests pass, 0 clippy warnings
- Added services/api to workspace members

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 23:32:46 +01:00

83 lines
2.3 KiB
JSON

{
"db_name": "PostgreSQL",
"query": "\n SELECT\n id, user_id, is_enabled, is_verified,\n enrolled_at as \"enrolled_at: chrono::DateTime<chrono::Utc>\",\n verified_at as \"verified_at: chrono::DateTime<chrono::Utc>\",\n last_used_at as \"last_used_at: chrono::DateTime<chrono::Utc>\",\n backup_codes_remaining, failed_verification_attempts,\n last_failed_attempt_at as \"last_failed_attempt_at: chrono::DateTime<chrono::Utc>\",\n locked_until as \"locked_until: chrono::DateTime<chrono::Utc>\"\n FROM mfa_config\n WHERE user_id = $1\n ",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "id",
"type_info": "Uuid"
},
{
"ordinal": 1,
"name": "user_id",
"type_info": "Uuid"
},
{
"ordinal": 2,
"name": "is_enabled",
"type_info": "Bool"
},
{
"ordinal": 3,
"name": "is_verified",
"type_info": "Bool"
},
{
"ordinal": 4,
"name": "enrolled_at: chrono::DateTime<chrono::Utc>",
"type_info": "Timestamptz"
},
{
"ordinal": 5,
"name": "verified_at: chrono::DateTime<chrono::Utc>",
"type_info": "Timestamptz"
},
{
"ordinal": 6,
"name": "last_used_at: chrono::DateTime<chrono::Utc>",
"type_info": "Timestamptz"
},
{
"ordinal": 7,
"name": "backup_codes_remaining",
"type_info": "Int4"
},
{
"ordinal": 8,
"name": "failed_verification_attempts",
"type_info": "Int4"
},
{
"ordinal": 9,
"name": "last_failed_attempt_at: chrono::DateTime<chrono::Utc>",
"type_info": "Timestamptz"
},
{
"ordinal": 10,
"name": "locked_until: chrono::DateTime<chrono::Utc>",
"type_info": "Timestamptz"
}
],
"parameters": {
"Left": [
"Uuid"
]
},
"nullable": [
false,
false,
false,
false,
true,
true,
true,
false,
false,
true,
true
]
},
"hash": "c00246b33b871002aa0a1a1a098ced5b5057a1e7cc7a4bf8a4200d4b5777a73b"
}