"""Single-attempt T03 owner procedure; native PEP checks precede every action.""" import argparse,base64,copy,contextlib,io,json,os,stat,subprocess,sys,tempfile from pathlib import Path from datetime import datetime,timezone from dataclasses import replace import yaml ROOT=Path('/home/worsch/secrets-engine') sys.path.insert(0,str(ROOT/'src')) sys.path.insert(0,'/home/worsch/railiance-clock/src') from secrets_engine.config import Config from secrets_engine.catalog import get_entry from secrets_engine.authorization import build_action_request,digest_material from secrets_engine.approval_consume import authorize_action from secrets_engine.cli import build_parser from secrets_engine.decisions import resolve_decision,require_approved from secrets_engine.openbao import OpenBaoClient from secrets_engine.exec_owner import validate_delivery_target from secrets_engine.plan import build_plan RECEIPT=ROOT/'docs/evidence/2026-09-15-t03-native-execution.json' KUBE=['kubectl','--kubeconfig','/home/worsch/.kube/config-railiance01'] ROLE='se-prod-openrouter-llm-connect'; LANE='openrouter-llm-connect' IDS={'apply':'9935335c-8e9a-566e-a48e-6a5b5f4882eb','verify':'273d6882-6253-5dc9-ac54-544f92ef5e56','exec':'7ba0c13b-68cd-5b3e-9481-42ba9e385e68'} def require(value,code): if not value:raise ValueError(code) def private(p,directory=False): s=p.lstat();require(s.st_uid==os.getuid() and stat.S_IMODE(s.st_mode)==(0o700 if directory else 0o600) and (stat.S_ISDIR(s.st_mode) if directory else stat.S_ISREG(s.st_mode)),'private_path_required') def run(*args): p=subprocess.run(args,capture_output=True,text=True,timeout=30);require(p.returncode==0,'metadata_command_failed');return p.stdout def bao(*args):return json.loads(run('bao',*args)) def save(receipt):RECEIPT.write_text(json.dumps(receipt,indent=2)+'\n') def prepare(directory): source=yaml.safe_load((ROOT/'docs/proposals/openrouter-key-check.yaml').read_text()) configs={};entries={} for action,approval in IDS.items(): folder=directory/action;folder.mkdir();doc=copy.deepcopy(source);doc['approval']['authorization_id']=approval (folder/(LANE+'.yaml')).write_text(yaml.safe_dump(doc,sort_keys=False)) cfg=replace(Config.load(),catalog_dir=folder,bao_addr='http://127.0.0.1:18200',approval_url='http://127.0.0.1:18281',approval_token_file=None,approval_client_secret_file=directory/'client-secret',keycape_token_url='https://kc.coulomb.social/token',keycape_issuer='https://kc.coulomb.social',keycape_client_secret_file=None,openbao_jwt_login_file=None,authorization_subject_id='secrets-engine',authorization_subject_type='service',authorization_policy_package='secrets-engine.catalog-lane.lifecycle',authorization_policy_version='v2',authorization_min_approvals=1,pdp_url='http://127.0.0.1:18282',pdp_token_file=directory/'pdp-caller') entry=get_entry(folder,LANE);fields=() if action=='apply' else tuple(entry.fields) actual=build_action_request(entry,action,subject_id='secrets-engine',subject_type='service',purpose=entry.approval['purpose'],fields=fields,policy_targets=(entry.policy_name,),auth_targets=(entry.role_name,)) expected=json.loads((ROOT/f'docs/evidence/2026-09-14-openrouter-final-{action}-request.json').read_text()) require(digest_material(actual)==digest_material(expected),'frozen_action_request_drift') configs[action]=cfg;entries[action]=entry command=source['delivery_config']['exec_owner']['command'] validate_delivery_target(entries['exec'],entries['exec'].fields[0],command,'exec-env') plan=build_plan(entries['apply'],'prod');require(plan.policy_name==ROLE and plan.role_name==ROLE,'plan_target_drift') return configs,entries,command def health(): # Metadata only: never request Kubernetes Secret payloads. result={} for kind in ('deployment','externalsecret'): items=json.loads(run(*KUBE,'get',kind,'-A','-o','json'))['items'] rows=[] for obj in items: if 'llm-connect' not in obj['metadata']['name']:continue if kind=='deployment': require(obj.get('status',{}).get('readyReplicas',0)>=1,'llm_connect_not_ready') rows.append({'namespace':obj['metadata']['namespace'],'name':obj['metadata']['name'],'ready':obj['status']['readyReplicas']}) else: require(any(c['type']=='Ready' and c['status']=='True' for c in obj.get('status',{}).get('conditions',[])),'llm_connect_eso_not_ready') rows.append({'namespace':obj['metadata']['namespace'],'name':obj['metadata']['name'],'ready':True}) require(rows,'llm_connect_health_target_missing');result[kind]=rows return result def verify_session_cleanup(client): # Keep the explicit scoped token in memory: close() clears session.client.token, # which otherwise makes a subsequent CLI call use the attended admin helper. from urllib.request import Request,build_opener,ProxyHandler,HTTPRedirectHandler from urllib.error import HTTPError class NoRedirect(HTTPRedirectHandler): def redirect_request(self,*a,**k):return None with client.approle_session(ROLE) as session: probe_token=session.client.token probes=['platform/data/workloads/secrets-engine/approval-client','platform/metadata/workloads/activity-core'] require(all(session.client.token_capabilities(p,token=probe_token)==['deny'] for p in probes),'unrelated_path_authority') try: require(session.revocation_succeeded,'session_revocation_failed') req=Request(client.addr+'/v1/auth/token/lookup-self',headers={'X-Vault-Token':probe_token}) try: with build_opener(ProxyHandler({}),NoRedirect()).open(req,timeout=20) as response: raise ValueError('revoked_token_still_usable') except HTTPError as error: require(error.code==403,'revocation_probe_not_definitive') finally: del probe_token return {'unrelated_path_denied':True,'session_revocation_verified':True,'revoked_token_lookup_status':403} def resume_receipt(): prior=json.loads((ROOT/'docs/evidence/2026-09-15-t03-native-execution.json').read_text()) require(prior.get('phase')=='verify_attempt_started' and prior.get('failure_code')=='revoked_token_still_usable','unexpected_prior_failure') require(prior.get('actions')==[{'action':'apply','approval_id':IDS['apply'],'exit_code':0,'limits':{'token_ttl':900,'token_max_ttl':1800,'secret_id_ttl':900,'secret_id_num_uses':1,'token_num_uses':8}}],'prior_apply_not_verified') return prior def admin(directory,negative,resume=False): require(not RECEIPT.exists(),'existing_execution_receipt_requires_reconciliation') receipt={'status':'failed','phase':'preflight','observed_at':datetime.now(timezone.utc).isoformat(),'actions':[]} forwards=[] try: require(Path.home().parent.name=='.warden-attended-login' and not os.getenv('BAO_TOKEN') and not os.getenv('VAULT_TOKEN'),'attended_envelope_required') private(directory,True);private(directory/'client-secret');private(negative) identity=bao('token','lookup','-format=json')['data'];policies=set(identity['policies'])|set(identity.get('identity_policies',[])) require('platform-admin' in policies and 'root' not in policies and identity.get('entity_id') and 0