Files
theta-suite/config.example/proxy-secrets.js.example
T
wmantly e46768bb68 chore(release): public-release readiness fixes for 1.1.18
- CHANGELOG.md now embeds full app-level release notes for submodule bumps.
- .env.example uses explicit CHANGE-ME placeholders instead of realistic-looking defaults.
- config.example comments describe the actual CONF_SECRETS mechanism.
- setup.sh summary no longer prints generated passwords to stdout.
- bootstrap.js fails hard instead of falling back to weak default passwords.

Note: submodule pins will be updated to v1.1.16 after the app PRs merge.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-18 22:11:13 -04:00

49 lines
2.0 KiB
Plaintext

'use strict';
// Example proxy secrets for the theta-env unified stack. Copy to
// ./config/proxy-secrets.js (NOT this file — ./config/ is gitignored) and edit.
// `./setup.sh` generates ./config/proxy-secrets.js for you on first run and the
// bootstrap writes the OAuth client clientId/clientSecret back into it; this
// file documents the shape for manual editing / reference.
//
// The proxy app reads this via @simpleworkjs/conf (docker-entrypoint.sh sets
// CONF_SECRETS to point at it). Never commit ./config/.
module.exports = {
oidc: {
enabled: true,
issuer: 'https://sso.example.com',
authorizationEndpoint: 'https://sso.example.com/oauth/authorize',
// token/userinfo use the internal docker-network URL (no TLS hairpin):
tokenEndpoint: 'http://sso-manager:3001/oauth/token',
userinfoEndpoint: 'http://sso-manager:3001/oauth/userinfo',
endSessionEndpoint: 'https://sso.example.com/oauth/logout',
clientId: 'FILLED-IN-BY-BOOTSTRAP', // leave as-is; bootstrap sets it
clientSecret: 'FILLED-IN-BY-BOOTSTRAP', // leave as-is; bootstrap sets it
redirectUri: 'https://proxy.example.com/api/auth/oidc/callback',
scopes: ['openid', 'profile', 'email', 'groups'],
groupsClaim: 'groups',
usernameClaim: 'preferred_username',
},
ldap: {
// LDAPS over the docker network; the SSO's self-signed cert is trusted
// via tlsOptions.rejectUnauthorized:false.
url: 'ldaps://sso-manager:636',
bindDN: 'cn=ldapclient,ou=people,dc=example,dc=com',
// MUST equal serviceAccountPass in sso-secrets.js (the proxy binds as
// that service account). setup.sh keeps them in sync on generation.
bindPassword: 'CHANGE-ME',
searchBase: 'ou=people,dc=example,dc=com',
userFilter: '(objectClass=posixAccount)',
userNameAttribute: 'uid',
tlsOptions: { rejectUnauthorized: false },
},
auth: {
adminGroups: ['app_sso_admin'], // SSO group -> global proxy admin
adminUsers: ['proxyadmin2'], // local anti-lockout admin
groupRoleMap: {},
},
stack: {
ssoHost: 'sso.example.com',
proxyHost: 'proxy.example.com',
},
};