WellNuo/get-app-id.py
Sergei ec63a2c1e2 Add admin panel, optimized API, OTP auth, migrations
Admin Panel (Next.js):
- Dashboard with stats
- Users list with relationships (watches/watched_by)
- User detail pages
- Deployments list and detail pages
- Devices, Orders, Subscriptions pages
- OTP-based admin authentication

Backend Optimizations:
- Fixed N+1 query problem in admin APIs
- Added pagination support
- Added .range() and count support to Supabase wrapper
- Optimized batch queries with lookup maps

Database:
- Added migrations for schema evolution
- New tables: push_tokens, notification_settings
- Updated access model

iOS Build Scripts:
- build-ios.sh, clear-apple-cache.sh
- EAS configuration updates

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-20 11:05:39 -08:00

28 lines
713 B
Python

#!/usr/bin/env python3
import jwt
import time
import requests
key_id = 'GA9C2GRPHS'
issuer_id = 'dcac5647-0710-4764-affd-2d3270bf49d4'
with open('AuthKey_GA9C2GRPHS.p8', 'r') as f:
private_key = f.read()
token = jwt.encode(
{'iss': issuer_id, 'exp': int(time.time()) + 1200, 'aud': 'appstoreconnect-v1'},
private_key,
algorithm='ES256',
headers={'kid': key_id}
)
response = requests.get(
'https://api.appstoreconnect.apple.com/v1/apps',
headers={'Authorization': f'Bearer {token}'}
)
data = response.json()
print("Apps in App Store Connect:")
for app in data.get('data', []):
print(f" - {app['attributes']['name']}: {app['id']} (Bundle ID: {app['attributes']['bundleId']})")