Merge pull request #112 from ucan-wg/fix/invokedat-to-issued-at

fix(invocation): iat incorrectly named InvokedAt instead of IssuedAt
This commit is contained in:
Steve Moyer
2025-03-11 13:20:25 -04:00
committed by GitHub
5 changed files with 25 additions and 25 deletions

View File

@@ -34,7 +34,7 @@ func ExampleNew() {
invocation.WithMeta("env", "development"), invocation.WithMeta("env", "development"),
invocation.WithMeta("tags", meta["tags"]), invocation.WithMeta("tags", meta["tags"]),
invocation.WithExpirationIn(time.Minute), invocation.WithExpirationIn(time.Minute),
invocation.WithoutInvokedAt()) invocation.WithoutIssuedAt())
if err != nil { if err != nil {
fmt.Println("failed to create invocation:", err.Error()) fmt.Println("failed to create invocation:", err.Error())

View File

@@ -51,7 +51,7 @@ type Token struct {
// The timestamp at which the Invocation becomes invalid // The timestamp at which the Invocation becomes invalid
expiration *time.Time expiration *time.Time
// The timestamp at which the Invocation was created // The timestamp at which the Invocation was created
invokedAt *time.Time issuedAt *time.Time
// An optional CID of the Receipt that enqueued the Task // An optional CID of the Receipt that enqueued the Task
cause *cid.Cid cause *cid.Cid
@@ -66,9 +66,9 @@ type Token struct {
// WithNonce or WithEmptyNonce options to specify provide your own nonce // WithNonce or WithEmptyNonce options to specify provide your own nonce
// or to leave the nonce empty respectively. // or to leave the nonce empty respectively.
// //
// If no invokedAt is provided, the current time is used. Use the // If no IssuedAt is provided, the current time is used. Use the
// WithInvokedAt or WithInvokedAtIn Options to specify a different time // IssuedAt or WithIssuedAtIn Options to specify a different time
// or the WithoutInvokedAt Option to clear the Token's invokedAt field. // or the WithoutIssuedAt Option to clear the Token's IssuedAt field.
// //
// With the exception of the WithMeta option, all others will overwrite // With the exception of the WithMeta option, all others will overwrite
// the previous contents of their target field. // the previous contents of their target field.
@@ -85,7 +85,7 @@ func New(iss did.DID, cmd command.Command, sub did.DID, prf []cid.Cid, opts ...O
proof: prf, proof: prf,
meta: meta.NewMeta(), meta: meta.NewMeta(),
nonce: nil, nonce: nil,
invokedAt: &iat, issuedAt: &iat,
} }
for _, opt := range opts { for _, opt := range opts {
@@ -192,10 +192,10 @@ func (t *Token) Expiration() *time.Time {
return t.expiration 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. // created.
func (t *Token) InvokedAt() *time.Time { func (t *Token) IssuedAt() *time.Time {
return t.invokedAt return t.issuedAt
} }
// Cause returns the Token's (optional) cause field which may specify // 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("Nonce: %s\n", base64.StdEncoding.EncodeToString(t.Nonce())))
res.WriteString(fmt.Sprintf("Meta: %s\n", t.Meta())) res.WriteString(fmt.Sprintf("Meta: %s\n", t.Meta()))
res.WriteString(fmt.Sprintf("Expiration: %v\n", t.Expiration())) res.WriteString(fmt.Sprintf("Expiration: %v\n", t.Expiration()))
res.WriteString(fmt.Sprintf("Invoked At: %v\n", t.InvokedAt())) res.WriteString(fmt.Sprintf("Issued At: %v\n", t.IssuedAt()))
res.WriteString(fmt.Sprintf("Cause: %v", t.Cause())) res.WriteString(fmt.Sprintf("Cause: %v", t.Cause()))
return res.String() return res.String()
@@ -313,9 +313,9 @@ func tokenFromModel(m tokenPayloadModel) (*Token, error) {
return nil, fmt.Errorf("parse expiration: %w", err) 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 { if err != nil {
return nil, fmt.Errorf("parse invokedAt: %w", err) return nil, fmt.Errorf("parse IssuedAt: %w", err)
} }
tkn.cause = m.Cause tkn.cause = m.Cause

View File

@@ -217,8 +217,8 @@ func (t *Token) toIPLD(privKey crypto.PrivKey) (datamodel.Node, error) {
} }
var iat *int64 var iat *int64
if t.invokedAt != nil { if t.issuedAt != nil {
i := t.invokedAt.Unix() i := t.issuedAt.Unix()
iat = &i iat = &i
} }

View File

@@ -23,7 +23,7 @@ func TestSealUnsealRoundtrip(t *testing.T) {
invocation.WithMeta("env", "development"), invocation.WithMeta("env", "development"),
invocation.WithMeta("tags", meta["tags"]), invocation.WithMeta("tags", meta["tags"]),
invocation.WithExpirationIn(time.Minute), invocation.WithExpirationIn(time.Minute),
invocation.WithoutInvokedAt(), invocation.WithoutIssuedAt(),
) )
require.NoError(t, err) require.NoError(t, err)

View File

@@ -123,30 +123,30 @@ func WithExpirationIn(after time.Duration) Option {
return WithExpiration(time.Now().Add(after)) 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. // time.Time.
// //
// If this Option is not provided, the invocation Token's iat field will // 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 // 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 WithInvokedAt(iat time.Time) Option { func WithIssuedAt(iat time.Time) Option {
return func(t *Token) error { return func(t *Token) error {
t.invokedAt = &iat t.issuedAt = &iat
return nil return nil
} }
} }
// WithInvokedAtIn sets the Token's invokedAt field to Now() plus the // WithIssuedAtIn sets the Token's IssuedAt field to Now() plus the
// given duration. // given duration.
func WithInvokedAtIn(after time.Duration) Option { func WithIssuedAtIn(after time.Duration) Option {
return WithInvokedAt(time.Now().Add(after)) return WithIssuedAt(time.Now().Add(after))
} }
// WithoutInvokedAt clears the Token's invokedAt field. // WithoutIssuedAt clears the Token's IssuedAt field.
func WithoutInvokedAt() Option { func WithoutIssuedAt() Option {
return func(t *Token) error { return func(t *Token) error {
t.invokedAt = nil t.issuedAt = nil
return nil return nil
} }