mirror of
https://github.com/zitadel/zitadel.git
synced 2025-07-15 14:08:36 +00:00

This PR is still WIP and needs changes to at least the tests. # Which Problems Are Solved To be able to report analytical / telemetry data from deployed Zitadel systems back to a central endpoint, we designed a "service ping" functionality. See also https://github.com/zitadel/zitadel/issues/9706. This PR adds the first implementation to allow collection base data as well as report amount of resources such as organizations, users per organization and more. # How the Problems Are Solved - Added a worker to handle the different `ReportType` variations. - Schedule a periodic job to start a `ServicePingReport` - Configuration added to allow customization of what data will be reported - Setup step to generate and store a `systemID` # Additional Changes None # Additional Context relates to #9869
45 lines
890 B
Go
45 lines
890 B
Go
package system
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/zitadel/zitadel/internal/eventstore"
|
|
)
|
|
|
|
func init() {
|
|
eventstore.RegisterFilterEventMapper(AggregateType, IDGeneratedType, eventstore.GenericEventMapper[IDGeneratedEvent])
|
|
}
|
|
|
|
const IDGeneratedType = AggregateType + ".id.generated"
|
|
|
|
type IDGeneratedEvent struct {
|
|
eventstore.BaseEvent `json:"-"`
|
|
|
|
ID string `json:"id"`
|
|
}
|
|
|
|
func (e *IDGeneratedEvent) SetBaseEvent(b *eventstore.BaseEvent) {
|
|
e.BaseEvent = *b
|
|
}
|
|
|
|
func (e *IDGeneratedEvent) Payload() interface{} {
|
|
return e
|
|
}
|
|
|
|
func (e *IDGeneratedEvent) UniqueConstraints() []*eventstore.UniqueConstraint {
|
|
return nil
|
|
}
|
|
|
|
func NewIDGeneratedEvent(
|
|
ctx context.Context,
|
|
id string,
|
|
) *IDGeneratedEvent {
|
|
return &IDGeneratedEvent{
|
|
BaseEvent: *eventstore.NewBaseEventForPush(
|
|
ctx,
|
|
eventstore.NewAggregate(ctx, AggregateOwner, AggregateType, "v1"),
|
|
IDGeneratedType),
|
|
ID: id,
|
|
}
|
|
}
|