Overview
Legacy Native Users define the upstream credentials used by Resources that have not migrated to new Native Users.A new version of Native Users is available with Formal Connector version
2.17.0 or later. See the
migration guide for configuration steps.
How legacy selection works
A legacy Native User contains an upstream username, secret, and optional default setting. You can assign one Native User directly to a Formal User or Group. Group members inherit the Group’s assignment. A Formal User with a direct assignment cannot join a Group that also has an assignment. Remove the direct assignment first. Clients can request a specific Native User with the@<native_user> connection
username suffix.
- Web
- Terraform
Create a legacy Native User
- Go to Resources and open the Resource.
- Select Authentication.
- Confirm that the page shows the legacy Native Users interface.
- Click Add User.
- Select an authentication method.
- Enter the upstream username and credential values.
- Set Use as Default when this user should handle unmatched sessions.
- Click Create.
Reference a Connector environment variable
Set the secret toENV:<VARIABLE_NAME>:DB_READONLY_PASSWORD when it resolves the credential.Use legacy IAM authentication
Legacy Native Users encode cloud authentication in the secret field:For AWS database authentication, the username is the IAM-enabled database
user. The Connector identity needs
rds-db:connect permission for that user.For GCP Cloud SQL, use the service account email without the
.gserviceaccount.com suffix as the username.For Azure Database, use the Microsoft Entra principal provisioned as the
database login.Configure a legacy Snowflake key pair
Create a Password Native User and store the PEM-encoded private key in its secret field. The Connector detects the PEM format and usesSNOWFLAKE_JWT.Snowflake clients must also select the SNOWFLAKE_JWT authenticator.Configure legacy HTTP credentials
Legacy HTTP Native Users store a JSON document in the secret field.Use this shape for HTTP Basic authentication:Configure a legacy SSH certificate
Legacy SSH certificate authentication stores a JSON document in the secret:Assign a legacy Native User
- Select the Native User from the Authentication tab.
- Find Linked Identities.
- Click Add beside Formal Users or Formal Groups.
- Select the identities and click Add.
Request a legacy Native User
Append@<native_user> to the Formal username:
Use legacy values in policies
input.native_user contains the upstream username. The
input.native_user_assignment value can be:
This policy blocks a privileged legacy username:
Migrate to new Native Users
A new version of Native Users is available with typed credentials, hooks, and default Native User selection. This guide explains how to configure it.- Web
- Terraform
New Native Users require Connector version 2.17.0 or later. Upgrade every
Connector serving this Resource before opting in.
1
Preview and create new Native Users
Click the Preview button to add new Native Users. Previewed changes are saved,
but Connectors continue using legacy credentials. Formal does not copy
legacy secrets into the replacements.Create one replacement for each legacy Native User:
For an
ENV:<NAME> secret, choose Environment Variable and enter
<NAME>. Do not include the ENV: prefix.New Native Users use labels for
explicit Native User selection,
rather than usernames. If you rely on a specific username for selection,
match the new label to the legacy username.
2
Replace identity links with a default selection
Legacy identity links do not migrate automatically. Recreate their behavior
in Default Native User with CEL.Place specific User rules before Group rules, then return the legacy default:You can retrieve native user IDs by clicking the respective row in the Native Users table.See
select a default Native User
for supported identity fields and more examples.
3
Review policies
New Native Users expose their label through
input.native_user. Preserve
legacy usernames as labels to keep these comparisons stable.Update policies that inspect input.native_user_assignment. New Native
Users return cel or user-requested instead of legacy assignment values.4
Activate and verify
Click Opt in, enter
confirm, and complete these checks:- Connect without a label and confirm the expected default selection.
- Connect as an identity with a User or Group rule.
- Connect with
@<label>if clients request Native Users explicitly. - Confirm the upstream identity and policy result in session logs.
5
Roll back if needed
To roll back, click Roll back and enter
confirm. The Resource resumes
using its stored legacy configuration.New Native Users and their selection remain stored. Fix the configuration,
then opt in again.