The review of 2026-10-09 (M4): - give refuses broker (the bus account issue mints) and any own secret the mesh may make itself; - the desk's prompt is asked by module, secret and machine, never with words of the caller's, and the bus denies the prompt's subjects to every principal but the controller, however wide its grant, so the prompt's 'the controller asks' is the bus's word (Permissions.PublishDeny, broker.ControllerOnly); - secret accept with a value is refused through a verb: a value comes from the terminal or the desk; - every value given for an own secret, at the terminal or the desk, raises the urgent condition secret-given on every channel, until the operator silences it.
29 lines
990 B
Go
29 lines
990 B
Go
package inventory
|
|
|
|
import (
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/novox/mesh-controller/internal/catalogue"
|
|
)
|
|
|
|
// `give` takes only a value nobody but a person has (the review of 2026-10-09, M4): never the module's bus
|
|
// account, which `issue` mints, nor a secret the mesh may make itself.
|
|
func TestOnlyASecretThePersonHoldsIsGivenAtTheDesk(t *testing.T) {
|
|
m := catalogue.Manifest{Module: "telegram", OwnSecrets: catalogue.OwnSecrets{
|
|
"telegram-token": {Path: "/s/telegram-token"},
|
|
"broker": {Path: "/s/broker"},
|
|
"session": {Path: "/s/session", Taken: catalogue.TakenAtStart},
|
|
}}
|
|
if err := GivableAtDesk(m, "telegram-token"); err != nil {
|
|
t.Errorf("the bot token was refused: %v", err)
|
|
}
|
|
for _, name := range []string{"broker", "session", "chat-id"} {
|
|
if err := GivableAtDesk(m, name); err == nil {
|
|
t.Errorf("%s was givable", name)
|
|
} else if name != "chat-id" && !strings.Contains(err.Error(), "the mesh makes") {
|
|
t.Errorf("%s: %v", name, err)
|
|
}
|
|
}
|
|
}
|