Agent Skills: Spice Secret Stores

Configure secret stores in Spice — environment variables, Kubernetes, AWS Secrets Manager, and OS keyring. Use this skill whenever the user needs to manage credentials, API keys, passwords, or tokens in Spice, reference secrets in spicepod.yaml params with ${ store:KEY } syntax, set up .env files, configure secret store precedence, or understand how the `secrets:` section works. Also use when the user asks how to pass database passwords or API keys securely to Spice datasets or models.

UncategorizedID: spiceai/skills/spice-secrets

Install this agent skill to your local

pnpm dlx add-skill https://github.com/spiceai/skills/tree/HEAD/skills/spice-secrets

Skill Files

Browse the full folder contents for spice-secrets.

Download Skill

Loading file tree…

skills/spice-secrets/SKILL.md

Skill Metadata

Name
spice-secrets
Description
Configure secret stores in Spice — environment variables, Kubernetes, AWS Secrets Manager, and OS keyring. Use this skill whenever the user needs to manage credentials, API keys, passwords, or tokens in Spice, reference secrets in spicepod.yaml params with ${ store:KEY } syntax, set up .env files, configure secret store precedence, or understand how the `secrets:` section works. Also use when the user asks how to pass database passwords or API keys securely to Spice datasets or models.

Spice Secret Stores

Secret stores manage sensitive data like API keys, passwords, and tokens. The env store is loaded by default.

Basic Configuration

secrets:
  - from: <store_type>
    name: <store_name>

Supported Secret Stores

| Store | From Format | Description | |-------|-------------|-------------| | Environment | env | Environment variables + .env / .env.local files (default) | | Kubernetes | kubernetes:<secret_name> | Kubernetes secrets | | AWS Secrets Manager | aws_secrets_manager | AWS Secrets Manager | | Keyring | keyring | OS keyring (macOS Keychain, Linux, Windows) |

Default: Environment Variables

Loaded automatically. Reads from environment variables and any .env.local or .env files in the project directory.

secrets:
  - from: env
    name: env

Referencing Secrets

Use ${ store_name:KEY_NAME } syntax in component parameters:

datasets:
  - from: postgres:my_table
    name: my_table
    params:
      pg_user: ${ env:PG_USER }
      pg_pass: ${ env:PG_PASSWORD }

models:
  - from: openai:gpt-4o
    name: gpt4
    params:
      openai_api_key: ${ secrets:OPENAI_API_KEY }

Also works within strings:

params:
  mysql_connection_string: mysql://${env:USER}:${env:PASSWORD}@localhost:3306/db

Searching All Stores

Use ${ secrets:KEY } to search all configured stores in precedence order (last defined wins):

secrets:
  - from: env
    name: env
  - from: keyring
    name: keyring

datasets:
  - from: postgres:my_table
    name: my_table
    params:
      pg_user: ${ secrets:pg_user }     # checks keyring first, then env
      pg_pass: ${ secrets:pg_pass }

The <key_name> is automatically uppercased for the env secret store.

Examples

Kubernetes Secrets

secrets:
  - from: kubernetes:my-app-secrets
    name: k8s

AWS Secrets Manager

secrets:
  - from: aws_secrets_manager
    name: aws
    params:
      aws_region: us-east-1

Override Order (env overrides keyring)

secrets:
  - from: keyring
    name: keyring
  - from: env
    name: env

Documentation