Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions charts/portkey-app/docs/secret-manager-integration.md
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,8 @@ spec:
objectAlias: oauthRedirectURI
- path: oauthMetadataXml
objectAlias: oauthMetadataXml
- path: oauthVerifiedEmailDomains
objectAlias: oauthVerifiedEmailDomains
Comment on lines +150 to +151
- path: smtpHost
objectAlias: smtpHost
- path: smtpPort
Expand Down
25 changes: 25 additions & 0 deletions charts/portkey-app/docs/sso-setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,31 @@ config:

---

## Verified Email Domains

Domain verification from Organisation Settings relies on sending a verification email, which isn't possible in air-gapped deployments. Instead, declare your verified domains in `values.yaml`:

```yaml
config:
oauth:
enabled: true
# ...SAML/OIDC settings above...
verifiedEmailDomains:
- "acme.com" # exact domain: user@acme.com
- "*.acme.io" # domain and its subdomains: user@acme.io, user@eu.acme.io
```

`*.` only works on a root domain: `*.eng.acme.com` will **not** match `user@x.eng.acme.com`. List such subdomains explicitly (e.g. `x.eng.acme.com`) instead.

These domains:

* Are passed to the backend as the comma-separated `VERIFIED_EMAIL_DOMAINS` environment variable. This works with or without `config.existingSecretName`.
* Can alternatively come from a secret: leave `verifiedEmailDomains` empty and add an `oauthVerifiedEmailDomains` key (e.g. `acme.com,*.acme.io`) to the chart Secret / `existingSecretName` / your secret manager. If both are set, the `values.yaml` list wins.
* Apply to **every** organisation in the deployment, in addition to any domains verified from Organisation Settings.
* Are accepted wherever a verified domain is required: SSO sign-in domain checks, SCIM user creation, and invited users when auto-provisioning is disabled.

---

**Note:**

* Use only one `oauthType` (`saml` or `oidc`) in the config at a time.
Expand Down
11 changes: 11 additions & 0 deletions charts/portkey-app/templates/_helpers.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -372,6 +372,17 @@ Template containing common environment variables that are used by several servic
name: {{ include "portkey.secretsName" . }}
key: oauthMetadataXml
optional: true
{{- /* Plain value from values.yaml wins (works with or without existingSecretName); otherwise read the optional secret key. */}}
- name: VERIFIED_EMAIL_DOMAINS
{{- with .Values.config.oauth.verifiedEmailDomains }}
value: {{ (kindIs "slice" .) | ternary (join "," .) (toString .) | quote }}
{{- else }}
valueFrom:
secretKeyRef:
name: {{ include "portkey.secretsName" . }}
key: oauthVerifiedEmailDomains
optional: true
{{- end }}
{{- end }}
{{- if .Values.config.noAuth.enabled }}
- name: AUTH_MODE
Expand Down
5 changes: 5 additions & 0 deletions charts/portkey-app/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,11 @@ config:
oauthClientSecret: ""
oauthRedirectURI: ""
oauthMetadataXml: ""
# Email domains treated as verified for every organisation (in addition to
# domains verified from the UI, which needs outbound mail). Used for SSO/SCIM
# domain checks and invited-user provisioning. "*." also allows subdomains.
# e.g. ["acme.com", "*.acme.io"]
verifiedEmailDomains: []

smtp:
enabled: false
Expand Down
Loading