Glossary
Product and tennisโ
Analysis โ The structured result associated with a completed video job. The app reads it from the job's result reference and derives visualizations, insights, progression, and practice recommendations.
NTRP โ A tennis skill-rating scale used in the player profile and onboarding. It is user-provided context, not an official rating issued by AceSense.
Practice recommendation โ A drill derived in the app from the weakest present stroke/session evidence. It is not a medical or guaranteed performance prescription.
Sample session โ A bundled, local demonstration job. It is not stored in Firestore and is excluded from progression calculations.
Session โ Product-facing record of a tennis recording and its analysis.
Processing state is held in jobs; the app also uses a sessions collection
for user-owned history data.
Jobs and storageโ
Job โ A server-created jobs/{jobId} document that tracks one processing
request and the references to its input and output artifacts.
Session ID โ A server-generated identifier used within per-user Storage paths. It is distinct from the Firestore job document ID.
Chunk โ A compatibility field/object-name convention retained by the
current upload contract. The Flutter app presently uploads one file with
chunkIndex: 0, totalChunks: 1, and isChunked: false; client-side splitting
is not active.
Terminal state โ done or failed. Terminal transitions release reserved
concurrency and complete/refund applicable commerce accounting idempotently.
Signed URL โ A time-limited URL granting access to a private Storage object. Provider handoff URLs use a 30-minute TTL; consumers must not log or persist them as stable object identifiers.
Identity and authorizationโ
Firebase ID token โ A short-lived signed token proving Firebase identity
and carrying claims such as admin or role.
Custom claim โ A server-controlled Firebase Auth attribute. admin: true
is the preferred admin gate; client-writable Firestore fields are never used
for authorization.
Admin allowlist โ The temporary, mirrored fallback that accepts a verified email when the admin claim has not propagated. See Admin Allowlist.
Session cookie โ The five-day HttpOnly cookie used by the private docs and launchpad servers after exchanging a verified Firebase ID token.
App Check โ Firebase application attestation. Callable enforcement is
enabled only when ENFORCE_APP_CHECK is exactly true.
Plans and accountingโ
Tier โ The canonical cross-provider entitlement key (free, premium, or
ultimate) used by the upload entitlement/monthly gate.
Plan โ The legacy/operational quota key (free, trial, pro, or team)
used for daily and concurrent upload limits. Code that maps tier to plan must
be reviewed when either vocabulary changes.
Quota slot โ A concurrent-upload reservation made atomically before job creation and released once on failure or completion.
API key balance โ Server-maintained prepaid balance used by public REST/MCP jobs. The raw key is shown only at creation; Firestore stores a hash and metadata.
Platformโ
Callable โ A Firebase HTTPS callable function with Firebase auth context
and structured HttpsError responses. Mobile/admin callers use
europe-west1 explicitly.
Cloud Task โ The retryable asynchronous dispatch step between accepted input and an external inference provider. It supersedes Firestore-trigger-only dispatch as the current queue mechanism.
Security Rules โ Firestore and Storage authorization evaluated for direct client access. Admin SDK operations bypass Rules and must enforce authorization in function code.
Control plane โ The Firebase-side auth, validation, orchestration, quota, billing, status, and retention code. External inference implementation is a separate boundary.
CSP nonce โ A cryptographically random value generated per private-site request and attached to allowed HTML script/style elements. It lets the strict Content Security Policy run required bootstraps without globally enabling inline scripts.
ADR โ Architecture Decision Record. It records the decision and context at a point in time; later code may supersede it, which must be stated explicitly.