Core concepts
Projects and environments
Section titled “Projects and environments”A project represents the product you are integrating. Environments separate its configuration and runtime data. An OAuth M2M client is bound to a project and environment; API requests do not select an environment by passing a name in the body.
The Streakline service host and your project’s environment are separate choices. The QA API host selects the QA service. The credential selects the customer environment within that service.
Configuration and releases
Section titled “Configuration and releases”Define your event vocabulary and rules in the workspace. Release a configuration to the target environment before sending runtime events. Changing a draft does not change the environment’s active configuration.
Streakline uses customer-defined keys for events, streaks, balances, and store items. Examples in these guides are illustrative. Replace them with keys from your released configuration.
Events and score
Section titled “Events and score”An event records an occurrence in your product. Its type selects the scoring rule; its idempotency key identifies the occurrence. The same event type can occur many times with different keys.
The server applies the active rules, including cooldowns and daily caps. A client SDK can predict progress from a cached model, but that prediction is not a committed server result.
Levels and streaks
Section titled “Levels and streaks”Levels derive from score and the configured level curve. Configured streaks use customer-owned definition keys with daily, weekly, or monthly periods. Each definition can require one or more event types and minimum counts.
A profile’s streaks map contains the state for those definitions. Use those keys when displaying or importing configured streak progress.
Balances and store purchases
Section titled “Balances and store purchases”Balances are named quantities in a profile’s balances map. A trusted server can purchase a released store item, spend its configured balance, and apply its grant atomically. Purchasing requires the store:purchase scope.
Identity
Section titled “Identity”Use a stable internal user UUID from your application. Credentials, profile state, and offline queues are tied to that identity. Your backend authenticates the customer and decides which user they are allowed to act as.
cacheNamespace separates local SDK storage between installations or environments. It does not grant access to an environment or user.