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.
- meteorbase-0.1.0/.env.example +30 -0
- meteorbase-0.1.0/.github/workflows/publish.yml +30 -0
- meteorbase-0.1.0/.gitignore +24 -0
- meteorbase-0.1.0/.telemetry_cache.json +1 -0
- meteorbase-0.1.0/PKG-INFO +27 -0
- meteorbase-0.1.0/README.md +11 -0
- meteorbase-0.1.0/__init__.py +0 -0
- meteorbase-0.1.0/app.py +5 -0
- meteorbase-0.1.0/firebase-applet-config.json +12 -0
- meteorbase-0.1.0/firebase-blueprint.json +46 -0
- meteorbase-0.1.0/firestore.rules +8 -0
- meteorbase-0.1.0/index.html +1300 -0
- meteorbase-0.1.0/metadata.json +8 -0
- meteorbase-0.1.0/meteorbase/__init__.py +3 -0
- meteorbase-0.1.0/meteorbase/app.py +849 -0
- meteorbase-0.1.0/package-lock.json +12 -0
- meteorbase-0.1.0/package.json +11 -0
- meteorbase-0.1.0/pyproject.toml +28 -0
- meteorbase-0.1.0/requirements.txt +6 -0
|
@@ -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`.
|
|
File without changes
|
meteorbase-0.1.0/app.py
ADDED
|
@@ -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
|
+
}
|