Insipio
Configuration
Insipio is configured through a combination of a JSON configuration file and environment variables. Environment variables always take precedence over values set in the file.
Principle 1: The Override Hierarchy
The system uses a simple, predictable override protocol. For any given setting, the tool looks for variables in this order:
- Tool-Specific (
INSIPIO_*): An environment variable starting withINSIPIO_is the most specific and will always be used if present. - Universal (
3SC_*): If anINSIPIO_*variable is not found, the tool looks for a corresponding3SC_*variable. - Value in
insipio/config.json: If no environment variable is set, the tool uses the value from the configuration file. - Hard-coded Default: If the setting is not present anywhere, the tool falls back to a safe, built-in default.
Principle 2: "WHERE vs. WHAT" for Secrets Management
This concept separates the connection to a vault from the secret being requested.
The "WHERE" (The Connection): These variables tell the tool where your secrets vault is and how to authenticate. You can define a global "WHERE" using
3SC_VAULT_*variables, and then override it for a specific task (like Git) usingINSIPIO_GIT_VAULT_*variables.The "WHAT" (The Secret Name): These variables tell the tool what specific secret to retrieve from the vault. For example,
INSIPIO_GIT_PAT_SECRET_NAMEtells the tool to ask the vault for the secret that holds the Git Personal Access Token.
The Golden Rule: If you define a "WHERE" for a task (either globally or with a scope-specific override), the tool will require you to provide the corresponding "WHAT".
Core Configuration
These variables control the primary logic of the analysis engine.
Variable (INSIPIO_*) |
Fallback (3SC_*) |
Required? | Purpose |
|---|---|---|---|
INSIPIO_FROM |
No | Overrides the fromCommit baseline defined in the config file. |
|
INSIPIO_MODE |
No | Overrides the analysis mode (e.g., Strict, Simulation, Standard). |
|
INSIPIO_VALIDATE_ONLY |
No | If true, runs the full analysis but does not push tags to Git. |
|
INSIPIO_NO_OP |
3SC_NO_OP |
No | If true, the tool runs but performs no actions. Useful for disabling the tool in specific environments. |
INSIPIO_LICENSE_SERVER_URL |
3SC_LICENSE_SERVER_URL |
Yes | The full URL of the 3SC License Server. |
INSIPIO_LICENSE_TIMEOUT_SECONDS |
3SC_LICENSE_TIMEOUT_SECONDS |
No | Timeout in seconds for license server requests. |
INSIPIO_LICENSE_RETRY_INTERVAL_SECONDS |
3SC_LICENSE_RETRY_INTERVAL_SECONDS |
No | Time in seconds to wait between license retry attempts. |
INSIPIO_LOG_LEVEL |
3SC_LOG_LEVEL |
No | The logging level. Defaults to Information. |
Tagging Configuration
These variables allow you to override the naming conventions for generated Git tags.
Variable (INSIPIO_*) |
Required? | Purpose | Example |
|---|---|---|---|
INSIPIO_TAG_TEMPLATE |
No | Template for the semantic version tag. | v{0}.{1}.{2} |
INSIPIO_MARKETING_TAG_TEMPLATE |
No | Template for the marketing version tag. | release-{0}.{1} |
INSIPIO_START_TAG |
No | The initial tag to apply if no tags exist. | v0.0.0 |
Language Selection
You must explicitly enable the language analyzers relevant to your project. At least one must be set to true.
Variable (INSIPIO_*) |
Default | Purpose |
|---|---|---|
INSIPIO_LANGUAGE_CSHARP |
false |
Enable analysis for C# (.NET). |
INSIPIO_LANGUAGE_JAVA |
false |
Enable analysis for Java. |
INSIPIO_LANGUAGE_PYTHON |
false |
Enable analysis for Python. |
INSIPIO_LANGUAGE_JAVASCRIPT |
false |
Enable analysis for JavaScript. |
INSIPIO_LANGUAGE_TYPESCRIPT |
false |
Enable analysis for TypeScript. |
INSIPIO_LANGUAGE_GO |
false |
Enable analysis for Go. |
INSIPIO_LANGUAGE_CPP |
false |
Enable analysis for C++. |
INSIPIO_LANGUAGE_RUST |
false |
Enable analysis for Rust. |
INSIPIO_LANGUAGE_KOTLIN |
false |
Enable analysis for Kotlin. |
INSIPIO_LANGUAGE_PHP |
false |
Enable analysis for PHP. |
INSIPIO_LANGUAGE_DART |
false |
Enable analysis for Dart. |
INSIPIO_LANGUAGE_RUBY |
false |
Enable analysis for Ruby. |
INSIPIO_LANGUAGE_SWIFT |
false |
Enable analysis for Swift. |
Git Configuration
Variable (INSIPIO_*) |
Fallback (3SC_*) |
Required? | Purpose |
|---|---|---|---|
INSIPIO_GIT_REPO_URL |
3SC_GIT_REPO_URL |
Yes¹ | The full HTTPS URL of the Git repository for remote clones. |
INSIPIO_GIT_BRANCH |
3SC_GIT_BRANCH |
Yes¹ | The specific branch to clone and commit to. |
INSIPIO_GIT_SUBDIRECTORY |
3SC_GIT_SUBDIRECTORY |
No | Path to a specific project within a monorepo to scope the operation. |
INSIPIO_FORCE_UNSAFE_GIT_PUSH |
3SC_FORCE_UNSAFE_GIT_PUSH |
No | Must be set to true to allow git push from an unsafe CI environment. |
INSIPIO_GIT_PAT |
3SC_GIT_PAT |
Conditional² | A Personal Access Token provided directly. (Not Recommended) |
INSIPIO_GIT_PAT_SECRET_NAME |
Conditional³ | The "WHAT": The name of the secret in a vault for the Git PAT. | |
INSIPIO_GIT_VAULT_TYPE |
3SC_VAULT_TYPE |
No | The scoped "WHERE": Overrides the Vault provider for Git operations only. |
INSIPIO_GIT_VAULT_URL |
3SC_VAULT_URL |
Conditional | The scoped "WHERE": The endpoint for the vault used for the Git PAT. |
INSIPIO_GIT_AZURE_CLIENT_ID |
3SC_AZURE_CLIENT_ID |
Conditional | The scoped "WHERE": Azure SP Client ID for the Git PAT vault. |
INSIPIO_GIT_AZURE_CLIENT_SECRET |
3SC_AZURE_CLIENT_SECRET |
Conditional | The scoped "WHERE": Azure SP Client Secret for the Git PAT vault. |
INSIPIO_GIT_AZURE_TENANT_ID |
3SC_AZURE_TENANT_ID |
Conditional | The scoped "WHERE": Azure Tenant ID for the Git PAT vault. |
INSIPIO_GIT_AWS_ACCESS_KEY_ID |
3SC_AWS_ACCESS_KEY_ID |
Conditional | The scoped "WHERE": AWS Access Key ID for the Git PAT vault. |
INSIPIO_GIT_AWS_SECRET_ACCESS_KEY |
3SC_AWS_SECRET_ACCESS_KEY |
Conditional | The scoped "WHERE": AWS Secret Access Key for the Git PAT vault. |
INSIPIO_GIT_GOOGLE_APPLICATION_CREDENTIALS |
GOOGLE_APPLICATION_CREDENTIALS |
Conditional | The scoped "WHERE": Path to GCP service account key for the Git PAT vault. |
INSIPIO_GIT_VAULT_TOKEN |
3SC_VAULT_TOKEN |
Conditional | The scoped "WHERE": The HashiCorp Vault token for the Git PAT vault. |
¹ Required only if the tool needs to perform a remote git clone.
² Required for private repositories if not using a Vault.
³ Required for private repositories if INSIPIO_GIT_VAULT_TYPE or 3SC_VAULT_TYPE is set.
Observability (Firehose) Configuration
Variable (INSIPIO_*) |
Fallback (3SC_*) |
Required? | Purpose |
|---|---|---|---|
INSIPIO_LOG_ENDPOINT_URL |
3SC_LOG_ENDPOINT_URL |
No | The URL for the Firehose endpoint. Feature disabled if not set. |
INSIPIO_LOG_ENDPOINT_TOKEN |
3SC_LOG_ENDPOINT_TOKEN |
Conditional¹ | A direct authentication token for the endpoint. |
INSIPIO_LOG_ENDPOINT_TOKEN_SECRET_NAME |
Conditional² | The "WHAT": The name of the secret in a vault for the token. | |
INSIPIO_LOG_VAULT_TYPE |
3SC_VAULT_TYPE |
No | The scoped "WHERE": Overrides the Vault provider for Logging operations only. |
INSIPIO_LOG_VAULT_URL |
3SC_VAULT_URL |
Conditional | The scoped "WHERE": The endpoint for the vault used for the Firehose token. |
INSIPIO_LOG_AZURE_CLIENT_ID |
3SC_AZURE_CLIENT_ID |
Conditional | The scoped "WHERE": Azure SP Client ID for the Firehose token vault. |
INSIPIO_LOG_AZURE_CLIENT_SECRET |
3SC_AZURE_CLIENT_SECRET |
Conditional | The scoped "WHERE": Azure SP Client Secret for the Firehose token vault. |
INSIPIO_LOG_AZURE_TENANT_ID |
3SC_AZURE_TENANT_ID |
Conditional | The scoped "WHERE": Azure Tenant ID for the Firehose token vault. |
INSIPIO_LOG_AWS_ACCESS_KEY_ID |
3SC_AWS_ACCESS_KEY_ID |
Conditional | The scoped "WHERE": AWS Access Key ID for the Firehose token vault. |
INSIPIO_LOG_AWS_SECRET_ACCESS_KEY |
3SC_AWS_SECRET_ACCESS_KEY |
Conditional | The scoped "WHERE": AWS Secret Access Key for the Firehose token vault. |
INSIPIO_LOG_GOOGLE_APPLICATION_CREDENTIALS |
GOOGLE_APPLICATION_CREDENTIALS |
Conditional | The scoped "WHERE": Path to GCP service account key for the Firehose token vault. |
INSIPIO_LOG_VAULT_TOKEN |
3SC_VAULT_TOKEN |
Conditional | The scoped "WHERE": The HashiCorp Vault token for the Firehose token vault. |
¹ Required if URL is set and not using a Vault.
² Required if URL is set and a Vault (INSIPIO_LOG_VAULT_TYPE or 3SC_VAULT_TYPE) is configured.
Licensing & Degraded Mode
- If a valid license cannot be acquired, Insipio runs in a Degraded Mode.
- In this mode, it performs the full semantic analysis and logs its findings to the console, but it will not generate any artifacts or push any tags to your Git repository.