From 2a6403bafc691cf5d4278bcbe6af953d604d95ec Mon Sep 17 00:00:00 2001 From: Srdjan S Date: Thu, 17 Sep 2026 15:01:18 +0200 Subject: [PATCH] feat(commands): add the /s3/key/marker binding Hilt hand-writes the /s3/key/marker command with command.MustParse, which the repo rule against hand-written command strings forbids. Bind it here so Hilt can use it like every other command. Co-Authored-By: Claude Fable 5.1 --- commands/s3/key/marker.go | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 commands/s3/key/marker.go diff --git a/commands/s3/key/marker.go b/commands/s3/key/marker.go new file mode 100644 index 0000000..92e71aa --- /dev/null +++ b/commands/s3/key/marker.go @@ -0,0 +1,20 @@ +//go:build !codegen + +// Package key defines the `/s3/key/...` commands for tenant access keys. +// +// A principal-bound access key holds exactly one delegation: the marker, issued +// by the tenant to the key with the tenant as subject. It grants nothing, +// appears in no proof chain, and is never invoked. It exists so the key has a +// delegation CID that the gateway holds and Hilt can revoke through +// `/ucan/revoke`. +package key + +import ( + "github.com/fil-forge/libforge/commands" + "github.com/fil-forge/ucantone/binding" + "github.com/fil-forge/ucantone/ucan/command" +) + +// Marker is the `/s3/key/marker` command. Its arguments and result are both +// empty, because nothing ever invokes it. +var Marker = binding.Bind[*commands.Unit, *commands.Unit](command.MustParse("/s3/key/marker"))