coding, creative-writing, marketing, montage and business-management, each a packVersion 1 document pinning whole V2 templates at today's templateHash. expected-lines.json beside each pack records the flagged and credential lines every proposed hire carries against roles/chief-of-staff.json, as the broker computes them. starter-pack-shipped.test.mjs checks each pack loads through SP1 with origin shipped, matches section 7, and that its lines equal expected-lines.json; a template edit refuses the pack until re-pinned. The SP1 test no longer expects an empty shipped listing.
102 lines
6.2 KiB
JSON
102 lines
6.2 KiB
JSON
{
|
|
"chief": { "template": "chief-of-staff", "sha256": "b98473a67e7d765074ad5a94085a2236905e159085036831602799f42f51fb2f" },
|
|
"hires": {
|
|
"pm-1": {
|
|
"definition": "pm",
|
|
"flagged": [
|
|
{"field":"authority.withinRole","value":"decision.resolve.delivery","reasons":["resolve-right"]},
|
|
{"field":"authority.withinRole","value":"task.create","reasons":["above-chief"]},
|
|
{"field":"authority.withinRole","value":"task.assign","reasons":["above-chief"]},
|
|
{"field":"authority.withinRole","value":"task.reassign","reasons":["above-chief"]},
|
|
{"field":"authority.withinRole","value":"task.schedule","reasons":["above-chief"]},
|
|
{"field":"authority.withinRole","value":"task.update.assigned","reasons":["above-chief"]},
|
|
{"field":"authority.withinRole","value":"task.close","reasons":["above-chief"]},
|
|
{"field":"authority.crossRole","value":"task.priority.change","reasons":["above-chief"]},
|
|
{"field":"authority.crossRole","value":"task.scope.change","reasons":["above-chief"]},
|
|
{"field":"tools","value":"write","reasons":["above-chief"]},
|
|
{"field":"tools","value":"edit","reasons":["above-chief"]},
|
|
{"field":"credentials.gitea","value":"write:issue","reasons":["above-chief"]},
|
|
{"field":"credentials.vikunja","value":"tasks.read_one","reasons":["above-chief"]},
|
|
{"field":"credentials.vikunja","value":"tasks.create","reasons":["above-chief"]},
|
|
{"field":"credentials.vikunja","value":"tasks.update","reasons":["above-chief"]},
|
|
{"field":"credentials.vikunja","value":"tasks_assignees.create","reasons":["above-chief"]},
|
|
{"field":"credentials.vikunja","value":"tasks_assignees.delete","reasons":["above-chief"]},
|
|
{"field":"credentials.vikunja","value":"tasks_relations.create","reasons":["above-chief"]},
|
|
{"field":"credentials.vikunja","value":"tasks_relations.delete","reasons":["above-chief"]},
|
|
{"field":"credentials.vikunja","value":"tasks_labels.create","reasons":["above-chief"]},
|
|
{"field":"credentials.vikunja","value":"tasks_labels.delete","reasons":["above-chief"]},
|
|
{"field":"credentials.vikunja","value":"tasks_comments.create","reasons":["above-chief"]},
|
|
{"field":"credentials.vikunja","value":"labels.read_all","reasons":["above-chief"]},
|
|
{"field":"credentials.vikunja","value":"projects.views_buckets_tasks","reasons":["above-chief"]}
|
|
],
|
|
"credentialLines": [
|
|
{"service":"gitea","scope":"write:issue"},
|
|
{"service":"gitea","scope":"read:repository"},
|
|
{"service":"gitea","scope":"read:user"},
|
|
{"service":"vikunja","scope":"tasks.read_one"},
|
|
{"service":"vikunja","scope":"tasks.create"},
|
|
{"service":"vikunja","scope":"tasks.update"},
|
|
{"service":"vikunja","scope":"tasks_assignees.create"},
|
|
{"service":"vikunja","scope":"tasks_assignees.delete"},
|
|
{"service":"vikunja","scope":"tasks_relations.create"},
|
|
{"service":"vikunja","scope":"tasks_relations.delete"},
|
|
{"service":"vikunja","scope":"tasks_labels.create"},
|
|
{"service":"vikunja","scope":"tasks_labels.delete"},
|
|
{"service":"vikunja","scope":"tasks_comments.create"},
|
|
{"service":"vikunja","scope":"labels.read_all"},
|
|
{"service":"vikunja","scope":"projects.views_buckets_tasks"}
|
|
]
|
|
},
|
|
"coder-1": {
|
|
"definition": "coder",
|
|
"flagged": [
|
|
{"field":"authority.withinRole","value":"task.update.assigned","reasons":["above-chief"]},
|
|
{"field":"authority.withinRole","value":"git.push.working","reasons":["above-chief"]},
|
|
{"field":"authority.withinRole","value":"review.request","reasons":["above-chief"]},
|
|
{"field":"authority.crossRole","value":"task.scope.change","reasons":["above-chief"]},
|
|
{"field":"tools","value":"write","reasons":["above-chief"]},
|
|
{"field":"tools","value":"edit","reasons":["above-chief"]},
|
|
{"field":"tools","value":"bash","reasons":["above-chief"]},
|
|
{"field":"credentials.gitea","value":"write:issue","reasons":["above-chief"]},
|
|
{"field":"credentials.gitea","value":"write:repository","reasons":["above-chief"]},
|
|
{"field":"credentials.vikunja","value":"tasks.read_one","reasons":["above-chief"]},
|
|
{"field":"credentials.vikunja","value":"tasks.update","reasons":["above-chief"]},
|
|
{"field":"credentials.vikunja","value":"tasks_comments.create","reasons":["above-chief"]},
|
|
{"field":"credentials.vikunja","value":"projects.views_buckets_tasks","reasons":["above-chief"]}
|
|
],
|
|
"credentialLines": [
|
|
{"service":"gitea","scope":"write:issue"},
|
|
{"service":"gitea","scope":"write:repository"},
|
|
{"service":"gitea","scope":"read:user"},
|
|
{"service":"vikunja","scope":"tasks.read_one"},
|
|
{"service":"vikunja","scope":"tasks.update"},
|
|
{"service":"vikunja","scope":"tasks_comments.create"},
|
|
{"service":"vikunja","scope":"projects.views_buckets_tasks"}
|
|
]
|
|
},
|
|
"reviewer-1": {
|
|
"definition": "reviewer",
|
|
"flagged": [
|
|
{"field":"authority.withinRole","value":"review.verdict","reasons":["above-chief"]},
|
|
{"field":"authority.withinRole","value":"task.update.assigned","reasons":["above-chief"]},
|
|
{"field":"tools","value":"bash","reasons":["above-chief"]},
|
|
{"field":"credentials.gitea","value":"write:issue","reasons":["above-chief"]},
|
|
{"field":"credentials.gitea","value":"write:repository","reasons":["above-chief"]},
|
|
{"field":"credentials.vikunja","value":"tasks.read_one","reasons":["above-chief"]},
|
|
{"field":"credentials.vikunja","value":"tasks.update","reasons":["above-chief"]},
|
|
{"field":"credentials.vikunja","value":"tasks_comments.create","reasons":["above-chief"]},
|
|
{"field":"credentials.vikunja","value":"projects.views_buckets_tasks","reasons":["above-chief"]}
|
|
],
|
|
"credentialLines": [
|
|
{"service":"gitea","scope":"write:issue"},
|
|
{"service":"gitea","scope":"write:repository"},
|
|
{"service":"gitea","scope":"read:user"},
|
|
{"service":"vikunja","scope":"tasks.read_one"},
|
|
{"service":"vikunja","scope":"tasks.update"},
|
|
{"service":"vikunja","scope":"tasks_comments.create"},
|
|
{"service":"vikunja","scope":"projects.views_buckets_tasks"}
|
|
]
|
|
}
|
|
}
|
|
}
|