4f61eeb1a7
The stack runs two more real services than the last seed captured: - OpenLDAP: independently consumed via direct LDAPS binds (the SSO's /integrations page advertises it). Seeded with the ldaps:// endpoint, honoring ldap.ldapsHost when the operator set one. - OpenResty: the proxy container's data plane (80/443) that every hostname in the stack actually flows through — distinct from the 'proxy' entry, which is the node management UI. Seeded with a wildcard https://*.<domain> address (same wildcard convention the proxy's Host records use). Both use metadata.subType so the directory UI badges them as service (openldap) / service (openresty). Same idempotency: existing slugs are operator-owned and untouched. Re-verified against a live app: pass 1 creates all six resources + oauth edge, pass 2 changes nothing. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>