-
-
Notifications
You must be signed in to change notification settings - Fork 0
Add Proxy and dex to embed Apache Services #293
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
F3l1x1vo
wants to merge
17
commits into
feat/app-bookmark-dialog
from
feat/bookmark-sidebar-changed-headers-proxy
Closed
Changes from all commits
Commits
Show all changes
17 commits
Select commit
Hold shift + click to select a range
e33a897
#270 add bookmark dialog
F3l1x1vo 664bfa4
add edit bookmarks dialog
F3l1x1vo 2ddd216
fix cancel editing bookmark
F3l1x1vo fbfa6e6
fix darkmode for icons, cursor pointer over boxes
F3l1x1vo f1e3bf8
update product icons to use colored versions where possible
F3l1x1vo 740391c
scaled icons down to 64x64
F3l1x1vo 461a3c4
Revert "scaled icons down to 64x64"
F3l1x1vo 6543a9b
revert image downscale, use svelte enhanced image component to downsc…
F3l1x1vo aff6337
#275 allow users to pin bookmarks
F3l1x1vo d3ab899
#275 #280 add bookmarks to sidebar navigation, show external apps in …
F3l1x1vo fd9f49b
add dex to enable SSO in iframes
F3l1x1vo 0c62d2c
add reverse proxy for airflow
F3l1x1vo 0f4223b
add tech debt for embed
F3l1x1vo 8f574c6
use correct url
F3l1x1vo 5a704fb
fix airflow url
F3l1x1vo a3820ff
add dex and share keycloak session with embeds
F3l1x1vo 8cfb52b
use keycloak users in embedded services
F3l1x1vo File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The TECH_DEBT.md file is retired in favor of using gh issues |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,67 @@ | ||
| # dex — the OIDC identity broker for the Stackable Cockpit dev stack. | ||
| # | ||
| # dex fronts the "customer" OIDC provider — the Keycloak deployed by | ||
| # dev/setup.sh into the kind/k3s cluster (realm `stackable`, NodePort :30080) — | ||
| # and presents itself as the single OIDC issuer for the cockpit and any | ||
| # embedded external services. Because Stackable controls this dex instance, | ||
| # external service login flows can run inside iframe embeddings without | ||
| # loosening the upstream provider's frame/CSP headers, and one dex session is | ||
| # shared across the whole surface (SSO). | ||
| # | ||
| # It is deliberately served on `http://localhost:5556` — the SAME site as the | ||
| # cockpit (`http://localhost:5173`). That keeps dex's session cookie at | ||
| # SameSite=Lax and still lets Chrome send it on cross-site iframe navigations | ||
| # (SameSite is evaluated against the top-level site), so embedded services can | ||
| # silently reuse the SSO session. | ||
| # | ||
| # dev/setup.sh creates the matching `dex` client in the Keycloak realm and | ||
| # points the cockpit at this broker automatically when it detects | ||
| # http://localhost:5556/.well-known/openid-configuration. | ||
| # | ||
| # NOTE: Keycloak must be up before dex starts — dex opens its connector at | ||
| # startup and exits if discovery fails. | ||
| issuer: http://localhost:5556 | ||
|
|
||
| storage: | ||
| type: memory | ||
|
|
||
| web: | ||
| http: 0.0.0.0:5556 | ||
|
|
||
| expiry: | ||
| idTokens: '24h' | ||
| signingKeys: '6h' | ||
|
|
||
| oauth2: | ||
| # Never show dex's consent/approval screen — login implies consent, which | ||
| # would otherwise render inside cockpit iframe embeddings. | ||
| skipApprovalScreen: true | ||
| # Single connector, so dex redirects straight to Keycloak (no connector | ||
| # selection page) unless a session already exists. | ||
| alwaysShowLoginScreen: false | ||
|
|
||
| staticClients: | ||
| # The Stackable Cockpit (better-auth genericOAuth callback). | ||
| - id: stackable-cockpit | ||
| name: Stackable Cockpit | ||
| secret: lY7rCsg4Ae0Gj1L119CRt1sGw2Z2yEBT | ||
| redirectURIs: | ||
| - 'http://localhost:5173/api/auth/oauth2/callback/oidc' | ||
|
|
||
| connectors: | ||
| # The real "customer" OIDC provider — the kind-cluster Keycloak, `stackable` | ||
| # realm. Keycloak keeps its strict security headers (frame-ancestors 'self', | ||
| # X-Frame-Options: SAMEORIGIN) — the browser never needs to frame Keycloak | ||
| # because dex (same-site with the cockpit) brokers the login and reuses the | ||
| # Keycloak SSO session silently. | ||
| - type: oidc | ||
| id: keycloak | ||
| name: Keycloak | ||
| config: | ||
| issuer: http://localhost:30080/realms/stackable | ||
| clientID: dex | ||
| clientSecret: dex-secret | ||
| redirectURI: http://localhost:5556/callback | ||
| insecureSkipEmailVerified: true | ||
|
|
||
| enablePasswordDB: false |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,30 @@ | ||
| # Runs the shared dex OIDC identity broker for the Stackable Cockpit dev stack. | ||
| # | ||
| # docker compose -f dev/docker-compose.dex.yml up -d | ||
| # | ||
| # Start the Keycloak/Trino cluster (dev/setup.sh) FIRST — dex opens its | ||
| # Keycloak connector at startup and exits if discovery fails. dev/setup.sh | ||
| # auto-detects dex on localhost:5556 and uses it as the cockpit's OIDC provider, | ||
| # so one dex session covers the cockpit login and any embedded services (SSO). | ||
| name: stackable-cockpit-dex | ||
|
|
||
| services: | ||
| dex: | ||
| image: ghcr.io/dexidp/dex:v2.45.1 | ||
| command: ['dex', 'serve', '/etc/dex/config.yaml'] | ||
| volumes: | ||
| - ./dex.yaml:/etc/dex/config.yaml:ro | ||
| ports: | ||
| - '5556:5556' | ||
| healthcheck: | ||
| test: | ||
| ['CMD-SHELL', 'wget -q -O /dev/null http://127.0.0.1:5556/.well-known/openid-configuration'] | ||
| interval: 5s | ||
| timeout: 5s | ||
| retries: 30 | ||
| start_period: 10s | ||
| extra_hosts: | ||
| # dex reaches Keycloak (cluster NodePort on the host) server-to-server via | ||
| # the host gateway; Go's resolver falls through the container loopback to | ||
| # this mapping when Keycloak is reachable there. | ||
| - 'localhost:host-gateway' |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should document that basically any service can be integrated here while a subset gets the nice logo