From 7b44f480eec764d4798554c0a9bc54d740b16c05 Mon Sep 17 00:00:00 2001 From: Steve Moyer Date: Tue, 11 Mar 2025 12:41:24 -0400 Subject: [PATCH 1/5] fix(invocation): iat incorrectly named InvokedAt instead of IssuedAt --- token/invocation/invocation.go | 14 +++++++------- token/invocation/ipld.go | 4 ++-- token/invocation/options.go | 4 ++-- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/token/invocation/invocation.go b/token/invocation/invocation.go index a7b091b..42dc06a 100644 --- a/token/invocation/invocation.go +++ b/token/invocation/invocation.go @@ -51,7 +51,7 @@ type Token struct { // The timestamp at which the Invocation becomes invalid expiration *time.Time // The timestamp at which the Invocation was created - invokedAt *time.Time + issuedAt *time.Time // An optional CID of the Receipt that enqueued the Task cause *cid.Cid @@ -85,7 +85,7 @@ func New(iss did.DID, cmd command.Command, sub did.DID, prf []cid.Cid, opts ...O proof: prf, meta: meta.NewMeta(), nonce: nil, - invokedAt: &iat, + issuedAt: &iat, } for _, opt := range opts { @@ -192,10 +192,10 @@ func (t *Token) Expiration() *time.Time { return t.expiration } -// InvokedAt returns the time.Time at which the invocation token was +// IssuedAt returns the time.Time at which the invocation token was // created. -func (t *Token) InvokedAt() *time.Time { - return t.invokedAt +func (t *Token) IssuedAt() *time.Time { + return t.issuedAt } // Cause returns the Token's (optional) cause field which may specify @@ -231,7 +231,7 @@ func (t *Token) String() string { res.WriteString(fmt.Sprintf("Nonce: %s\n", base64.StdEncoding.EncodeToString(t.Nonce()))) res.WriteString(fmt.Sprintf("Meta: %s\n", t.Meta())) res.WriteString(fmt.Sprintf("Expiration: %v\n", t.Expiration())) - res.WriteString(fmt.Sprintf("Invoked At: %v\n", t.InvokedAt())) + res.WriteString(fmt.Sprintf("Invoked At: %v\n", t.IssuedAt())) res.WriteString(fmt.Sprintf("Cause: %v", t.Cause())) return res.String() @@ -313,7 +313,7 @@ func tokenFromModel(m tokenPayloadModel) (*Token, error) { return nil, fmt.Errorf("parse expiration: %w", err) } - tkn.invokedAt, err = parse.OptionalTimestamp(m.Iat) + tkn.issuedAt, err = parse.OptionalTimestamp(m.Iat) if err != nil { return nil, fmt.Errorf("parse invokedAt: %w", err) } diff --git a/token/invocation/ipld.go b/token/invocation/ipld.go index 39ae0fc..0158de7 100644 --- a/token/invocation/ipld.go +++ b/token/invocation/ipld.go @@ -217,8 +217,8 @@ func (t *Token) toIPLD(privKey crypto.PrivKey) (datamodel.Node, error) { } var iat *int64 - if t.invokedAt != nil { - i := t.invokedAt.Unix() + if t.issuedAt != nil { + i := t.issuedAt.Unix() iat = &i } diff --git a/token/invocation/options.go b/token/invocation/options.go index dcf7fc8..227f5d5 100644 --- a/token/invocation/options.go +++ b/token/invocation/options.go @@ -131,7 +131,7 @@ func WithExpirationIn(after time.Duration) Option { // Token without this field being set, use the WithoutInvokedAt Option. func WithInvokedAt(iat time.Time) Option { return func(t *Token) error { - t.invokedAt = &iat + t.issuedAt = &iat return nil } @@ -146,7 +146,7 @@ func WithInvokedAtIn(after time.Duration) Option { // WithoutInvokedAt clears the Token's invokedAt field. func WithoutInvokedAt() Option { return func(t *Token) error { - t.invokedAt = nil + t.issuedAt = nil return nil } From d7472621ce57c5954867a186961ce99e0b098b37 Mon Sep 17 00:00:00 2001 From: Steve Moyer Date: Tue, 11 Mar 2025 12:56:34 -0400 Subject: [PATCH 2/5] Update token/invocation/invocation.go MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Michael Muré Signed-off-by: Steve Moyer --- token/invocation/invocation.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/token/invocation/invocation.go b/token/invocation/invocation.go index 42dc06a..1bcef10 100644 --- a/token/invocation/invocation.go +++ b/token/invocation/invocation.go @@ -231,7 +231,7 @@ func (t *Token) String() string { res.WriteString(fmt.Sprintf("Nonce: %s\n", base64.StdEncoding.EncodeToString(t.Nonce()))) res.WriteString(fmt.Sprintf("Meta: %s\n", t.Meta())) res.WriteString(fmt.Sprintf("Expiration: %v\n", t.Expiration())) - res.WriteString(fmt.Sprintf("Invoked At: %v\n", t.IssuedAt())) + res.WriteString(fmt.Sprintf("Issued At: %v\n", t.IssuedAt())) res.WriteString(fmt.Sprintf("Cause: %v", t.Cause())) return res.String() From 05c2573d9538f87af10193ab94ed0d97b975acd6 Mon Sep 17 00:00:00 2001 From: Steve Moyer Date: Tue, 11 Mar 2025 12:56:49 -0400 Subject: [PATCH 3/5] Update token/invocation/options.go MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Michael Muré Signed-off-by: Steve Moyer --- token/invocation/options.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/token/invocation/options.go b/token/invocation/options.go index 227f5d5..9034e3b 100644 --- a/token/invocation/options.go +++ b/token/invocation/options.go @@ -144,7 +144,7 @@ func WithInvokedAtIn(after time.Duration) Option { } // WithoutInvokedAt clears the Token's invokedAt field. -func WithoutInvokedAt() Option { +func WithoutIssuedAt() Option { return func(t *Token) error { t.issuedAt = nil From fbf55e98baa377f2cb43af508ac61a026fd6979e Mon Sep 17 00:00:00 2001 From: Steve Moyer Date: Tue, 11 Mar 2025 12:57:08 -0400 Subject: [PATCH 4/5] Update token/invocation/options.go MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Michael Muré Signed-off-by: Steve Moyer --- token/invocation/options.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/token/invocation/options.go b/token/invocation/options.go index 9034e3b..1dce7aa 100644 --- a/token/invocation/options.go +++ b/token/invocation/options.go @@ -129,7 +129,7 @@ func WithExpirationIn(after time.Duration) Option { // If this Option is not provided, the invocation Token's iat field will // be set to the value of time.Now(). If you want to create an invocation // Token without this field being set, use the WithoutInvokedAt Option. -func WithInvokedAt(iat time.Time) Option { +func WithIssuedAt(iat time.Time) Option { return func(t *Token) error { t.issuedAt = &iat From 3faf9d598ca554ce28d28f8ec32c3093cc624fe2 Mon Sep 17 00:00:00 2001 From: Steve Moyer Date: Tue, 11 Mar 2025 13:04:00 -0400 Subject: [PATCH 5/5] fix(invocation): also update docs and examples --- token/invocation/examples_test.go | 2 +- token/invocation/invocation.go | 8 ++++---- token/invocation/ipld_test.go | 2 +- token/invocation/options.go | 12 ++++++------ 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/token/invocation/examples_test.go b/token/invocation/examples_test.go index e505a7d..c4f896b 100644 --- a/token/invocation/examples_test.go +++ b/token/invocation/examples_test.go @@ -34,7 +34,7 @@ func ExampleNew() { invocation.WithMeta("env", "development"), invocation.WithMeta("tags", meta["tags"]), invocation.WithExpirationIn(time.Minute), - invocation.WithoutInvokedAt()) + invocation.WithoutIssuedAt()) if err != nil { fmt.Println("failed to create invocation:", err.Error()) diff --git a/token/invocation/invocation.go b/token/invocation/invocation.go index 1bcef10..2796120 100644 --- a/token/invocation/invocation.go +++ b/token/invocation/invocation.go @@ -66,9 +66,9 @@ type Token struct { // WithNonce or WithEmptyNonce options to specify provide your own nonce // or to leave the nonce empty respectively. // -// If no invokedAt is provided, the current time is used. Use the -// WithInvokedAt or WithInvokedAtIn Options to specify a different time -// or the WithoutInvokedAt Option to clear the Token's invokedAt field. +// If no IssuedAt is provided, the current time is used. Use the +// IssuedAt or WithIssuedAtIn Options to specify a different time +// or the WithoutIssuedAt Option to clear the Token's IssuedAt field. // // With the exception of the WithMeta option, all others will overwrite // the previous contents of their target field. @@ -315,7 +315,7 @@ func tokenFromModel(m tokenPayloadModel) (*Token, error) { tkn.issuedAt, err = parse.OptionalTimestamp(m.Iat) if err != nil { - return nil, fmt.Errorf("parse invokedAt: %w", err) + return nil, fmt.Errorf("parse IssuedAt: %w", err) } tkn.cause = m.Cause diff --git a/token/invocation/ipld_test.go b/token/invocation/ipld_test.go index 4e822e3..3e2f81a 100644 --- a/token/invocation/ipld_test.go +++ b/token/invocation/ipld_test.go @@ -23,7 +23,7 @@ func TestSealUnsealRoundtrip(t *testing.T) { invocation.WithMeta("env", "development"), invocation.WithMeta("tags", meta["tags"]), invocation.WithExpirationIn(time.Minute), - invocation.WithoutInvokedAt(), + invocation.WithoutIssuedAt(), ) require.NoError(t, err) diff --git a/token/invocation/options.go b/token/invocation/options.go index 1dce7aa..55d1a29 100644 --- a/token/invocation/options.go +++ b/token/invocation/options.go @@ -123,12 +123,12 @@ func WithExpirationIn(after time.Duration) Option { return WithExpiration(time.Now().Add(after)) } -// WithInvokedAt sets the Token's invokedAt field to the provided +// WithIssuedAt sets the Token's IssuedAt field to the provided // time.Time. // // If this Option is not provided, the invocation Token's iat field will // be set to the value of time.Now(). If you want to create an invocation -// Token without this field being set, use the WithoutInvokedAt Option. +// Token without this field being set, use the WithoutIssuedAt Option. func WithIssuedAt(iat time.Time) Option { return func(t *Token) error { t.issuedAt = &iat @@ -137,13 +137,13 @@ func WithIssuedAt(iat time.Time) Option { } } -// WithInvokedAtIn sets the Token's invokedAt field to Now() plus the +// WithIssuedAtIn sets the Token's IssuedAt field to Now() plus the // given duration. -func WithInvokedAtIn(after time.Duration) Option { - return WithInvokedAt(time.Now().Add(after)) +func WithIssuedAtIn(after time.Duration) Option { + return WithIssuedAt(time.Now().Add(after)) } -// WithoutInvokedAt clears the Token's invokedAt field. +// WithoutIssuedAt clears the Token's IssuedAt field. func WithoutIssuedAt() Option { return func(t *Token) error { t.issuedAt = nil