oxidecomputer / oxidecomputer/humility
Read `allowed-callers` before attempting hiffy calls
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 584
- Forks
- 63
- Avg merge
- 3h
- Merged PRs (30d)
- 2
Description
As of https://github.com/oxidecomputer/hubris/pull/732, the jefe operations that are restricted to specific callers (by task name) are available in app.toml. The current failure mode for invoking one of these operations via hiffy when the hiffy task is not allowed to perform the operation is not ideal; we get an operation timeout because the hiffy task faults:
% humility hiffy -c Jefe.set_state -a state=1
humility: attached via ST-Link V3
humility hiffy failed: operation timed out
% humility tasks
ID TASK GEN PRI STATE
...
7 hiffy 4 4 FAULT: reply fault: task id #0/gen0, reason AccessViolation (was: wait: reply from jefe/gen0)
The actual machinery for restricting callers via idolatry's codegen'd server doesn't require that the allowed tasks be listed in app.toml; a task could choose to generate the restriction list in its build script by any means (or even some other table name if it wanted to use app.toml). But we could have a convention of using the name allowed-callers in app.toml; if hiffy checked for that it could improve the above error.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the hiffy command path that invokes jefe operations and the app.toml convention for an allowed-callers entry. Trace how a disallowed operation currently becomes a task fault and timeout; done means hiffy reports that the operation is not permitted instead of timing out.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- cli, devtools
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100