> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stigg.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Sidecar SDK

<Update label="7.9.0" description="2026-06-10">
  * Synchronized release.
</Update>

<Update label="7.8.0" description="2026-06-10">
  * Synchronized release.
</Update>

<Update label="7.7.0" description="2026-06-10">
  * Synchronized release.
</Update>

<Update label="7.6.0" description="2026-06-10">
  * Synchronized release.
</Update>

<Update label="7.5.0" description="2026-06-09">
  * Synchronized release.
</Update>

<Update label="7.4.0" description="2026-06-09">
  * Synchronized release.
</Update>

<Update label="7.3.0" description="2026-06-09">
  * Synchronized release.
</Update>

<Update label="7.2.0" description="2026-06-09">
  * Synchronized release.
</Update>

<Update label="7.1.0" description="2026-06-09">
  * Synchronized release.
</Update>

<Update label="7.0.0" description="2026-06-09">
  * **Breaking change (Go SDK only)**: The Go module path has changed from `github.com/stiggio/sidecar-sdk-go/v6` to `github.com/stiggio/sidecar-sdk-go/v7`. Other language SDKs are unaffected.

  ### Migration steps

  1. Update your `go.mod` and import paths from `github.com/stiggio/sidecar-sdk-go/v6` to `github.com/stiggio/sidecar-sdk-go/v7`.
  2. Run `go mod tidy` and update any references to `sidecarv1 "github.com/stiggio/sidecar-sdk-go/v6/generated/stigg/sidecar/v1"` to use `/v7`.
</Update>

<Update label="6.70.2" description="2026-04-14">
  * Security: Upgraded axios dependency to address critical vulnerability [CVE-2026-40175](https://nvd.nist.gov/vuln/detail/CVE-2026-40175).
</Update>

<Update label="6.61.0" description="2026-03-31">
  * Added: `hasSoftLimit` to metered entitlements, indicating whether the entitlement is configured with a soft usage limit.
</Update>

<Update label="6.7.3" description="2026-03-17">
  * Added: `getCreditEntitlement()` method for low-latency retrieval of customer credit balance from the local cache.
  * Added: Support for provisioning subscriptions with variable recurring credit grant entitlements.
</Update>

<Update label="6.2.0" description="2026-03-09">
  * **Breaking change (Go SDK only)**: The Go module path has changed from `github.com/stiggio/sidecar-sdk-go/v5` to `github.com/stiggio/sidecar-sdk-go/v6`. Other language SDKs are unaffected.

  ### Migration steps

  1. Update your `go.mod` and import paths from `github.com/stiggio/sidecar-sdk-go/v5` to `github.com/stiggio/sidecar-sdk-go/v6`.
  2. Run `go mod tidy` and update any references to `sidecarv1 "github.com/stiggio/sidecar-sdk-go/v5/generated/stigg/sidecar/v1"` to use `/v6`.
</Update>

<Update label="5.255.2" description="2026-02-25">
  * Added: `displayName`, `description`, `unitSingular`, `unitPlural`, and `additionalMetaData` to the credit currency details returned by `getEntitlementV2` and `getEntitlementsStateV2`.
</Update>

<Update label="5.226.2" description="2026-02-16">
  * Added: `getEntitlementV2` and `getEntitlementsStateV2` methods, returning a unified entitlement type (boolean, numeric, metered, enum, or credit) including credit balance and currency details.
</Update>

<Update label="5.166.0" description="2026-01-25">
  * Added: `AccessDeniedReason.EntitlementNotFound` for determining when an entitlement was denied because no matching entitlement exists.
</Update>

<Update label="5.81.0" description="2025-12-18">
  * Added `ReportUsageBulk` method.
</Update>

<Update label="5.57.3" description="2025-12-02">
  * Added: `accessDeniedReason` to the response of `getEntitlements`, indicating why access may be denied when retrieving all of a customer's entitlements at once.
</Update>

<Update label="5.43.1" description="2025-11-25">
  * **Breaking change (Go SDK only)**: The Go module path has changed from `github.com/stiggio/sidecar-sdk-go/v4` to `github.com/stiggio/sidecar-sdk-go/v5`. Other language SDKs are unaffected.

  ### Migration steps

  1. Update your `go.mod` and import paths from `github.com/stiggio/sidecar-sdk-go/v4` to `github.com/stiggio/sidecar-sdk-go/v5`.
  2. Run `go mod tidy` and update any references to `sidecarv1 "github.com/stiggio/sidecar-sdk-go/v4/generated/stigg/sidecar/v1"` to use `/v5`.
</Update>

<Update label="4.0.0" description="2025-10-29">
  * **Breaking change**: Entitlements retrieval logic now correctly identifies the underlying cause for missing entitlements, whether due to no active subscription, a missing customer, or no assigned entitlements.
  * Note: If using a Persistent Caching Service, it must be updated before upgrading the Sidecar to ensure data integrity.

  ### Migration steps

  1. Upgrade the Persistent Caching Service image to version `2.40.1` or later.
  2. Upgrade the Sidecar SDK to version `4.0.0` or later.
</Update>

<Update label="3.79.0" description="2025-09-29">
  * Added `getCreditLedger` and `getCreditUsage` methods.
</Update>

<Update label="3.78.0" description="2025-09-29">
  * Added void credit grant `voidCreditGrant`.
</Update>

<Update label="3.77.0" description="2025-09-29">
  * Added credit balance subscription handling with automatic entitlement updates, expiration checks, and cache mapping for credit rate and validity.
</Update>

<Update label="3.76.0" description="2025-09-25">
  * Added credit rate mapping.
</Update>

<Update label="3.75.0" description="2025-09-23">
  * Added `awsMarketplaceCustomerId` to update and provision customers.
</Update>

<Update label="3.72.0" description="2025-09-04">
  * Added: `grantPromotionalEntitlementsGroup` or granting a promotional entitlements group - all entitlements that are not already granted to a customer, need to be included in the request.
  * Added: `revokePromotionalEntitlementsGroup` for revoking all of the entitlements of a group, unless they are a part of a different group.
  * Added: `unlinkPromotionalEntitlementsGroup` for removing the references of the group from promotional entitlements that are a part of it, while keep granting access to those entitlements.
</Update>

<Update label="3.61.0" description="2025-09-02">
  * Added: `CancelSubscription.awaitSubscriptionCancellation` for controlling whether to wait for confirmation from billing solutions that are integrated with Stigg before marking subscription as canceled in Stigg
</Update>

<Update label="3.56.0" description="2025-08-28">
  * Added: `getEntitlement` method - a unified way to check any type of feature entitlement (boolean, numeric, or metered) that automatically returns the appropriate entitlement type based on the feature configuration
</Update>

<Update label="3.47.1" description="2025-08-27">
  * Added: `AccessDeniedReason.Revoked` for determining when an entitlement has been explicitly revoked.
</Update>

<Update label="3.0.0" description="2025-08-4">
  **Breaking change**: The TLS connection method has been deprecated in favor of non-TLS. Please ensure you are running a compatible Sidecar image version `2.494.0` or later. TLS self-signed certificates will **expire on January 26, 2026**, so upgrading the Sidecar image is strongly recommended.

  ### Migration steps

  1. Upgrade the Sidecar image to version 2.498.0 or later. The new non-TLS port is set using the `GRPC_PORT` environment variable (default: 80). For backwards compatibility, legacy TLS is still supported and can be configured with the `PORT` environment variable (default: 8443).
  2. Upgrade the Sidecar SDK to version 3.0.0 or later and send requests to the new non-TLS port (same as `GRPC_PORT`). This applies to all SDK programming languages.

  ### Backwards compatibility with older Sidecar image versions

  For backwards compatibility, you can enable the legacy TLS mode in the SDKs by opt-in the legacy TLS flag.

  <CodeGroup>
    ```python Python theme={null}
    stigg = Stigg(ApiConfig(api_key=api_key), remote_sidecar_use_legacy_tls=True)
    ```

    ```ruby Ruby theme={null}
    client = Stigg::Sidecar.create_client(api_config, remote_sidecar_use_legacy_tls: true)
    ```

    ```java Java theme={null}
    stigg = Stigg.init(
      StiggConfig.builder()
        .apiConfig(ApiConfig.newBuilder().setApiKey(apiKey).build())
        .remoteSidecarUseLegacyTls(true)
        .build()
    );
    ```

    ```go Go theme={null}
    client, err := NewSidecarClient(ApiClientConfig{ApiKey: apiKey}, nil, nil, RemoteSidecarConfig{useLegacyTls: true})
    ```
  </CodeGroup>
</Update>

<Update label="2.485.0" description="2025-07-29">
  * Added: `getEnumEntitlement` method for checking enum-type feature entitlements.
</Update>

<Update label="2.420.0" description="2025-06-11">
  * Added: Support for [local evaluation of static entitlements](/api-and-sdks/integration/backend/sidecar#running-in-offline-or-air-gapped-environments) in the **Java SDK**.\
    Applications can now evaluate entitlements offline using a static config, without requiring real-time API calls to the Sidecar service.\
    This is especially useful for air-gapped, on-premise, or secure environments.
</Update>

<Update label="2.413.0" description="2025-05-28">
  * Changed: The [health](/documentation/high-availability-and-scale/sidecar/service-monitoring#health) and [metrics](/documentation/high-availability-and-scale/sidecar/service-monitoring#metrics) endpoints are now exposed over **HTTP** by default on port `8080`, instead of HTTPS with a self-signed certificate.
  * Added: You can configure the health and metrics port using the `METRICS_PORT` environment variable.
</Update>

<Update label="2.401.4" description="2025-05-19">
  * Improved: The Sidecar no longer crashes on startup when encountering initialization issues such as an invalid API key or unreachable Stigg API. It now starts in fallback mode and serves entitlements from Redis or fallback values.
  * Added: `/metrics` endpoint exposing service-level and Sidecar-specific metrics in [Prometheus](https://prometheus.io/) format, including:
    * `sidecar_initialization_errors_total`
    * `sidecar_invalid_api_key_errors_total`
    * `sidecar_network_request_errors_total`
    * `sidecar_redis_client_errors_total`
    * `sidecar_cache_hits_total`
    * `sidecar_cache_misses_total`
</Update>

<Update label="2.236.1" description="2024-12-25">
  * Added: [offline mode](/documentation/high-availability-and-scale/sidecar/offline-mode)
</Update>

<Update label="2.186.0" description="2024-11-05">
  * Added: Edge support for `getActiveSubscriptionsList`
</Update>

<Update label="2.171.0" description="2024-10-29">
  * Fixed: when access to entitlement was denied due to the reaching of a budget cap, `getMeteredEntitlements`  returned `AccessDeniedReason.UNSPECIFIED` instead of `AccessDeniedReason.BudgetExceeded`.
</Update>

<Update label="2.156.0" description="2024-10-09">
  * Added: ability to more easily determine the usage period of metered entitlements using:
    * `Entitlement.usagePeriodStart`
    * `Entitlement.usagePeriodEnd`
</Update>

<Update label="2.112.1" description="2024-09-07">
  * **Breaking change (Go SDK only)**: `NewSidecarClient` now returns `*SidecarClient` (a struct) instead of an interface. `ApiClientConfig` fields (`ApiKey`, `HttpClient`, `BaseUrl`) are now exported, and `Api` is now an exported field instead of an `Api()` method.
</Update>

<Update label="2.95.0" description="2024-08-27">
  * Added: ability to set sidecar log level using env var (default: `INFO`)
</Update>

<Update label="2.48.0" description="2024-07-28">
  * Added: ability to configure the "health" and "ready" endpoints by passing `HEALTH_ENDPOINT_URL` and `READY_ENDPOINT_URL` environment variables
</Update>
