diff --git a/acme/account.go b/acme/account.go index 38cca218..246e031b 100644 --- a/acme/account.go +++ b/acme/account.go @@ -21,6 +21,7 @@ type Account struct { OrdersURL string `json:"orders"` ExternalAccountBinding interface{} `json:"externalAccountBinding,omitempty"` LocationPrefix string `json:"-"` + ProvisionerID string `json:"-"` ProvisionerName string `json:"-"` } diff --git a/acme/api/account.go b/acme/api/account.go index 25d923c7..62d62f09 100644 --- a/acme/api/account.go +++ b/acme/api/account.go @@ -136,7 +136,8 @@ func NewAccount(w http.ResponseWriter, r *http.Request) { Contact: nar.Contact, Status: acme.StatusValid, LocationPrefix: getAccountLocationPath(ctx, linker, ""), - ProvisionerName: prov.GetName(), + ProvisionerID: prov.ID, + ProvisionerName: prov.Name, } if err := db.CreateAccount(ctx, acc); err != nil { render.Error(w, acme.WrapErrorISE(err, "error creating account")) diff --git a/acme/db/nosql/account.go b/acme/db/nosql/account.go index d590ccb3..9b03db81 100644 --- a/acme/db/nosql/account.go +++ b/acme/db/nosql/account.go @@ -18,6 +18,7 @@ type dbAccount struct { Contact []string `json:"contact,omitempty"` Status acme.Status `json:"status"` LocationPrefix string `json:"locationPrefix"` + ProvisionerID string `json:"provisionerID,omitempty"` ProvisionerName string `json:"provisionerName"` CreatedAt time.Time `json:"createdAt"` DeactivatedAt time.Time `json:"deactivatedAt"` @@ -69,6 +70,7 @@ func (db *DB) GetAccount(ctx context.Context, id string) (*acme.Account, error) Key: dbacc.Key, ID: dbacc.ID, LocationPrefix: dbacc.LocationPrefix, + ProvisionerID: dbacc.ProvisionerID, ProvisionerName: dbacc.ProvisionerName, }, nil } @@ -97,6 +99,7 @@ func (db *DB) CreateAccount(ctx context.Context, acc *acme.Account) error { Status: acc.Status, CreatedAt: clock.Now(), LocationPrefix: acc.LocationPrefix, + ProvisionerID: acc.ProvisionerID, ProvisionerName: acc.ProvisionerName, } diff --git a/acme/db/nosql/account_test.go b/acme/db/nosql/account_test.go index 085ce2eb..4eacd0e7 100644 --- a/acme/db/nosql/account_test.go +++ b/acme/db/nosql/account_test.go @@ -68,12 +68,14 @@ func TestDB_getDBAccount(t *testing.T) { jwk, err := jose.GenerateJWK("EC", "P-256", "ES256", "sig", "", 0) assert.FatalError(t, err) dbacc := &dbAccount{ - ID: accID, - Status: acme.StatusDeactivated, - CreatedAt: now, - DeactivatedAt: now, - Contact: []string{"foo", "bar"}, - Key: jwk, + ID: accID, + Status: acme.StatusDeactivated, + CreatedAt: now, + DeactivatedAt: now, + Contact: []string{"foo", "bar"}, + Key: jwk, + ProvisionerID: "73d2c0f1-9753-448b-9b48-bf00fe434681", + ProvisionerName: "acme", } b, err := json.Marshal(dbacc) assert.FatalError(t, err)