feat: admit existing OpenBao catalog lanes
This commit is contained in:
parent
9d383442c8
commit
784be978bf
29 changed files with 1490 additions and 79 deletions
|
|
@ -60,9 +60,10 @@ def route_lane(
|
|||
metadata_applied = False
|
||||
value_present = False
|
||||
if client is not None and client.is_reachable():
|
||||
policy_applied = client.read_policy(entry.policy_name) is not None
|
||||
role_applied = client.approle_exists(entry.role_name)
|
||||
metadata_applied = policy_applied and role_applied
|
||||
if entry.has_delivery_auth:
|
||||
policy_applied = client.read_policy(entry.policy_name) is not None
|
||||
role_applied = client.approle_exists(entry.role_name)
|
||||
metadata_applied = policy_applied and role_applied
|
||||
if entry.stores_kv_value():
|
||||
# Presence check uses the engine's own token; reports boolean only.
|
||||
field = entry.fields[0] if entry.fields else ""
|
||||
|
|
@ -80,8 +81,17 @@ def route_lane(
|
|||
missing = f"approved decision for '{decision_ref}'"
|
||||
next_command = f"secrets-engine decision inspect {decision_ref or entry.id}"
|
||||
elif not metadata_applied:
|
||||
missing = "OpenBao policy/role apply"
|
||||
next_command = f"secrets-engine apply {decision_ref or entry.id} --stage {entry.stage}"
|
||||
if entry.kind == "kv" and entry.delivery_auth_management == "existing":
|
||||
missing = "externally managed OpenBao policy/AppRole readiness"
|
||||
next_command = (
|
||||
f"secrets-engine verify {entry.id} --positive --negative"
|
||||
)
|
||||
elif entry.kind == "kv" and not entry.has_delivery_auth:
|
||||
missing = "native delivery auth declaration"
|
||||
next_command = f"secrets-engine plan {decision_ref or entry.id} --stage {entry.stage}"
|
||||
else:
|
||||
missing = "OpenBao policy/role apply"
|
||||
next_command = f"secrets-engine apply {decision_ref or entry.id} --stage {entry.stage}"
|
||||
elif entry.kind == "auth-capability":
|
||||
missing = ""
|
||||
next_command = (
|
||||
|
|
@ -96,7 +106,12 @@ def route_lane(
|
|||
)
|
||||
else:
|
||||
missing = ""
|
||||
next_command = f"secrets-engine exec --catalog {entry.id} -- <command...>"
|
||||
if {"exec-env", "npm-config"}.intersection(entry.delivery_modes):
|
||||
next_command = f"secrets-engine exec --catalog {entry.id} -- <command...>"
|
||||
else:
|
||||
next_command = (
|
||||
f"secrets-engine verify {entry.id} --positive --negative"
|
||||
)
|
||||
|
||||
return RouteResult(
|
||||
catalog_id=entry.id,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue