chore: move the go code into a subfolder

This commit is contained in:
Florian Forster
2025-08-05 15:20:32 -07:00
parent 4ad22ba456
commit cd2921de26
2978 changed files with 373 additions and 300 deletions

View File

@@ -0,0 +1,25 @@
package webkey
import (
"context"
"github.com/zitadel/zitadel/internal/eventstore"
)
const (
AggregateType = "web_key"
AggregateVersion = "v1"
)
func NewAggregate(id, resourceOwner string) *eventstore.Aggregate {
return &eventstore.Aggregate{
Type: AggregateType,
Version: AggregateVersion,
ID: id,
ResourceOwner: resourceOwner,
}
}
func AggregateFromWriteModel(ctx context.Context, wm *eventstore.WriteModel) *eventstore.Aggregate {
return eventstore.AggregateFromWriteModelCtx(ctx, wm, AggregateType, AggregateVersion)
}

View File

@@ -0,0 +1,12 @@
package webkey
import (
"github.com/zitadel/zitadel/internal/eventstore"
)
func init() {
eventstore.RegisterFilterEventMapper(AggregateType, AddedEventType, eventstore.GenericEventMapper[AddedEvent])
eventstore.RegisterFilterEventMapper(AggregateType, ActivatedEventType, eventstore.GenericEventMapper[ActivatedEvent])
eventstore.RegisterFilterEventMapper(AggregateType, DeactivatedEventType, eventstore.GenericEventMapper[DeactivatedEvent])
eventstore.RegisterFilterEventMapper(AggregateType, RemovedEventType, eventstore.GenericEventMapper[RemovedEvent])
}

View File

@@ -0,0 +1,160 @@
package webkey
import (
"context"
"encoding/json"
"github.com/go-jose/go-jose/v4"
"github.com/zitadel/zitadel/internal/crypto"
"github.com/zitadel/zitadel/internal/eventstore"
"github.com/zitadel/zitadel/internal/zerrors"
)
const (
UniqueWebKeyType = "web_key"
)
const (
eventTypePrefix = eventstore.EventType("web_key.")
AddedEventType = eventTypePrefix + "added"
ActivatedEventType = eventTypePrefix + "activated"
DeactivatedEventType = eventTypePrefix + "deactivated"
RemovedEventType = eventTypePrefix + "removed"
)
type AddedEvent struct {
*eventstore.BaseEvent `json:"-"`
PrivateKey *crypto.CryptoValue `json:"privateKey"`
PublicKey *jose.JSONWebKey `json:"publicKey"`
Config json.RawMessage `json:"config"`
ConfigType crypto.WebKeyConfigType `json:"configType"`
}
func (e *AddedEvent) Payload() interface{} {
return e
}
func (e *AddedEvent) UniqueConstraints() []*eventstore.UniqueConstraint {
return []*eventstore.UniqueConstraint{
eventstore.NewAddEventUniqueConstraint(UniqueWebKeyType, e.Agg.ID, "Errors.WebKey.Duplicate"),
}
}
func (e *AddedEvent) SetBaseEvent(base *eventstore.BaseEvent) {
e.BaseEvent = base
}
func NewAddedEvent(
ctx context.Context,
aggregate *eventstore.Aggregate,
privateKey *crypto.CryptoValue,
publicKey *jose.JSONWebKey,
config crypto.WebKeyConfig,
) (*AddedEvent, error) {
configJson, err := json.Marshal(config)
if err != nil {
return nil, zerrors.ThrowInternal(err, "WEBKEY-IY9fa", "Errors.Internal")
}
return &AddedEvent{
BaseEvent: eventstore.NewBaseEventForPush(
ctx,
aggregate,
AddedEventType,
),
PrivateKey: privateKey,
PublicKey: publicKey,
Config: configJson,
ConfigType: config.Type(),
}, nil
}
type ActivatedEvent struct {
*eventstore.BaseEvent `json:"-"`
}
func (e *ActivatedEvent) Payload() interface{} {
return e
}
func (e *ActivatedEvent) UniqueConstraints() []*eventstore.UniqueConstraint {
return nil
}
func (e *ActivatedEvent) SetBaseEvent(base *eventstore.BaseEvent) {
e.BaseEvent = base
}
func NewActivatedEvent(
ctx context.Context,
aggregate *eventstore.Aggregate,
) *ActivatedEvent {
return &ActivatedEvent{
BaseEvent: eventstore.NewBaseEventForPush(
ctx,
aggregate,
ActivatedEventType,
),
}
}
type DeactivatedEvent struct {
*eventstore.BaseEvent `json:"-"`
}
func (e *DeactivatedEvent) Payload() interface{} {
return e
}
func (e *DeactivatedEvent) UniqueConstraints() []*eventstore.UniqueConstraint {
return nil
}
func (e *DeactivatedEvent) SetBaseEvent(base *eventstore.BaseEvent) {
e.BaseEvent = base
}
func NewDeactivatedEvent(
ctx context.Context,
aggregate *eventstore.Aggregate,
) *DeactivatedEvent {
return &DeactivatedEvent{
BaseEvent: eventstore.NewBaseEventForPush(
ctx,
aggregate,
DeactivatedEventType,
),
}
}
type RemovedEvent struct {
*eventstore.BaseEvent `json:"-"`
}
func (e *RemovedEvent) Payload() interface{} {
return e
}
func (e *RemovedEvent) UniqueConstraints() []*eventstore.UniqueConstraint {
return []*eventstore.UniqueConstraint{
eventstore.NewRemoveUniqueConstraint(UniqueWebKeyType, e.Agg.ID),
}
}
func (e *RemovedEvent) SetBaseEvent(base *eventstore.BaseEvent) {
e.BaseEvent = base
}
func NewRemovedEvent(
ctx context.Context,
aggregate *eventstore.Aggregate,
) *RemovedEvent {
return &RemovedEvent{
BaseEvent: eventstore.NewBaseEventForPush(
ctx,
aggregate,
RemovedEventType,
),
}
}