đ§Š Dex configuration guide
âšī¸ The dex-config.yaml.example file contains Dex configuration
template. Duplicate config/dex-config.yaml.example to
config/dex-config.yaml.
đ Files
dex-config.yaml.example: template for local/passwordDB mode
âī¸ Common options used
đ issuer
Set to http://localhost:5556/dex.
This must match the URL used by the web client (REACT_APP_AUTH_AUTHORITY)
and the Dex companion/proxy endpoint.
storage.type: memory
In-memory state for local/dev usage. Tokens, keys, and sessions reset when the Dex container is recreated.
đ web.http: 0.0.0.0:5556
Dex listens on container port 5556.
đ web.allowedOrigins: ['*']
Permissive CORS setting for localhost development.
đĒĒ staticClients
A single client is configured:
id: mockredirectURIs: ['http://localhost/Library']public: true(no client secret required; suitable for browser SPA)
đ Local/passwordDB file (dex-config.yaml)
âŗ expiry.idTokens: "2h"
Matches the expected local-dev behaviour with 2-hour ID tokens.
â
oauth2.skipApprovalScreen: true
Removes consent page during login for simpler local workflows.
đ¤ enablePasswordDB: true + staticPasswords
Enables Dex local user authentication with static users.
Configured user fields:
email: login identifier used on Dex login screenhash: bcrypt hash of the passwordusername/name/preferredUsername: identity claims returned by Dexgroups: included whengroupsscope is requesteduserID: stable Dex subject identifier
âšī¸ In dex-config.yaml.example, the sample user password is user
(bcrypt-hashed).
đ Generate a bcrypt password hash
Use the generated value for the hash field in staticPasswords.
Install the Python dependency if needed:
Generate a bcrypt hash interactively:
â
Copy the printed hash into config/dex-config.yaml
as the value of hash.
đ¤ Username alignment with .env
DTaaS routes and workspace paths use .env value DEFAULT_USER.
For local/passwordDB mode, keep these aligned:
.env:DEFAULT_USER=<your-user>config/dex-config.yaml: set static userusernameandpreferredUsernameto the same<your-user>
â This prevents path mismatches in user-scoped URLs.