<mxfile host="app.diagrams.net" modified="2026-07-06T23:09:00.000Z" agent="GitHub Copilot" version="24.7.17" type="device"><diagram id="tau-workspace-onboarding" name="TauWorkspace onboarding"><mxGraphModel dx="1400" dy="900" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1160" pageHeight="860" math="0" shadow="0"><root><mxCell id="0" /><mxCell id="1" parent="0" /><mxCell id="lane-platform" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8fafc;strokeColor=#cbd5e1;dashed=1;fontColor=#334155;" vertex="1" parent="1"><mxGeometry x="20" y="40" width="1120" height="210" as="geometry" /></mxCell><mxCell id="lane-runtime" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8fafc;strokeColor=#cbd5e1;dashed=1;fontColor=#334155;" vertex="1" parent="1"><mxGeometry x="20" y="280" width="1120" height="210" as="geometry" /></mxCell><mxCell id="lane-researcher" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8fafc;strokeColor=#cbd5e1;dashed=1;fontColor=#334155;" vertex="1" parent="1"><mxGeometry x="20" y="520" width="1120" height="250" as="geometry" /></mxCell><mxCell id="title-platform" value="Platform-owned workspace policy" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=none;fillColor=none;fontStyle=1;fontSize=16;align=left;" vertex="1" parent="1"><mxGeometry x="40" y="55" width="420" height="30" as="geometry" /></mxCell><mxCell id="title-runtime" value="Kubernetes / Kueue runtime boundary" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=none;fillColor=none;fontStyle=1;fontSize=16;align=left;" vertex="1" parent="1"><mxGeometry x="40" y="295" width="420" height="30" as="geometry" /></mxCell><mxCell id="title-researcher" value="Researcher and agent activation flow" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=none;fillColor=none;fontStyle=1;fontSize=16;align=left;" vertex="1" parent="1"><mxGeometry x="40" y="535" width="420" height="30" as="geometry" /></mxCell><mxCell id="platform-owner" value="Platform owner / GitOps
Defines team workspace once" style="rounded=1;whiteSpace=wrap;html=1;arcSize=10;strokeWidth=2;fontSize=13;align=center;verticalAlign=middle;spacing=8;fillColor=#e8f0fe;strokeColor=#5b7cfa;fontColor=#1f2937;" vertex="1" parent="1"><mxGeometry x="60" y="105" width="180" height="85" as="geometry" /></mxCell><mxCell id="principal" value="principalRef
entra-group:sample-researchers
(team identity, not per-user grants)" style="rounded=1;whiteSpace=wrap;html=1;arcSize=10;strokeWidth=2;fontSize=13;align=center;verticalAlign=middle;spacing=8;fillColor=#e8f0fe;strokeColor=#5b7cfa;fontColor=#1f2937;" vertex="1" parent="1"><mxGeometry x="280" y="95" width="210" height="105" as="geometry" /></mxCell><mxCell id="workspace-spec" value="TauWorkspace spec
tau-system/sample
principalRef + k8s subject
target namespace=sample
role + queue + defaults" style="rounded=1;whiteSpace=wrap;html=1;arcSize=10;strokeWidth=2;fontSize=13;align=center;verticalAlign=middle;spacing=8;fillColor=#e6fffa;strokeColor=#0f766e;fontColor=#064e3b;" vertex="1" parent="1"><mxGeometry x="530" y="82" width="240" height="130" as="geometry" /></mxCell><mxCell id="platform-impl" value="Platform implementation
create target namespace
RBAC bindings
LocalQueue sample
Kueue quota objects" style="rounded=1;whiteSpace=wrap;html=1;arcSize=10;strokeWidth=2;fontSize=13;align=center;verticalAlign=middle;spacing=8;fillColor=#e8f0fe;strokeColor=#5b7cfa;fontColor=#1f2937;" vertex="1" parent="1"><mxGeometry x="820" y="88" width="250" height="118" as="geometry" /></mxCell><mxCell id="tau-cli" value="Tau CLI / SDK
Renders Job or RayJob
Does not grant access" style="rounded=1;whiteSpace=wrap;html=1;arcSize=10;strokeWidth=2;fontSize=13;align=center;verticalAlign=middle;spacing=8;fillColor=#fef3c7;strokeColor=#d97706;fontColor=#78350f;" vertex="1" parent="1"><mxGeometry x="70" y="345" width="190" height="90" as="geometry" /></mxCell><mxCell id="kueue" value="Kueue admission
queue=sample
ClusterQueue quota is real boundary" style="rounded=1;whiteSpace=wrap;html=1;arcSize=10;strokeWidth=2;fontSize=13;align=center;verticalAlign=middle;spacing=8;fillColor=#fef3c7;strokeColor=#d97706;fontColor=#78350f;" vertex="1" parent="1"><mxGeometry x="320" y="340" width="220" height="100" as="geometry" /></mxCell><mxCell id="pods" value="Workload pods
Run selected shape within quota
Write checkpoints/artifacts" style="rounded=1;whiteSpace=wrap;html=1;arcSize=10;strokeWidth=2;fontSize=13;align=center;verticalAlign=middle;spacing=8;fillColor=#fef3c7;strokeColor=#d97706;fontColor=#78350f;" vertex="1" parent="1"><mxGeometry x="600" y="340" width="220" height="100" as="geometry" /></mxCell><mxCell id="storage" value="Workspace output defaults
outputRoot=/data/projects/sample/runs
scratch=/mnt" style="rounded=1;whiteSpace=wrap;html=1;arcSize=10;strokeWidth=2;fontSize=13;align=center;verticalAlign=middle;spacing=8;fillColor=#fef3c7;strokeColor=#d97706;fontColor=#78350f;" vertex="1" parent="1"><mxGeometry x="880" y="340" width="220" height="100" as="geometry" /></mxCell><mxCell id="researcher" value="Researcher / agent
Member of workspace group" style="rounded=1;whiteSpace=wrap;html=1;arcSize=10;strokeWidth=2;fontSize=13;align=center;verticalAlign=middle;spacing=8;fillColor=#f3e8ff;strokeColor=#9333ea;fontColor=#581c87;" vertex="1" parent="1"><mxGeometry x="60" y="585" width="180" height="90" as="geometry" /></mxCell><mxCell id="dayone" value="Day-one packet
workspace sample
context
default queue/storage/priority" style="rounded=1;whiteSpace=wrap;html=1;arcSize=10;strokeWidth=2;fontSize=13;align=center;verticalAlign=middle;spacing=8;fillColor=#f3e8ff;strokeColor=#9333ea;fontColor=#581c87;" vertex="1" parent="1"><mxGeometry x="275" y="580" width="200" height="105" as="geometry" /></mxCell><mxCell id="doctor" value="Local readiness
tau python doctor
cluster auth/context" style="rounded=1;whiteSpace=wrap;html=1;arcSize=10;strokeWidth=2;fontSize=13;align=center;verticalAlign=middle;spacing=8;fillColor=#f3e8ff;strokeColor=#9333ea;fontColor=#581c87;" vertex="1" parent="1"><mxGeometry x="515" y="585" width="180" height="95" as="geometry" /></mxCell><mxCell id="smoke" value="Smoke/starter run
prove submit, admit, logs, storage write" style="rounded=1;whiteSpace=wrap;html=1;arcSize=10;strokeWidth=2;fontSize=13;align=center;verticalAlign=middle;spacing=8;fillColor=#f3e8ff;strokeColor=#9333ea;fontColor=#581c87;" vertex="1" parent="1"><mxGeometry x="735" y="585" width="190" height="95" as="geometry" /></mxCell><mxCell id="experiments" value="Real experiments
GPU/worker shape
image/runtime deps
dataset refs
artifacts" style="rounded=1;whiteSpace=wrap;html=1;arcSize=10;strokeWidth=2;fontSize=13;align=center;verticalAlign=middle;spacing=8;fillColor=#f3e8ff;strokeColor=#9333ea;fontColor=#581c87;" vertex="1" parent="1"><mxGeometry x="965" y="575" width="150" height="115" as="geometry" /></mxCell><mxCell id="status" value="TauWorkspace status
phase + conditions
RBACReady, QueueReady
WorkloadIdentityReady, DriftDetected" style="rounded=1;whiteSpace=wrap;html=1;arcSize=10;strokeWidth=2;fontSize=13;align=center;verticalAlign=middle;spacing=8;fillColor=#dcfce7;strokeColor=#16a34a;fontColor=#14532d;" vertex="1" parent="1"><mxGeometry x="560" y="715" width="330" height="100" as="geometry" /></mxCell><mxCell id="quota-request" value="TauQuotaRequest
Separate approval flow for burst/extra quota" style="rounded=1;whiteSpace=wrap;html=1;arcSize=10;strokeWidth=2;fontSize=13;align=center;verticalAlign=middle;spacing=8;fillColor=#fee2e2;strokeColor=#dc2626;fontColor=#7f1d1d;" vertex="1" parent="1"><mxGeometry x="930" y="730" width="190" height="80" as="geometry" /></mxCell><mxCell id="e1" value="" style="endArrow=block;html=1;rounded=0;strokeWidth=2;strokeColor=#666666;" edge="1" parent="1" source="platform-owner" target="principal"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="e2" value="" style="endArrow=block;html=1;rounded=0;strokeWidth=2;strokeColor=#666666;" edge="1" parent="1" source="principal" target="workspace-spec"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="e3" value="" style="endArrow=block;html=1;rounded=0;strokeWidth=2;strokeColor=#666666;" edge="1" parent="1" source="workspace-spec" target="platform-impl"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="e4" value="" style="endArrow=block;html=1;rounded=0;strokeWidth=2;strokeColor=#666666;" edge="1" parent="1" source="platform-impl" target="kueue"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="e5" value="" style="endArrow=block;html=1;rounded=0;strokeWidth=2;strokeColor=#666666;" edge="1" parent="1" source="platform-impl" target="storage"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="e6" value="" style="endArrow=block;html=1;rounded=0;strokeWidth=2;strokeColor=#666666;" edge="1" parent="1" source="researcher" target="dayone"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="e7" value="" style="endArrow=block;html=1;rounded=0;strokeWidth=2;strokeColor=#666666;" edge="1" parent="1" source="dayone" target="doctor"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="e8" value="" style="endArrow=block;html=1;rounded=0;strokeWidth=2;strokeColor=#666666;" edge="1" parent="1" source="doctor" target="smoke"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="e9" value="" style="endArrow=block;html=1;rounded=0;strokeWidth=2;strokeColor=#666666;" edge="1" parent="1" source="smoke" target="experiments"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="e10" value="" style="endArrow=block;html=1;rounded=0;strokeWidth=2;strokeColor=#666666;" edge="1" parent="1" source="doctor" target="tau-cli"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="e11" value="" style="endArrow=block;html=1;rounded=0;strokeWidth=2;strokeColor=#666666;" edge="1" parent="1" source="tau-cli" target="kueue"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="e12" value="" style="endArrow=block;html=1;rounded=0;strokeWidth=2;strokeColor=#666666;" edge="1" parent="1" source="kueue" target="pods"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="e13" value="" style="endArrow=block;html=1;rounded=0;strokeWidth=2;strokeColor=#666666;" edge="1" parent="1" source="pods" target="storage"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="e14" value="endArrow=block;html=1;rounded=0;strokeWidth=2;strokeColor=#16a34a;dashed=1;" style="endArrow=block;html=1;rounded=0;strokeWidth=2;strokeColor=#666666;" edge="1" parent="1" source="platform-impl" target="status"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="e15" value="endArrow=block;html=1;rounded=0;strokeWidth=2;strokeColor=#16a34a;dashed=1;" style="endArrow=block;html=1;rounded=0;strokeWidth=2;strokeColor=#666666;" edge="1" parent="1" source="status" target="researcher"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="e16" value="if quota pressure persists" style="endArrow=block;html=1;rounded=0;strokeWidth=2;strokeColor=#dc2626;dashed=1;" edge="1" parent="1" source="experiments" target="quota-request"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="e17" value="approval updates Kueue/GitOps quota" style="endArrow=block;html=1;rounded=0;strokeWidth=2;strokeColor=#dc2626;dashed=1;" edge="1" parent="1" source="quota-request" target="platform-owner"><mxGeometry relative="1" as="geometry" /></mxCell></root></mxGraphModel></diagram></mxfile>
