oxidecomputer / oxidecomputer/humility

Read `allowed-callers` before attempting hiffy calls

Open
#222 0 comments 0 reactions 0 assignees View on GitHub

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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.