How it works

Three steps, then change values whenever you need.

No values in the repository, no rebuild to rotate a key.

  1. 01

    Add your values

    Create variables for each app and environment in the dashboard.

  2. 02

    Initialize the SDK

    Pass the app ID, environment ID and API token when your app starts.

  3. 03

    Read them at runtime

    The SDK caches values on the device and downloads them again only when they change on the server.

Integration

A few lines in your app.

SDKs for Android, iOS, macOS, tvOS and Flutter. Use getAllSecureData to load variables and certificates in one call.

val smartGrow = SmartGrowSecure.init(
    appId = "your-app-id",
    environmentId = "your-environment-id",
    apiToken = "your-api-token",
    serverBaseUrl = "https://smartgrow.your-company.com",
    context = applicationContext,
)

val apiBaseUrl = smartGrow.getVariables()
    .first { it.key == "API_BASE_URL" }.value
Capabilities

What you get.

Every item here is something the product does today.

  • Per app and environment

    Development, QA and production each keep their own values.

  • Only your signed app

    Requests need the API token and your app's signing fingerprint.

  • Encrypted at rest and in transit

    Stored encrypted, and delivered over a post-quantum channel on top of HTTPS.

  • Secure cache on the device

    Values live in the Keychain or the Android Keystore between fetches.

  • Roles and audit log

    Limit who can read or change values, and see every change.

  • Active or inactive

    Disable a value without deleting it.

Stop shipping secrets inside your app.