meteorbase 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,30 @@
1
+ # Google Gemini API Key
2
+ GEMINI_API_KEY=
3
+
4
+ # Firebase Configuration
5
+ FIREBASE_PROJECT_ID=itsjustayush
6
+ FIREBASE_DATABASE_ID=ai-studio-tinyapi-cb543010-793c-448a-ac8b-745b76664410
7
+ FIREBASE_API_KEY=
8
+ FIREBASE_APP_ID=
9
+ FIREBASE_AUTH_DOMAIN=
10
+ FIREBASE_STORAGE_BUCKET=
11
+ FIREBASE_MESSAGING_SENDER_ID=
12
+ FIREBASE_OAUTH_CLIENT_ID=
13
+
14
+ # Retention Policy (days)
15
+ RETENTION_DAYS=90
16
+
17
+ # Optional API key protection for /summarize (if blank, unrestricted in dev)
18
+ MY_API_SECRET=
19
+
20
+ # Server Configuration
21
+ PORT=3000
22
+ PUBLIC_BASE_URL=http://localhost:3000
23
+
24
+ # Supabase Configuration (legacy compatibility)
25
+ SUPABASE_URL=
26
+ SUPABASE_PUBLISHABLE_KEY=
27
+ SUPABASE_SECRET_KEY=
28
+ SUPABASE_ANON_KEY=
29
+ SUPABASE_SERVICE_KEY=
30
+ SUPABASE_SERVICE_ROLE_KEY=
@@ -0,0 +1,30 @@
1
+ name: Publish Python Package
2
+
3
+ on:
4
+ release:
5
+ types: [published]
6
+
7
+ jobs:
8
+ pypi-publish:
9
+ name: Upload to PyPI
10
+ runs-on: ubuntu-latest
11
+ environment:
12
+ name: pypi
13
+ permissions:
14
+ id-token: write
15
+ steps:
16
+ - uses: actions/checkout@v4
17
+
18
+ - name: Set up Python
19
+ uses: actions/setup-python@v5
20
+ with:
21
+ python-version: "3.10"
22
+
23
+ - name: Install build dependencies
24
+ run: python -m pip install build
25
+
26
+ - name: Build package wheels
27
+ run: python -m build
28
+
29
+ - name: Publish package to PyPI
30
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,24 @@
1
+ # Environment Variables
2
+ .env
3
+ .env.local
4
+ .env.*.local
5
+
6
+ # Node modules & dependencies
7
+ node_modules/
8
+ dist/
9
+
10
+ # Python cache & virtual environments
11
+ __pycache__/
12
+ *.py[cod]
13
+ *$py.class
14
+ .venv/
15
+ venv/
16
+ ENV/
17
+
18
+ # OS & Editor
19
+ .DS_Store
20
+ Thumbs.db
21
+ .idea/
22
+ .vscode/
23
+ *.swp
24
+ *.swo
@@ -0,0 +1 @@
1
+ {"total_requests": 243, "status_counts": {"2xx": 242, "4xx": 1, "5xx": 0}, "total_latency_ms": 23641.850000000002, "history": [{"timestamp": 1789217960.190695, "path": "/healthz", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789218200.190695, "path": "/ping", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789218440.190695, "path": "/healthz", "status": 200, "latency_ms": 17.6}, {"timestamp": 1789218680.190695, "path": "/ping", "status": 200, "latency_ms": 20.4}, {"timestamp": 1789218920.190695, "path": "/healthz", "status": 200, "latency_ms": 23.2}, {"timestamp": 1789219160.190695, "path": "/ping", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789219400.190695, "path": "/healthz", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789219640.190695, "path": "/ping", "status": 200, "latency_ms": 17.6}, {"timestamp": 1789219880.190695, "path": "/healthz", "status": 200, "latency_ms": 20.4}, {"timestamp": 1789220120.190695, "path": "/ping", "status": 200, "latency_ms": 23.2}, {"timestamp": 1789220360.190695, "path": "/healthz", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789221560.190695, "path": "/healthz", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789221800.190695, "path": "/ping", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789222040.190695, "path": "/healthz", "status": 200, "latency_ms": 17.6}, {"timestamp": 1789222280.190695, "path": "/ping", "status": 200, "latency_ms": 20.4}, {"timestamp": 1789222520.190695, "path": "/healthz", "status": 200, "latency_ms": 23.2}, {"timestamp": 1789222760.190695, "path": "/ping", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789223000.190695, "path": "/healthz", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789223240.190695, "path": "/ping", "status": 200, "latency_ms": 17.6}, {"timestamp": 1789223480.190695, "path": "/healthz", "status": 200, "latency_ms": 20.4}, {"timestamp": 1789225160.190695, "path": "/healthz", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789225400.190695, "path": "/ping", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789225640.190695, "path": "/healthz", "status": 200, "latency_ms": 17.6}, {"timestamp": 1789225880.190695, "path": "/ping", "status": 200, "latency_ms": 20.4}, {"timestamp": 1789226120.190695, "path": "/healthz", "status": 200, "latency_ms": 23.2}, {"timestamp": 1789226360.190695, "path": "/ping", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789226600.190695, "path": "/healthz", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789228760.190695, "path": "/healthz", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789229000.190695, "path": "/ping", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789229240.190695, "path": "/healthz", "status": 200, "latency_ms": 17.6}, {"timestamp": 1789229480.190695, "path": "/ping", "status": 200, "latency_ms": 20.4}, {"timestamp": 1789229720.190695, "path": "/healthz", "status": 200, "latency_ms": 23.2}, {"timestamp": 1789232360.190695, "path": "/healthz", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789232600.190695, "path": "/ping", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789232840.190695, "path": "/healthz", "status": 200, "latency_ms": 17.6}, {"timestamp": 1789233080.190695, "path": "/ping", "status": 200, "latency_ms": 20.4}, {"timestamp": 1789233320.190695, "path": "/healthz", "status": 200, "latency_ms": 23.2}, {"timestamp": 1789233560.190695, "path": "/ping", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789233800.190695, "path": "/healthz", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789234040.190695, "path": "/ping", "status": 200, "latency_ms": 17.6}, {"timestamp": 1789234280.190695, "path": "/healthz", "status": 200, "latency_ms": 20.4}, {"timestamp": 1789234520.190695, "path": "/ping", "status": 200, "latency_ms": 23.2}, {"timestamp": 1789234760.190695, "path": "/healthz", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789235000.190695, "path": "/ping", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789235240.190695, "path": "/healthz", "status": 200, "latency_ms": 17.6}, {"timestamp": 1789235480.190695, "path": "/ping", "status": 200, "latency_ms": 20.4}, {"timestamp": 1789235720.190695, "path": "/healthz", "status": 200, "latency_ms": 23.2}, {"timestamp": 1789235960.190695, "path": "/ping", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789236200.190695, "path": "/healthz", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789235960.190695, "path": "/healthz", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789236200.190695, "path": "/ping", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789236440.190695, "path": "/healthz", "status": 200, "latency_ms": 17.6}, {"timestamp": 1789236680.190695, "path": "/ping", "status": 200, "latency_ms": 20.4}, {"timestamp": 1789236920.190695, "path": "/healthz", "status": 200, "latency_ms": 23.2}, {"timestamp": 1789237160.190695, "path": "/ping", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789237400.190695, "path": "/healthz", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789237640.190695, "path": "/ping", "status": 200, "latency_ms": 17.6}, {"timestamp": 1789237880.190695, "path": "/healthz", "status": 200, "latency_ms": 20.4}, {"timestamp": 1789238120.190695, "path": "/ping", "status": 200, "latency_ms": 23.2}, {"timestamp": 1789238360.190695, "path": "/healthz", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789238600.190695, "path": "/ping", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789238840.190695, "path": "/healthz", "status": 200, "latency_ms": 17.6}, {"timestamp": 1789239080.190695, "path": "/ping", "status": 200, "latency_ms": 20.4}, {"timestamp": 1789239320.190695, "path": "/healthz", "status": 200, "latency_ms": 23.2}, {"timestamp": 1789239560.190695, "path": "/healthz", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789239800.190695, "path": "/ping", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789240040.190695, "path": "/healthz", "status": 200, "latency_ms": 17.6}, {"timestamp": 1789240280.190695, "path": "/ping", "status": 200, "latency_ms": 20.4}, {"timestamp": 1789240520.190695, "path": "/healthz", "status": 200, "latency_ms": 23.2}, {"timestamp": 1789240760.190695, "path": "/ping", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789241000.190695, "path": "/healthz", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789241240.190695, "path": "/ping", "status": 200, "latency_ms": 17.6}, {"timestamp": 1789241480.190695, "path": "/healthz", "status": 200, "latency_ms": 20.4}, {"timestamp": 1789241720.190695, "path": "/ping", "status": 200, "latency_ms": 23.2}, {"timestamp": 1789241960.190695, "path": "/healthz", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789242200.190695, "path": "/ping", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789242440.190695, "path": "/healthz", "status": 200, "latency_ms": 17.6}, {"timestamp": 1789243160.190695, "path": "/healthz", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789243400.190695, "path": "/ping", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789243640.190695, "path": "/healthz", "status": 200, "latency_ms": 17.6}, {"timestamp": 1789243880.190695, "path": "/ping", "status": 200, "latency_ms": 20.4}, {"timestamp": 1789244120.190695, "path": "/healthz", "status": 200, "latency_ms": 23.2}, {"timestamp": 1789244360.190695, "path": "/ping", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789244600.190695, "path": "/healthz", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789244840.190695, "path": "/ping", "status": 200, "latency_ms": 17.6}, {"timestamp": 1789245080.190695, "path": "/healthz", "status": 200, "latency_ms": 20.4}, {"timestamp": 1789245320.190695, "path": "/ping", "status": 200, "latency_ms": 23.2}, {"timestamp": 1789245560.190695, "path": "/healthz", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789246760.190695, "path": "/healthz", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789247000.190695, "path": "/ping", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789247240.190695, "path": "/healthz", "status": 200, "latency_ms": 17.6}, {"timestamp": 1789247480.190695, "path": "/ping", "status": 200, "latency_ms": 20.4}, {"timestamp": 1789247720.190695, "path": "/healthz", "status": 200, "latency_ms": 23.2}, {"timestamp": 1789247960.190695, "path": "/ping", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789248200.190695, "path": "/healthz", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789248440.190695, "path": "/ping", "status": 200, "latency_ms": 17.6}, {"timestamp": 1789248680.190695, "path": "/healthz", "status": 200, "latency_ms": 20.4}, {"timestamp": 1789250360.190695, "path": "/healthz", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789250600.190695, "path": "/ping", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789250840.190695, "path": "/healthz", "status": 200, "latency_ms": 17.6}, {"timestamp": 1789251080.190695, "path": "/ping", "status": 200, "latency_ms": 20.4}, {"timestamp": 1789251320.190695, "path": "/healthz", "status": 200, "latency_ms": 23.2}, {"timestamp": 1789251560.190695, "path": "/ping", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789251800.190695, "path": "/healthz", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789253960.190695, "path": "/healthz", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789254200.190695, "path": "/ping", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789254440.190695, "path": "/healthz", "status": 200, "latency_ms": 17.6}, {"timestamp": 1789254680.190695, "path": "/ping", "status": 200, "latency_ms": 20.4}, {"timestamp": 1789254920.190695, "path": "/healthz", "status": 200, "latency_ms": 23.2}, {"timestamp": 1789257560.190695, "path": "/healthz", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789257800.190695, "path": "/ping", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789258040.190695, "path": "/healthz", "status": 200, "latency_ms": 17.6}, {"timestamp": 1789258280.190695, "path": "/ping", "status": 200, "latency_ms": 20.4}, {"timestamp": 1789258520.190695, "path": "/healthz", "status": 200, "latency_ms": 23.2}, {"timestamp": 1789258760.190695, "path": "/ping", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789259000.190695, "path": "/healthz", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789259240.190695, "path": "/ping", "status": 200, "latency_ms": 17.6}, {"timestamp": 1789259480.190695, "path": "/healthz", "status": 200, "latency_ms": 20.4}, {"timestamp": 1789259720.190695, "path": "/ping", "status": 200, "latency_ms": 23.2}, {"timestamp": 1789259960.190695, "path": "/healthz", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789260200.190695, "path": "/ping", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789260440.190695, "path": "/healthz", "status": 200, "latency_ms": 17.6}, {"timestamp": 1789260680.190695, "path": "/ping", "status": 200, "latency_ms": 20.4}, {"timestamp": 1789260920.190695, "path": "/healthz", "status": 200, "latency_ms": 23.2}, {"timestamp": 1789261160.190695, "path": "/ping", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789261400.190695, "path": "/healthz", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789261160.190695, "path": "/healthz", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789261400.190695, "path": "/ping", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789261640.190695, "path": "/healthz", "status": 200, "latency_ms": 17.6}, {"timestamp": 1789261880.190695, "path": "/ping", "status": 200, "latency_ms": 20.4}, {"timestamp": 1789262120.190695, "path": "/healthz", "status": 200, "latency_ms": 23.2}, {"timestamp": 1789262360.190695, "path": "/ping", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789262600.190695, "path": "/healthz", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789262840.190695, "path": "/ping", "status": 200, "latency_ms": 17.6}, {"timestamp": 1789263080.190695, "path": "/healthz", "status": 200, "latency_ms": 20.4}, {"timestamp": 1789263320.190695, "path": "/ping", "status": 200, "latency_ms": 23.2}, {"timestamp": 1789263560.190695, "path": "/healthz", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789263800.190695, "path": "/ping", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789264040.190695, "path": "/healthz", "status": 200, "latency_ms": 17.6}, {"timestamp": 1789264280.190695, "path": "/ping", "status": 200, "latency_ms": 20.4}, {"timestamp": 1789264520.190695, "path": "/healthz", "status": 200, "latency_ms": 23.2}, {"timestamp": 1789264760.190695, "path": "/healthz", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789265000.190695, "path": "/ping", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789265240.190695, "path": "/healthz", "status": 200, "latency_ms": 17.6}, {"timestamp": 1789265480.190695, "path": "/ping", "status": 200, "latency_ms": 20.4}, {"timestamp": 1789265720.190695, "path": "/healthz", "status": 200, "latency_ms": 23.2}, {"timestamp": 1789265960.190695, "path": "/ping", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789266200.190695, "path": "/healthz", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789266440.190695, "path": "/ping", "status": 200, "latency_ms": 17.6}, {"timestamp": 1789266680.190695, "path": "/healthz", "status": 200, "latency_ms": 20.4}, {"timestamp": 1789266920.190695, "path": "/ping", "status": 200, "latency_ms": 23.2}, {"timestamp": 1789267160.190695, "path": "/healthz", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789267400.190695, "path": "/ping", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789267640.190695, "path": "/healthz", "status": 200, "latency_ms": 17.6}, {"timestamp": 1789268360.190695, "path": "/healthz", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789268600.190695, "path": "/ping", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789268840.190695, "path": "/healthz", "status": 200, "latency_ms": 17.6}, {"timestamp": 1789269080.190695, "path": "/ping", "status": 200, "latency_ms": 20.4}, {"timestamp": 1789269320.190695, "path": "/healthz", "status": 200, "latency_ms": 23.2}, {"timestamp": 1789269560.190695, "path": "/ping", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789269800.190695, "path": "/healthz", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789270040.190695, "path": "/ping", "status": 200, "latency_ms": 17.6}, {"timestamp": 1789270280.190695, "path": "/healthz", "status": 200, "latency_ms": 20.4}, {"timestamp": 1789270520.190695, "path": "/ping", "status": 200, "latency_ms": 23.2}, {"timestamp": 1789270760.190695, "path": "/healthz", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789271960.190695, "path": "/healthz", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789272200.190695, "path": "/ping", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789272440.190695, "path": "/healthz", "status": 200, "latency_ms": 17.6}, {"timestamp": 1789272680.190695, "path": "/ping", "status": 200, "latency_ms": 20.4}, {"timestamp": 1789272920.190695, "path": "/healthz", "status": 200, "latency_ms": 23.2}, {"timestamp": 1789273160.190695, "path": "/ping", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789273400.190695, "path": "/healthz", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789273640.190695, "path": "/ping", "status": 200, "latency_ms": 17.6}, {"timestamp": 1789273880.190695, "path": "/healthz", "status": 200, "latency_ms": 20.4}, {"timestamp": 1789275560.190695, "path": "/healthz", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789275800.190695, "path": "/ping", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789276040.190695, "path": "/healthz", "status": 200, "latency_ms": 17.6}, {"timestamp": 1789276280.190695, "path": "/ping", "status": 200, "latency_ms": 20.4}, {"timestamp": 1789276520.190695, "path": "/healthz", "status": 200, "latency_ms": 23.2}, {"timestamp": 1789276760.190695, "path": "/ping", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789277000.190695, "path": "/healthz", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789279160.190695, "path": "/healthz", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789279400.190695, "path": "/ping", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789279640.190695, "path": "/healthz", "status": 200, "latency_ms": 17.6}, {"timestamp": 1789279880.190695, "path": "/ping", "status": 200, "latency_ms": 20.4}, {"timestamp": 1789280120.190695, "path": "/healthz", "status": 200, "latency_ms": 23.2}, {"timestamp": 1789282760.190695, "path": "/healthz", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789283000.190695, "path": "/ping", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789283240.190695, "path": "/healthz", "status": 200, "latency_ms": 17.6}, {"timestamp": 1789283480.190695, "path": "/ping", "status": 200, "latency_ms": 20.4}, {"timestamp": 1789283720.190695, "path": "/healthz", "status": 200, "latency_ms": 23.2}, {"timestamp": 1789283960.190695, "path": "/ping", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789284200.190695, "path": "/healthz", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789284440.190695, "path": "/ping", "status": 200, "latency_ms": 17.6}, {"timestamp": 1789284680.190695, "path": "/healthz", "status": 200, "latency_ms": 20.4}, {"timestamp": 1789284920.190695, "path": "/ping", "status": 200, "latency_ms": 23.2}, {"timestamp": 1789285160.190695, "path": "/healthz", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789285400.190695, "path": "/ping", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789285640.190695, "path": "/healthz", "status": 200, "latency_ms": 17.6}, {"timestamp": 1789285880.190695, "path": "/ping", "status": 200, "latency_ms": 20.4}, {"timestamp": 1789286120.190695, "path": "/healthz", "status": 200, "latency_ms": 23.2}, {"timestamp": 1789286360.190695, "path": "/ping", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789286600.190695, "path": "/healthz", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789286360.190695, "path": "/healthz", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789286600.190695, "path": "/ping", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789286840.190695, "path": "/healthz", "status": 200, "latency_ms": 17.6}, {"timestamp": 1789287080.190695, "path": "/ping", "status": 200, "latency_ms": 20.4}, {"timestamp": 1789287320.190695, "path": "/healthz", "status": 200, "latency_ms": 23.2}, {"timestamp": 1789287560.190695, "path": "/ping", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789287800.190695, "path": "/healthz", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789288040.190695, "path": "/ping", "status": 200, "latency_ms": 17.6}, {"timestamp": 1789288280.190695, "path": "/healthz", "status": 200, "latency_ms": 20.4}, {"timestamp": 1789288520.190695, "path": "/ping", "status": 200, "latency_ms": 23.2}, {"timestamp": 1789288760.190695, "path": "/healthz", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789289000.190695, "path": "/ping", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789289240.190695, "path": "/healthz", "status": 200, "latency_ms": 17.6}, {"timestamp": 1789289480.190695, "path": "/ping", "status": 200, "latency_ms": 20.4}, {"timestamp": 1789289720.190695, "path": "/healthz", "status": 200, "latency_ms": 23.2}, {"timestamp": 1789289960.190695, "path": "/healthz", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789290200.190695, "path": "/ping", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789290440.190695, "path": "/healthz", "status": 200, "latency_ms": 17.6}, {"timestamp": 1789290680.190695, "path": "/ping", "status": 200, "latency_ms": 20.4}, {"timestamp": 1789290920.190695, "path": "/healthz", "status": 200, "latency_ms": 23.2}, {"timestamp": 1789291160.190695, "path": "/ping", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789291400.190695, "path": "/healthz", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789291640.190695, "path": "/ping", "status": 200, "latency_ms": 17.6}, {"timestamp": 1789291880.190695, "path": "/healthz", "status": 200, "latency_ms": 20.4}, {"timestamp": 1789292120.190695, "path": "/ping", "status": 200, "latency_ms": 23.2}, {"timestamp": 1789292360.190695, "path": "/healthz", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789292600.190695, "path": "/ping", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789292840.190695, "path": "/healthz", "status": 200, "latency_ms": 17.6}, {"timestamp": 1789293560.190695, "path": "/healthz", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789293800.190695, "path": "/ping", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789294040.190695, "path": "/healthz", "status": 200, "latency_ms": 17.6}, {"timestamp": 1789294280.190695, "path": "/ping", "status": 200, "latency_ms": 20.4}, {"timestamp": 1789294520.190695, "path": "/healthz", "status": 200, "latency_ms": 23.2}, {"timestamp": 1789294760.190695, "path": "/ping", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789295000.190695, "path": "/healthz", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789295240.190695, "path": "/ping", "status": 200, "latency_ms": 17.6}, {"timestamp": 1789295480.190695, "path": "/healthz", "status": 200, "latency_ms": 20.4}, {"timestamp": 1789295720.190695, "path": "/ping", "status": 200, "latency_ms": 23.2}, {"timestamp": 1789295960.190695, "path": "/healthz", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789297160.190695, "path": "/healthz", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789297400.190695, "path": "/ping", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789297640.190695, "path": "/healthz", "status": 200, "latency_ms": 17.6}, {"timestamp": 1789297880.190695, "path": "/ping", "status": 200, "latency_ms": 20.4}, {"timestamp": 1789298120.190695, "path": "/healthz", "status": 200, "latency_ms": 23.2}, {"timestamp": 1789298360.190695, "path": "/ping", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789298600.190695, "path": "/healthz", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789298840.190695, "path": "/ping", "status": 200, "latency_ms": 17.6}, {"timestamp": 1789299080.190695, "path": "/healthz", "status": 200, "latency_ms": 20.4}, {"timestamp": 1789300760.190695, "path": "/healthz", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789301000.190695, "path": "/ping", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789301240.190695, "path": "/healthz", "status": 200, "latency_ms": 17.6}, {"timestamp": 1789301480.190695, "path": "/ping", "status": 200, "latency_ms": 20.4}, {"timestamp": 1789301720.190695, "path": "/healthz", "status": 200, "latency_ms": 23.2}, {"timestamp": 1789301960.190695, "path": "/ping", "status": 200, "latency_ms": 12.0}, {"timestamp": 1789302200.190695, "path": "/healthz", "status": 200, "latency_ms": 14.8}, {"timestamp": 1789304362.569088, "path": "/api/telemetry/stats", "method": "GET", "status": 200, "latency_ms": 8.48}, {"timestamp": 1789304365.325075, "path": "/api/telemetry/stats", "method": "GET", "status": 200, "latency_ms": 5.81}, {"timestamp": 1789304425.323371, "path": "/healthz", "method": "GET", "status": 200, "latency_ms": 483.53}, {"timestamp": 1789304425.348103, "path": "/api/telemetry/stats", "method": "GET", "status": 200, "latency_ms": 5.44}, {"timestamp": 1789304434.539529, "path": "/summarize", "method": "POST", "status": 200, "latency_ms": 3921.51}, {"timestamp": 1789304434.623591, "path": "/api/telemetry/stats", "method": "GET", "status": 200, "latency_ms": 17.09}, {"timestamp": 1789304444.488936, "path": "/", "method": "GET", "status": 200, "latency_ms": 6.4}, {"timestamp": 1789304452.634949, "path": "/", "method": "GET", "status": 200, "latency_ms": 1.06}, {"timestamp": 1789304454.97746, "path": "/readyz", "method": "GET", "status": 200, "latency_ms": 1.33}, {"timestamp": 1789304455.046188, "path": "/summarize/health", "method": "GET", "status": 200, "latency_ms": 3.68}, {"timestamp": 1789304455.050233, "path": "/api/test", "method": "GET", "status": 200, "latency_ms": 10.87}, {"timestamp": 1789304455.514667, "path": "/ping", "method": "GET", "status": 200, "latency_ms": 472.79}, {"timestamp": 1789304455.685042, "path": "/api/telemetry/stats", "method": "GET", "status": 200, "latency_ms": 7.14}, {"timestamp": 1789304502.091393, "path": "/", "method": "GET", "status": 200, "latency_ms": 1.81}, {"timestamp": 1789304503.063077, "path": "/api/test", "method": "GET", "status": 200, "latency_ms": 1.01}, {"timestamp": 1789304503.131663, "path": "/summarize/health", "method": "GET", "status": 200, "latency_ms": 4.31}, {"timestamp": 1789304503.150482, "path": "/readyz", "method": "GET", "status": 200, "latency_ms": 1.01}, {"timestamp": 1789304503.586844, "path": "/ping", "method": "GET", "status": 200, "latency_ms": 463.47}, {"timestamp": 1789304504.477832, "path": "/api/telemetry/stats", "method": "GET", "status": 200, "latency_ms": 5.04}, {"timestamp": 1789304507.798242, "path": "/", "method": "GET", "status": 200, "latency_ms": 0.89}, {"timestamp": 1789304508.717728, "path": "/readyz", "method": "GET", "status": 200, "latency_ms": 1.34}, {"timestamp": 1789304508.782159, "path": "/api/test", "method": "GET", "status": 200, "latency_ms": 1.15}, {"timestamp": 1789304508.795624, "path": "/summarize/health", "method": "GET", "status": 200, "latency_ms": 1.67}, {"timestamp": 1789304509.253853, "path": "/ping", "method": "GET", "status": 200, "latency_ms": 458.34}, {"timestamp": 1789304509.591008, "path": "/api/telemetry/stats", "method": "GET", "status": 200, "latency_ms": 5.67}, {"timestamp": 1789304589.628952, "path": "/", "method": "GET", "status": 200, "latency_ms": 6.6}, {"timestamp": 1789304596.795206, "path": "/", "method": "GET", "status": 200, "latency_ms": 11.9}, {"timestamp": 1789304624.462368, "path": "/", "method": "GET", "status": 200, "latency_ms": 1.07}, {"timestamp": 1789304625.636371, "path": "/summarize/health", "method": "GET", "status": 200, "latency_ms": 1.31}, {"timestamp": 1789304625.700094, "path": "/readyz", "method": "GET", "status": 200, "latency_ms": 1.01}, {"timestamp": 1789304625.705093, "path": "/api/test", "method": "GET", "status": 200, "latency_ms": 0.81}, {"timestamp": 1789304626.167224, "path": "/ping", "method": "GET", "status": 200, "latency_ms": 458.0}, {"timestamp": 1789304626.320401, "path": "/api/telemetry/stats", "method": "GET", "status": 200, "latency_ms": 5.11}, {"timestamp": 1789308381.692067, "path": "/api/user/keys", "method": "POST", "status": 200, "latency_ms": 677.76}, {"timestamp": 1789308389.044949, "path": "/summarize", "method": "POST", "status": 200, "latency_ms": 4359.69}, {"timestamp": 1789308392.866134, "path": "/api/user/usage", "method": "GET", "status": 200, "latency_ms": 459.29}, {"timestamp": 1789308395.338559, "path": "/api/user/keys", "method": "GET", "status": 200, "latency_ms": 429.51}, {"timestamp": 1789308405.497548, "path": "/api/user/keys/460b6973-e501-4cbc-9037-5091c80801ff", "method": "DELETE", "status": 200, "latency_ms": 916.22}, {"timestamp": 1789308409.223272, "path": "/summarize", "method": "POST", "status": 401, "latency_ms": 440.48}, {"timestamp": 1789308505.976082, "path": "/", "method": "GET", "status": 200, "latency_ms": 7.23}, {"timestamp": 1789308507.817258, "path": "/api/telemetry/stats", "method": "GET", "status": 200, "latency_ms": 10.22}, {"timestamp": 1789308519.707274, "path": "/ping", "method": "GET", "status": 200, "latency_ms": 473.93}, {"timestamp": 1789308527.580608, "path": "/", "method": "GET", "status": 200, "latency_ms": 6.37}, {"timestamp": 1789308576.164922, "path": "/", "method": "GET", "status": 200, "latency_ms": 0.92}, {"timestamp": 1789308577.355037, "path": "/readyz", "method": "GET", "status": 200, "latency_ms": 1.23}, {"timestamp": 1789308577.422368, "path": "/summarize/health", "method": "GET", "status": 200, "latency_ms": 1.62}, {"timestamp": 1789308577.429856, "path": "/api/test", "method": "GET", "status": 200, "latency_ms": 1.29}, {"timestamp": 1789308577.873728, "path": "/ping", "method": "GET", "status": 200, "latency_ms": 455.92}, {"timestamp": 1789308578.034619, "path": "/api/telemetry/stats", "method": "GET", "status": 200, "latency_ms": 6.08}, {"timestamp": 1789309426.950144, "path": "/api/user/keys", "method": "GET", "status": 200, "latency_ms": 472.44}, {"timestamp": 1789309427.166672, "path": "/api/user/usage", "method": "GET", "status": 200, "latency_ms": 422.37}, {"timestamp": 1789309478.832855, "path": "/api/user/usage", "method": "GET", "status": 200, "latency_ms": 451.41}, {"timestamp": 1789309478.838449, "path": "/api/user/keys", "method": "GET", "status": 200, "latency_ms": 462.01}, {"timestamp": 1789309500.901087, "path": "/api/user/keys", "method": "POST", "status": 200, "latency_ms": 467.06}, {"timestamp": 1789309501.497687, "path": "/api/user/keys", "method": "GET", "status": 200, "latency_ms": 451.4}, {"timestamp": 1789309501.553738, "path": "/api/user/usage", "method": "GET", "status": 200, "latency_ms": 446.83}, {"timestamp": 1789309549.133529, "path": "/", "method": "GET", "status": 200, "latency_ms": 10.01}, {"timestamp": 1789309564.802251, "path": "/", "method": "GET", "status": 200, "latency_ms": 6.93}, {"timestamp": 1789309572.920833, "path": "/", "method": "GET", "status": 200, "latency_ms": 0.95}, {"timestamp": 1789309574.876066, "path": "/readyz", "method": "GET", "status": 200, "latency_ms": 1.15}, {"timestamp": 1789309574.936802, "path": "/api/test", "method": "GET", "status": 200, "latency_ms": 1.03}, {"timestamp": 1789309574.953764, "path": "/summarize/health", "method": "GET", "status": 200, "latency_ms": 5.68}, {"timestamp": 1789309575.416631, "path": "/api/user/keys", "method": "GET", "status": 200, "latency_ms": 467.73}, {"timestamp": 1789309575.440899, "path": "/api/user/usage", "method": "GET", "status": 200, "latency_ms": 491.37}, {"timestamp": 1789309575.444679, "path": "/ping", "method": "GET", "status": 200, "latency_ms": 494.63}, {"timestamp": 1789309575.653436, "path": "/api/telemetry/stats", "method": "GET", "status": 200, "latency_ms": 5.38}, {"timestamp": 1789309609.404073, "path": "/", "method": "GET", "status": 200, "latency_ms": 1.57}, {"timestamp": 1789309610.715872, "path": "/readyz", "method": "GET", "status": 200, "latency_ms": 0.93}, {"timestamp": 1789309610.778375, "path": "/api/test", "method": "GET", "status": 200, "latency_ms": 0.88}, {"timestamp": 1789309610.843944, "path": "/summarize/health", "method": "GET", "status": 200, "latency_ms": 7.3}, {"timestamp": 1789309611.284548, "path": "/ping", "method": "GET", "status": 200, "latency_ms": 467.4}, {"timestamp": 1789309611.291796, "path": "/api/user/usage", "method": "GET", "status": 200, "latency_ms": 465.44}, {"timestamp": 1789309611.298623, "path": "/api/user/keys", "method": "GET", "status": 200, "latency_ms": 462.49}, {"timestamp": 1789309611.752559, "path": "/api/telemetry/stats", "method": "GET", "status": 200, "latency_ms": 6.39}, {"timestamp": 1789309867.221245, "path": "/api/telemetry/stats", "method": "GET", "status": 200, "latency_ms": 6.66}], "daily_counts": {"2026-09-13": {"requests": 75, "errors": 1, "total_latency": 20701.85000000001}}}
@@ -0,0 +1,27 @@
1
+ Metadata-Version: 2.5
2
+ Name: meteorbase
3
+ Version: 0.1.0
4
+ Summary: A Python client for MeteorBase
5
+ Project-URL: Homepage, https://github.com/itsjustayush/meteorbaseapi
6
+ Author-email: Ayush Bhattacharya <info.cometlabs@gmail.com>
7
+ License: MIT
8
+ Requires-Python: >=3.8
9
+ Requires-Dist: fastapi==0.116.1
10
+ Requires-Dist: google-genai>=2.20.0
11
+ Requires-Dist: httpx>=0.28.0
12
+ Requires-Dist: python-dotenv==1.2.2
13
+ Requires-Dist: supabase==2.31.0
14
+ Requires-Dist: uvicorn[standard]==0.35.0
15
+ Description-Content-Type: text/markdown
16
+
17
+ # MeteorBase
18
+
19
+ A Python client and API service for MeteorBase.
20
+
21
+ ## Installation
22
+
23
+ ```bash
24
+ pip install meteorbase
25
+ ```
26
+
27
+ The FastAPI application is available as `meteorbase.app:app`.
@@ -0,0 +1,11 @@
1
+ # MeteorBase
2
+
3
+ A Python client and API service for MeteorBase.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ pip install meteorbase
9
+ ```
10
+
11
+ The FastAPI application is available as `meteorbase.app:app`.
File without changes
@@ -0,0 +1,5 @@
1
+ """Compatibility entry point for deployments that still use ``app:app``."""
2
+
3
+ from meteorbase.app import app
4
+
5
+ __all__ = ["app"]
@@ -0,0 +1,12 @@
1
+ {
2
+ "projectId": "itsjustayush",
3
+ "appId": "1:84209084399:web:06a77eeb154a0a42e5f81a",
4
+ "apiKey": "AIzaSyAgRSbKL6fh0AXsVn-6XrH4Ev3VK3Pq8TM",
5
+ "authDomain": "itsjustayush.firebaseapp.com",
6
+ "firestoreDatabaseId": "ai-studio-tinyapi-cb543010-793c-448a-ac8b-745b76664410",
7
+ "storageBucket": "itsjustayush.firebasestorage.app",
8
+ "messagingSenderId": "84209084399",
9
+ "measurementId": "",
10
+ "oAuthClientId": "84209084399-qm7rscll482fnia2c0vimg5r3118199j.apps.googleusercontent.com",
11
+ "recaptchaSiteKey": ""
12
+ }
@@ -0,0 +1,46 @@
1
+ {
2
+ "entities": {
3
+ "ApiKey": {
4
+ "title": "ApiKey",
5
+ "description": "Secure API keys generated by users with rate limits and hash verification",
6
+ "type": "object",
7
+ "properties": {
8
+ "id": { "type": "string", "description": "Unique key identifier" },
9
+ "user_id": { "type": "string", "description": "Owner user UID from Firebase Auth" },
10
+ "name": { "type": "string", "description": "Human readable label for the key" },
11
+ "key_hash": { "type": "string", "description": "SHA-256 hash of the secret key token" },
12
+ "key_preview": { "type": "string", "description": "Masked preview of the key e.g. meteor_live_...3f8a" },
13
+ "created_at": { "type": "string", "format": "date-time", "description": "Creation timestamp" },
14
+ "status": { "type": "string", "enum": ["active", "revoked"], "description": "Key status" },
15
+ "rate_limit_per_day": { "type": "number", "description": "Daily request limit" },
16
+ "rate_limit_per_min": { "type": "number", "description": "Per minute burst limit" },
17
+ "usage_count": { "type": "number", "description": "Total lifetime requests made with this key" },
18
+ "last_used_at": { "type": "string", "description": "Last time key was used to authenticate" }
19
+ },
20
+ "required": ["id", "user_id", "key_hash", "key_preview", "created_at", "status"]
21
+ },
22
+ "DynamicRecord": {
23
+ "title": "DynamicRecord",
24
+ "description": "Flexible schema supporting dynamic payloads, summaries, tasks, and future custom entities with automated 90-day retention",
25
+ "type": "object",
26
+ "properties": {
27
+ "id": { "type": "string", "description": "Unique record identifier" },
28
+ "created_at": { "type": "string", "format": "date-time", "description": "Creation timestamp" },
29
+ "expires_at": { "type": "string", "format": "date-time", "description": "Expiration timestamp (90 days retention)" },
30
+ "created_at_epoch": { "type": "number", "description": "Creation unix epoch timestamp in seconds" },
31
+ "expires_at_epoch": { "type": "number", "description": "Expiration unix epoch timestamp in seconds" }
32
+ },
33
+ "required": ["id", "created_at"]
34
+ }
35
+ },
36
+ "firestore": {
37
+ "/api_keys/{keyId}": {
38
+ "schema": "ApiKey",
39
+ "description": "User generated API keys with security hashes and usage metrics"
40
+ },
41
+ "/{collection}/{documentId}": {
42
+ "schema": "DynamicRecord",
43
+ "description": "Flexible collections accommodating summaries, telemetry, and future application features"
44
+ }
45
+ }
46
+ }
@@ -0,0 +1,8 @@
1
+ rules_version = '2';
2
+ service cloud.firestore {
3
+ match /databases/{database}/documents {
4
+ match /{document=**} {
5
+ allow read, write: if true;
6
+ }
7
+ }
8
+ }