@getmonoceros/workbench 1.30.0 → 1.31.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundled-components/languages/dotnet/component.yml +5 -0
- package/bundled-components/languages/go/component.yml +1 -0
- package/bundled-components/languages/java/component.yml +1 -0
- package/bundled-components/languages/python/component.yml +3 -0
- package/bundled-components/languages/rust/component.yml +1 -0
- package/bundled-components/services/keycloak/component.yml +46 -0
- package/dist/bin.js +493 -69
- package/dist/bin.js.map +1 -1
- package/package.json +2 -1
|
@@ -6,3 +6,8 @@ language:
|
|
|
6
6
|
feature: ghcr.io/devcontainers/features/dotnet:2
|
|
7
7
|
defaultVersion: latest
|
|
8
8
|
versions: [latest, lts, 10.0, 9.0, 8.0, 7.0, 6.0]
|
|
9
|
+
# No single C# extension on both registries: ms-dotnettools.csharp is
|
|
10
|
+
# MS-Marketplace-only, muhammad-sammy.csharp is Open-VSX-only. Listing
|
|
11
|
+
# both lets VS Code and VSCodium each pick the one its registry has and
|
|
12
|
+
# silently skip the other. See ADR 0016.
|
|
13
|
+
vscodeExtensions: [ms-dotnettools.csharp, muhammad-sammy.csharp]
|
|
@@ -6,3 +6,6 @@ language:
|
|
|
6
6
|
feature: ghcr.io/devcontainers/features/python:1
|
|
7
7
|
defaultVersion: latest
|
|
8
8
|
versions: [latest, 3.12, 3.11, 3.10, 3.9, 3.8]
|
|
9
|
+
# Pylance is MS-Marketplace-only (not on Open VSX); VSCodium silently
|
|
10
|
+
# skips it and keeps ms-python.python. See ADR 0016.
|
|
11
|
+
vscodeExtensions: [ms-python.python, ms-python.vscode-pylance]
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
id: keycloak
|
|
2
|
+
category: service
|
|
3
|
+
displayName: Keycloak
|
|
4
|
+
description: 'Keycloak identity & access management (OAuth2 / OpenID Connect / SAML) for local dev. Reachable in-container as host `keycloak`. Starts in dev mode and imports realm JSON from a repo you mount; see the usage notes.'
|
|
5
|
+
documentationURL: https://www.keycloak.org/
|
|
6
|
+
service:
|
|
7
|
+
image: quay.io/keycloak/keycloak:26.6
|
|
8
|
+
defaultPort: 8080
|
|
9
|
+
# Dev mode + realm import. The Keycloak image has no auto-start default,
|
|
10
|
+
# so a command is mandatory. `--import-realm` reads every *.json from
|
|
11
|
+
# /opt/keycloak/data/import at startup (a no-op if the dir is empty).
|
|
12
|
+
command: start-dev --import-realm
|
|
13
|
+
# Starts in a host-side second wave AFTER the repo clone (ADR 0025), so a
|
|
14
|
+
# mounted realm.json / theme from the project is present at boot. No
|
|
15
|
+
# dataMount: the dev H2 database is ephemeral and re-seeds from the
|
|
16
|
+
# mounted realm JSON on every apply. No healthcheck: the service is not
|
|
17
|
+
# in runServices (nothing gates on it) and the image ships no curl.
|
|
18
|
+
deferStart: true
|
|
19
|
+
# Rendered as a COMMENTED volumes: scaffold in the yml (the catalog
|
|
20
|
+
# can't know your repo path). Uncomment + edit to mount realm/theme.
|
|
21
|
+
exampleVolumes:
|
|
22
|
+
- projects/<app>/keycloak/realm.json:/opt/keycloak/data/import/<app>.json:ro
|
|
23
|
+
- projects/<app>/keycloak/theme:/opt/keycloak/themes/<app>
|
|
24
|
+
connectionEnv:
|
|
25
|
+
URL: http://${host}:${port}
|
|
26
|
+
HOST: ${host}
|
|
27
|
+
PORT: ${port}
|
|
28
|
+
USER: ${KC_BOOTSTRAP_ADMIN_USERNAME}
|
|
29
|
+
PASSWORD: ${KC_BOOTSTRAP_ADMIN_PASSWORD}
|
|
30
|
+
options:
|
|
31
|
+
KC_BOOTSTRAP_ADMIN_USERNAME:
|
|
32
|
+
type: string
|
|
33
|
+
default: admin
|
|
34
|
+
surface: env
|
|
35
|
+
KC_BOOTSTRAP_ADMIN_PASSWORD:
|
|
36
|
+
type: string
|
|
37
|
+
default: admin
|
|
38
|
+
surface: env
|
|
39
|
+
usageNotes:
|
|
40
|
+
- 'Realm import: keep your realm export(s) in the repo and bind-mount them into `/opt/keycloak/data/import`. Add an entry to the service `volumes:`, e.g. `projects/<app>/keycloak/realm.json:/opt/keycloak/data/import/<app>.json:ro`. With no mount, Keycloak starts with an empty realm.'
|
|
41
|
+
- 'Multiple realms from different projects: one file-mount per realm to a distinct target name (two directories cannot mount onto the same target). Keycloak imports every *.json in the import dir.'
|
|
42
|
+
- 'Custom theme: bind-mount it into `/opt/keycloak/themes/<name>`, e.g. `projects/<app>/keycloak/theme:/opt/keycloak/themes/<app>`, then set `loginTheme`/`accountTheme` to `<name>` in the realm. In dev mode themes are not cached, so edits show on reload.'
|
|
43
|
+
- 'Paths are relative to the container root (`projects/<app>/...`); Monoceros resolves the bind source for you. Do not turn off the deferred start while mounting a repo file - the file would not exist at boot.'
|
|
44
|
+
- 'Import is one-way: admin-UI changes live in the Keycloak database, not the file. To keep them, export the realm and overwrite the committed JSON.'
|
|
45
|
+
briefing:
|
|
46
|
+
- text: 'Keycloak (identity & access management) runs as service `keycloak`. Reach it at `$KEYCLOAK_URL` (admin user `$KEYCLOAK_USER` / `$KEYCLOAK_PASSWORD`). Realms come from JSON files the project mounts into `/opt/keycloak/data/import`; the database is ephemeral and re-seeds from them on each apply.'
|