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

# Use an environment-secret mapping for a saved credential

> Create a named reference and use its value through a matching credential.

How-to guideApplies to: Unified engine deployments

Create a named reference and use its value through a matching credential.

## Before you start

Have an administrator configure the engine provider alias recipe\_env before
running SQL. Configure type environment with variables = \{ catalog\_token =
"CATALOG\_TOKEN" }. Supply CATALOG\_TOKEN to the secret-service process. SQL
selects the mapped secret name; it does not look up arbitrary environment
variables. See
[provider configuration](https://docs.e6data.com/transformation/operations/configuration/secrets.md#environment-provider).

The selected value must be raw bearer-token text accepted by an existing Iceberg
REST catalog. Have its API URI, warehouse, namespace, and nonempty table ready.
The service must provide usable temporary storage credentials or already
configured storage access.

## Values to collect

* A configured provider alias, secret identifier, and the data connection values
  shown below.

## Run the SQL

Replace every `<placeholder>` before running. Use unused names for the resources
below. Run the statements in order in Workbench.

```sql theme={"theme":{"light":"github-light","dark":"github-dark"}}
CREATE SECRET recipe_environment_secret USING 'recipe_env://catalog_token';
DESCRIBE SECRET recipe_environment_secret;

CREATE CREDENTIAL recipe_environment_reader USING bearer
OPTIONS (
  'authentication' = 'saved'
)
SECRETS ('token' = 'recipe_environment_secret');

CREATE CATALOG recipe_environment USING `iceberg-rest`
OPTIONS (
  'uri' = '<catalog-api-uri>',
  'warehouse' = '<warehouse>',
  'auth.type' = 'bearer',
  'header.x-iceberg-access-delegation' = 'vended-credentials'
)
CREDENTIALS ('auth' = 'recipe_environment_reader');

SELECT *
FROM recipe_environment.`<namespace>`.`<table>`
LIMIT 5;
```

## Check the result

DESCRIBE shows the provider reference, not its plaintext value. The SELECT
should return actual table or file rows and proves that the consumer can resolve
and use the selected secret.

## Clean up

This removes only the Unified registrations. It leaves the remote catalog and
its tables in place.

```sql theme={"theme":{"light":"github-light","dark":"github-dark"}}
DROP CATALOG recipe_environment;
DROP CREDENTIAL recipe_environment_reader;
DROP SECRET recipe_environment_secret;
```

The external secret value and its provider mapping are left in place.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.