export

package
v0.4.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 25, 2026 License: MIT Imports: 13 Imported by: 0

Documentation

Overview

Package export provides functionality to export Keycloak resources to Kubernetes CRD manifests.

Index

Constants

View Source
const (
	ResourceTypeRealm             = "realm"
	ResourceTypeClients           = "clients"
	ResourceTypeClientScopes      = "client-scopes"
	ResourceTypeUsers             = "users"
	ResourceTypeGroups            = "groups"
	ResourceTypeRoles             = "roles"
	ResourceTypeRoleMappings      = "role-mappings"
	ResourceTypeIdentityProviders = "identity-providers"
	ResourceTypeComponents        = "components"
	ResourceTypeProtocolMappers   = "protocol-mappers"
	ResourceTypeOrganizations     = "organizations"
)

Resource type constants

Variables

This section is empty.

Functions

This section is empty.

Types

type ExportedResource

type ExportedResource struct {
	Kind       string
	Name       string
	APIVersion string
	Object     interface{}
}

ExportedResource represents an exported Keycloak resource

type Exporter

type Exporter struct {
	// contains filtered or unexported fields
}

Exporter exports Keycloak resources to CRD manifests

func NewExporter

func NewExporter(client *keycloak.Client, log logr.Logger, opts ExporterOptions) *Exporter

NewExporter creates a new exporter

func (*Exporter) Export

func (e *Exporter) Export(ctx context.Context) ([]ExportedResource, error)

Export exports all resources from the realm

type ExporterOptions

type ExporterOptions struct {
	// Realm to export
	Realm string

	// Target namespace for generated manifests
	TargetNamespace string

	// Instance reference for generated manifests
	InstanceRef string

	// Realm reference for generated manifests (defaults to realm name)
	RealmRef string

	// Include only these resource types (empty means all)
	Include []string

	// Exclude these resource types
	Exclude []string

	// Skip Keycloak built-in resources
	SkipDefaults bool
}

ExporterOptions configures the export behavior

type Filter

type Filter struct {
	// contains filtered or unexported fields
}

Filter determines which resources to include/exclude

func NewFilter

func NewFilter(include, exclude []string, skipDefaults bool) *Filter

NewFilter creates a new filter

func (*Filter) ShouldIncludeType

func (f *Filter) ShouldIncludeType(resourceType string) bool

ShouldIncludeType checks if a resource type should be included

func (*Filter) ShouldSkipClient

func (f *Filter) ShouldSkipClient(clientID string) bool

ShouldSkipClient checks if a client should be skipped

func (*Filter) ShouldSkipClientScope

func (f *Filter) ShouldSkipClientScope(name string) bool

ShouldSkipClientScope checks if a client scope should be skipped

func (*Filter) ShouldSkipComponent

func (f *Filter) ShouldSkipComponent(name, providerType string) bool

ShouldSkipComponent checks if a component should be skipped

func (*Filter) ShouldSkipProtocolMapper

func (f *Filter) ShouldSkipProtocolMapper(name string) bool

ShouldSkipProtocolMapper checks if a protocol mapper should be skipped

func (*Filter) ShouldSkipRole

func (f *Filter) ShouldSkipRole(name string, isClientRole bool) bool

ShouldSkipRole checks if a role should be skipped

func (*Filter) ShouldSkipUser

func (f *Filter) ShouldSkipUser(username string) bool

ShouldSkipUser checks if a user should be skipped

type Transformer

type Transformer struct {
	// contains filtered or unexported fields
}

Transformer transforms Keycloak JSON to CRD structs

func NewTransformer

func NewTransformer(opts TransformerOptions) *Transformer

NewTransformer creates a new transformer

func (*Transformer) TransformClient

func (t *Transformer) TransformClient(raw json.RawMessage, clientID string) (ExportedResource, error)

TransformClient transforms a client JSON to KeycloakClient

func (*Transformer) TransformClientScope

func (t *Transformer) TransformClientScope(raw json.RawMessage) (ExportedResource, error)

TransformClientScope transforms a client scope JSON to KeycloakClientScope

func (*Transformer) TransformComponent

func (t *Transformer) TransformComponent(raw json.RawMessage) (ExportedResource, error)

TransformComponent transforms a component JSON to KeycloakComponent

func (*Transformer) TransformGroup

func (t *Transformer) TransformGroup(raw json.RawMessage, parentGroupName string) (ExportedResource, error)

TransformGroup transforms a group JSON to KeycloakGroup

func (*Transformer) TransformIdentityProvider

func (t *Transformer) TransformIdentityProvider(raw json.RawMessage) (ExportedResource, error)

TransformIdentityProvider transforms an identity provider JSON to KeycloakIdentityProvider

func (*Transformer) TransformOrganization

func (t *Transformer) TransformOrganization(raw json.RawMessage) (ExportedResource, error)

TransformOrganization transforms an organization JSON to KeycloakOrganization

func (*Transformer) TransformProtocolMapper

func (t *Transformer) TransformProtocolMapper(raw json.RawMessage, clientID, scopeName string) (ExportedResource, error)

TransformProtocolMapper transforms a protocol mapper JSON to KeycloakProtocolMapper

func (*Transformer) TransformRealm

func (t *Transformer) TransformRealm(raw json.RawMessage, realmName string) (ExportedResource, error)

TransformRealm transforms a realm JSON to KeycloakRealm

func (*Transformer) TransformRole

func (t *Transformer) TransformRole(raw json.RawMessage, clientID, clientUUID string) (ExportedResource, error)

TransformRole transforms a role JSON to KeycloakRole

func (*Transformer) TransformRoleMapping

func (t *Transformer) TransformRoleMapping(subjectType, subjectName, roleName, clientID, clientUUID string) (ExportedResource, error)

TransformRoleMapping creates a KeycloakRoleMapping

func (*Transformer) TransformUser

func (t *Transformer) TransformUser(raw json.RawMessage) (ExportedResource, error)

TransformUser transforms a user JSON to KeycloakUser

type TransformerOptions

type TransformerOptions struct {
	TargetNamespace string
	InstanceRef     string
	RealmRef        string
}

TransformerOptions configures the transformer

type Writer

type Writer struct {
	// contains filtered or unexported fields
}

Writer writes exported resources to output

func NewWriter

func NewWriter(opts WriterOptions) *Writer

NewWriter creates a new writer

func (*Writer) Write

func (w *Writer) Write(resources []ExportedResource) error

Write writes resources to the configured output

type WriterOptions

type WriterOptions struct {
	OutputFile string
	OutputDir  string
}

WriterOptions configures the writer

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL