Ettore Di Giacinto
1f481b0747
feat(connectors): add-on roles and permissions, and sender pairing
...
A connector kind can now declare the roles it gives to a sender and the
capabilities it can grant to a role. The owner of a binding enables a
ceiling of capabilities and maps roles to them. The host stores these
values and returns them with the binding and the kind list, so an add-on
settings page can show them.
Capability names are a closed list owned by the host. Sensitive names
may be listed by a kind but are never granted to a role; only a paired
sender can use them.
Pairing proves that the owner controls a platform account. The owner
asks for a one-use code (valid ten minutes) and sends it as a direct
message to the bot from an allowlisted account. The host checks the code
before any model turn and never logs it. A binding holds three paired
senders, a pairing ends after 90 days, and five wrong codes in an hour
lock the sender out for an hour.
Contract: connector kinds gain optional roles and permissions, and a
message gains optional roles. They need manifest api 2, which the host
already accepts; protocol is unchanged and manifests that declare
nothing new behave as before. The host drops roles a kind does not
declare.
Enforcement of the capabilities by feature is not part of this change.
Assisted-by: Claude:claude-sonnet-5-5 go swag
2026-11-03 13:52:56 +00:00
..
2026-11-02 23:50:40 +00:00
2026-11-03 09:30:26 +00:00
2026-11-02 21:03:50 +01:00
2026-11-03 13:52:56 +00:00
2026-11-03 09:28:57 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 10:58:46 +00:00
2026-11-02 23:50:40 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 09:42:29 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 10:43:37 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 08:39:12 +00:00
2026-11-01 18:30:08 +01:00
2026-11-01 18:30:08 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 09:30:26 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 10:43:37 +00:00
2026-11-03 08:39:12 +00:00
2026-11-03 12:07:30 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 08:38:53 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 08:38:35 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 10:15:03 +00:00
2026-11-01 18:30:08 +01:00
2026-11-01 18:30:08 +01:00
2026-11-03 08:34:58 +01:00
2026-11-03 10:07:46 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 10:07:46 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 18:30:08 +01:00
2026-11-01 18:30:08 +01:00
2026-11-01 18:30:08 +01:00
2026-11-01 18:30:08 +01:00
2026-11-01 18:30:08 +01:00
2026-11-01 18:30:08 +01:00
2026-11-03 08:30:08 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 18:30:08 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 11:47:50 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 09:33:24 +00:00
2026-11-03 09:33:24 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 11:31:37 +00:00
2026-11-03 11:31:36 +00:00
2026-11-01 18:30:08 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 09:47:19 +00:00
2026-11-03 09:47:19 +00:00
2026-11-03 09:30:26 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 08:38:53 +00:00
2026-11-01 18:30:08 +01:00
2026-11-01 18:30:08 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 18:30:08 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 10:43:37 +00:00
2026-11-01 18:30:08 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 18:30:08 +01:00
2026-11-03 11:47:50 +00:00
2026-11-03 11:47:50 +00:00
2026-11-03 11:47:50 +00:00
2026-11-03 11:47:51 +00:00
2026-11-02 01:16:55 +00:00
2026-11-03 13:52:56 +00:00
2026-11-03 13:52:56 +00:00
2026-11-03 11:47:50 +00:00
2026-11-03 11:47:50 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 13:52:56 +00:00
2026-11-03 11:54:33 +00:00
2026-11-03 12:07:30 +00:00
2026-11-03 11:54:33 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 13:52:56 +00:00
2026-11-02 01:16:55 +00:00
2026-11-03 13:52:56 +00:00
2026-11-03 11:30:11 +00:00
2026-11-03 11:54:33 +00:00
2026-11-03 11:47:50 +00:00
2026-11-03 11:47:50 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 09:45:27 +00:00
2026-11-03 09:45:27 +00:00
2026-11-03 09:28:57 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 11:31:37 +00:00
2026-11-02 18:48:39 +01:00
2026-11-03 10:58:46 +00:00
2026-11-03 10:58:46 +00:00
2026-11-03 10:58:46 +00:00
2026-11-03 10:58:46 +00:00
2026-11-02 18:48:39 +01:00
2026-11-03 10:43:37 +00:00
2026-11-03 10:43:37 +00:00
2026-11-03 10:58:46 +00:00
2026-11-03 10:58:46 +00:00
2026-11-03 11:31:36 +00:00
2026-11-03 11:31:37 +00:00
2026-11-02 23:50:40 +00:00
2026-11-02 23:50:40 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 08:39:12 +00:00
2026-11-03 10:43:37 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 18:30:08 +01:00
2026-11-03 11:31:36 +00:00
2026-11-03 11:31:36 +00:00
2026-11-03 08:38:53 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-02 18:48:39 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-02 18:48:39 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 10:07:46 +00:00
2026-11-03 10:58:46 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 10:58:46 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 18:30:08 +01:00
2026-11-01 18:30:08 +01:00
2026-11-01 18:30:08 +01:00
2026-11-03 11:31:36 +00:00
2026-11-01 18:30:08 +01:00
2026-11-01 18:30:08 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 08:30:08 +00:00
2026-11-03 11:41:13 +00:00
2026-11-02 18:48:39 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 10:07:46 +00:00
2026-11-03 10:07:46 +00:00
2026-11-02 18:48:39 +01:00
2026-11-02 18:48:39 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-02 21:03:50 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 08:39:30 +00:00
2026-11-03 08:38:53 +00:00
2026-11-01 18:30:08 +01:00
2026-11-03 10:58:46 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-02 21:03:50 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 10:43:37 +00:00
2026-11-02 23:50:40 +00:00
2026-11-02 21:03:50 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 18:30:08 +01:00
2026-11-01 18:30:08 +01:00
2026-11-01 18:30:08 +01:00
2026-11-02 23:50:40 +00:00
2026-11-03 08:38:53 +00:00
2026-11-01 18:30:08 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 18:30:08 +01:00
2026-11-03 09:37:07 +00:00
2026-11-01 18:30:08 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 18:30:08 +01:00
2026-11-01 12:08:23 +01:00