mirror of
https://github.com/zitadel/zitadel.git
synced 2024-12-21 15:27:31 +00:00
47ffa52f0f
* feat(instance): implement create instance with direct machine user and credentials * fix: deprecated add endpoint and variable declaration * fix(instance): update logic for pats and machinekeys * fix(instance): unit test corrections and additional unit test for pats and machinekeys * fix(instance-create): include review changes * fix(instance-create): linter fixes * move iframe usage to solution scenarios configurations * Revert "move iframe usage to solution scenarios configurations" This reverts commit 9db31f3808e6dfcae9907bc574c072436a19865a. * fix merge * fix: add review suggestions Co-authored-by: Livio Spring <livio.a@gmail.com> * fix: add review changes * fix: add review changes for default definitions * fix: add review changes for machinekey details * fix: add machinekey output when setup with machineuser * fix: add changes from review * fix instance converter for machine and allow overwriting of further machine fields Co-authored-by: Livio Spring <livio.a@gmail.com>
75 lines
1.6 KiB
Go
75 lines
1.6 KiB
Go
package domain
|
|
|
|
import (
|
|
"encoding/json"
|
|
"time"
|
|
|
|
"github.com/zitadel/zitadel/internal/errors"
|
|
"github.com/zitadel/zitadel/internal/eventstore/v1/models"
|
|
)
|
|
|
|
type MachineKey struct {
|
|
models.ObjectRoot
|
|
|
|
KeyID string
|
|
Type AuthNKeyType
|
|
ExpirationDate time.Time
|
|
PrivateKey []byte
|
|
PublicKey []byte
|
|
}
|
|
|
|
func (key *MachineKey) setPublicKey(publicKey []byte) {
|
|
key.PublicKey = publicKey
|
|
}
|
|
|
|
func (key *MachineKey) setPrivateKey(privateKey []byte) {
|
|
key.PrivateKey = privateKey
|
|
}
|
|
|
|
func (key *MachineKey) expirationDate() time.Time {
|
|
return key.ExpirationDate
|
|
}
|
|
|
|
func (key *MachineKey) setExpirationDate(expiration time.Time) {
|
|
key.ExpirationDate = expiration
|
|
}
|
|
|
|
func (key *MachineKey) Detail() ([]byte, error) {
|
|
if key.Type == AuthNKeyTypeJSON {
|
|
return key.MarshalJSON()
|
|
}
|
|
return nil, errors.ThrowPreconditionFailed(nil, "KEY-dsg52", "Errors.Internal")
|
|
}
|
|
|
|
func (key *MachineKey) MarshalJSON() ([]byte, error) {
|
|
return MachineKeyMarshalJSON(key.KeyID, key.PrivateKey, key.AggregateID)
|
|
}
|
|
|
|
type MachineKeyState int32
|
|
|
|
const (
|
|
MachineKeyStateUnspecified MachineKeyState = iota
|
|
MachineKeyStateActive
|
|
MachineKeyStateRemoved
|
|
|
|
machineKeyStateCount
|
|
)
|
|
|
|
func (f MachineKeyState) Valid() bool {
|
|
return f >= 0 && f < machineKeyStateCount
|
|
}
|
|
|
|
func MachineKeyMarshalJSON(keyID string, privateKey []byte, userID string) ([]byte, error) {
|
|
return json.Marshal(struct {
|
|
Type string `json:"type"`
|
|
KeyID string `json:"keyId"`
|
|
Key string `json:"key"`
|
|
UserID string `json:"userId"`
|
|
}{
|
|
Type: "serviceaccount",
|
|
KeyID: keyID,
|
|
Key: string(privateKey),
|
|
UserID: userID,
|
|
})
|
|
}
|