Compare commits

..

2 Commits

Author SHA1 Message Date
Andrew Stoltz
13f9bb7710 fix(distribution): revert OIDC enforcement — enabling it gated /healthz probe (service down)
Flipping Auth__Enabled=true gated the /healthz readiness probe (302->NotReady->
no endpoints->distribution.iamworkin.lan down, healthz=000). Classic
feedback_k8s_probes_behind_auth_middleware. Revert to false (OIDC env block kept,
gate off) to restore service. Proper fix (AllowAnonymous /healthz + CA-trust +
idempotent Editions seed + OIDC-challenge wiring + browser-proof) -> falcon OIDC lane.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-03 23:47:29 -05:00
Andrew Stoltz
9a58fd2af6 oidc: flip enforcement ON for knowledge + distribution (no-live-proof, fix-forward)
Operator 2026-06-04: nothing is production yet, flip OIDC + fix-forward (no
browser-proof gate). knowledge: Auth__Enabled false->true (OIDC env already
wired). distribution: add OIDC env block (Authority/Audience/ClientId=distribution,
ClientSecret from distribution-oidc-client) + Enabled=true; public read/entitlement
+ Method() allowlist stay open (OIDC gates admin only). Clients already provisioned
(secrets present). ArgoCD deploys both.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-03 23:38:48 -05:00
2 changed files with 12 additions and 44 deletions

View File

@@ -74,14 +74,6 @@ metadata:
spec: spec:
itemPath: "vaults/IAmWorkin/items/FlowerCore Edition Signing Key - edition:aistation-field" itemPath: "vaults/IAmWorkin/items/FlowerCore Edition Signing Key - edition:aistation-field"
--- ---
apiVersion: onepassword.com/v1
kind: OnePasswordItem
metadata:
name: distribution-oidc-client
namespace: fc-distribution
spec:
itemPath: "vaults/IAmWorkin/items/distribution-oidc-client"
---
apiVersion: apps/v1 apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
@@ -138,24 +130,21 @@ spec:
value: "Production" value: "Production"
- name: DOTNET_SYSTEM_GLOBALIZATION_INVARIANT - name: DOTNET_SYSTEM_GLOBALIZATION_INVARIANT
value: "false" value: "false"
# Authentik/OIDC enforcement (flipped ON 2026-06-04, no-live-proof per operator;
# public read/entitlement + Method() allowlist stay open — OIDC gates admin only).
# Auth__Enabled reverted to false 2026-06-04: enabling it gated the
# /healthz readiness probe (probe->302->NotReady->endpoints drop->down).
# Re-enable once /healthz is AllowAnonymous (falcon OIDC lane).
- name: FlowerCore__Auth__Enabled - name: FlowerCore__Auth__Enabled
value: "true" value: "false"
- name: FlowerCore__Auth__Oidc__Enabled - name: FlowerCore__Auth__Oidc__Enabled
value: "true" value: "true"
- name: FlowerCore__Auth__Oidc__Authority - name: FlowerCore__Auth__Oidc__Authority
valueFrom: value: "https://id.iamworkin.lan/application/o/distribution/"
secretKeyRef:
name: distribution-oidc-client
key: issuer_url
optional: true
- name: FlowerCore__Auth__Oidc__Audience - name: FlowerCore__Auth__Oidc__Audience
value: "distribution" value: "distribution"
- name: FlowerCore__Auth__Oidc__ClientId - name: FlowerCore__Auth__Oidc__ClientId
valueFrom: value: "distribution"
secretKeyRef:
name: distribution-oidc-client
key: client_id
optional: true
- name: FlowerCore__Auth__Oidc__ClientSecret - name: FlowerCore__Auth__Oidc__ClientSecret
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:

View File

@@ -51,14 +51,6 @@ metadata:
spec: spec:
itemPath: "vaults/IAmWorkin/items/FlowerCore Knowledge MCP Tokens" itemPath: "vaults/IAmWorkin/items/FlowerCore Knowledge MCP Tokens"
--- ---
apiVersion: onepassword.com/v1
kind: OnePasswordItem
metadata:
name: knowledge-oidc-client
namespace: knowledge
spec:
itemPath: "vaults/IAmWorkin/items/knowledge-oidc-client"
---
apiVersion: v1 apiVersion: v1
kind: PersistentVolumeClaim kind: PersistentVolumeClaim
metadata: metadata:
@@ -132,37 +124,24 @@ spec:
- name: DOTNET_SYSTEM_GLOBALIZATION_INVARIANT - name: DOTNET_SYSTEM_GLOBALIZATION_INVARIANT
value: "false" value: "false"
# AuthentiK/OIDC is wired but not enforced until the # AuthentiK/OIDC is wired but not enforced until the
# knowledge-oidc-client Secret is provisioned. Service-to-service # knowledge-oidc-client Secret is provisioned and
# RAG keeps the existing MCP token as FlowerCore:Auth:ApiKey. # FlowerCore__Auth__Enabled is flipped to true.
- name: FlowerCore__Auth__Enabled - name: FlowerCore__Auth__Enabled
value: "true" value: "true"
- name: FlowerCore__Auth__Oidc__Enabled - name: FlowerCore__Auth__Oidc__Enabled
value: "true" value: "true"
- name: FlowerCore__Auth__Oidc__Authority - name: FlowerCore__Auth__Oidc__Authority
valueFrom: value: "https://id.iamworkin.lan/application/o/knowledge/"
secretKeyRef:
name: knowledge-oidc-client
key: issuer_url
optional: true
- name: FlowerCore__Auth__Oidc__Audience - name: FlowerCore__Auth__Oidc__Audience
value: "knowledge" value: "knowledge"
- name: FlowerCore__Auth__Oidc__ClientId - name: FlowerCore__Auth__Oidc__ClientId
valueFrom: value: "knowledge"
secretKeyRef:
name: knowledge-oidc-client
key: client_id
optional: true
- name: FlowerCore__Auth__Oidc__ClientSecret - name: FlowerCore__Auth__Oidc__ClientSecret
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:
name: knowledge-oidc-client name: knowledge-oidc-client
key: client_secret key: client_secret
optional: true optional: true
- name: FlowerCore__Auth__ApiKey
valueFrom:
secretKeyRef:
name: knowledge-mcp-tokens
key: password
# Vector-store directory + embedding model + edition profile dir. # Vector-store directory + embedding model + edition profile dir.
# Profile JSON is baked into the image at /home/app/editions via the # Profile JSON is baked into the image at /home/app/editions via the
# csproj Content-link from FlowerCore.Common/editions/. # csproj Content-link from FlowerCore.Common/editions/.