Kora Config Hocon
HOCON configuration in Kora services via the config-hocon module and HoconConfigModule. Maps application.conf into type-safe interfaces with @ConfigSource (application config) and @ConfigValueExtractor (reusable/library config). Covers required vs @Nullable vs default-method values, environment substitution (${VAR}, ${?VAR}, default = ${?VAR} override), supported types (Duration, Period, Size, UU…
Kora Project Setup Kotlin
Scaffolds a new Kotlin Kora service with Gradle Kotlin DSL — KSP symbol processors, the kora-parent BOM, the koraBom configuration, jvmToolchain, a @KoraApp interface extending *Module interfaces, and the Gradle wrapper. Use when creating a Kotlin Kora project from scratch, wiring up build.gradle.kts / settings.gradle.kts / gradle.properties, configuring KSP (com.google.devtools.ksp), or splittin…
Kora Kafka Consumer
Declarative Apache Kafka consumers in Kora via @KafkaListener over a @Component method, plus the KafkaModule. Covers consume strategies (subscribe with group.id vs assign), method signatures (value, key+value, Headers, ConsumerRecord, ConsumerRecords, manual Consumer commit), @Json deserialization with @Tag, deserialization-error handling with @Nullable Exception, KafkaSkipRecordException, Consum…
Kora Http Client
Declarative Kora HTTP clients - @HttpClient interface with @HttpRoute, parameter mapping (@Path/@Query/@Header/@Cookie), @Json bodies, HttpResponseEntity, @Mapping and @ResponseCodeMapper, @InterceptWith interceptors, and OkHttp/AsyncHttpClient/JDK transports. Use when building a typed outbound HTTP client in a Kora service, wiring auth interceptors (Basic/ApiKey/Bearer), configuring per-client t…
Kora Aop Logging
Declarative method logging in Kora via the logging-common module — @Log (args + result), @Log.in / @Log.out / @Log.result, @Log.off to suppress a parameter or method, and @Mdc for Mapped Diagnostic Context (key/value, ${expr} interpolation, global thread scope). Covers the imperative ru.tinkoff.kora.logging.common.MDC API and the SLF4J-MDC import pitfall. Use when adding entry/exit logging to a s…
Kora Aop Validation
Kora declarative validation via its own constraint annotations (@NotBlank, @NotEmpty, @Pattern, @Range, @Size), class/record validation with @Valid (generates Validator<T>), method argument and result validation with @Validate (AOP), custom constraints via @ValidatedBy + ValidatorFactory, and ViolationException handling mapped to HTTP 400 with ValidationHttpServerInterceptor. Use when validating…
Kora Testing Blackbox
Black-box end-to-end testing of a packaged Kora application through its public HTTP API. Covers a GenericContainer AppContainer wrapper that builds the app Dockerfile, standard Testcontainers (PostgreSQLContainer, KafkaContainer) on Network.SHARED, readiness gating via Wait.forHttp(\"/system/readiness\") on the private port 8085, and driving the app with java.net.http.HttpClient or RestAssured. U…
Kora Aop Scheduling Jdk
In-process scheduled tasks in Kora backed by the JVM ScheduledExecutorService, enabled via SchedulingJdkModule and the scheduling-jdk artifact. Covers @ScheduleAtFixedRate (fixed period, may overlap), @ScheduleWithFixedDelay (gap after completion, never overlaps), @ScheduleOnce (single delayed run), externalizing parameters through the config attribute, the scheduling config section (threads, shu…
Kora Openapi Management
Serves OpenAPI specification files plus Swagger UI and RapiDoc viewers over the Kora HTTP server via the OpenApiManagementModule (ru.tinkoff.kora:openapi-management). Use when exposing an OpenAPI document at an /openapi endpoint, enabling a /swagger-ui or /rapidoc UI, publishing multiple spec versions with a selector, or gating documentation endpoints in production. Config lives under openapi.man…
Kora Aop Scheduling Quartz
Quartz-backed declarative scheduling in Kora via the scheduling-quartz artifact and QuartzModule. Covers @ScheduleWithCron for cron expressions, @ScheduleWithTrigger(@Tag(...)) for a custom Quartz Trigger component, @DisallowConcurrentExecution to prevent overlap, and @PersistJobDataAfterExecution for stateful jobs. Use when scheduling cron jobs, externalizing a cron via config, wiring a Quartz T…
Kora Database Jdbc
JDBC relational database integration for Kora. Builds compile-time @Repository interfaces extending JdbcRepository with @Query, @EntityJdbc records, @Table/@Column/@Id mapping, SQL macros (%{return#selects}, %{entity#inserts}, %{entity#where = @id}), @Batch, UpdateCount, @Id-on-method generated identifiers, transactions via JdbcConnectionFactory.inTx(), and custom JdbcResultSetMapper/JdbcRowMappe…
Kora Testing Junit Java
In-process JUnit 5 component and integration tests for Java Kora services. Covers @KoraAppTest, @TestComponent, @Mock/@Spy via Mockito, @Tag injection, KoraAppTestConfigModifier and KoraAppTestGraphModifier (KoraConfigModification, KoraGraphModification, TypeRef), the @KoraApp TestApplication submodule pattern, and Testcontainers (PostgreSQL + Flyway, Kafka). Use when writing JUnit 5 tests agains…
Kora S3
S3-compatible object storage integration (AWS S3, MinIO) in Kora apps. Declarative @S3.Client interfaces with @S3.Get/@S3.List/@S3.Put/@S3.Delete, imperative S3KoraClient, AWS SDK v2 or MinIO implementations, multipart uploads, and key templates. Use when storing files, images, or binary data. Triggers - @S3.Client, @S3.Get, @S3.Put, AwsS3ClientModule, MinioS3ClientModule, S3Body, S3Object, multi…
Kora Openapi Generator Server
Generates Kora HTTP server code from OpenAPI 3.x contracts with the kora generator of the org.openapi.generator Gradle plugin. Produces a generated *ApiController, an *ApiDelegate interface implemented with @Component, sealed *ApiResponses wrappers (one record per status code), and model records. Use when scaffolding a contract-first Kora HTTP server, choosing the server mode (java-server, java-a…
Kora Http Server
Builds Kora HTTP server controllers on the Undertow transport — @HttpController, @HttpRoute, parameter binding (@Path/@Query/@Header/@Cookie), @Json bodies, HttpServerResponse / HttpResponseEntity responses, HttpServerResponseException errors, and HttpServerInterceptor (global via @Tag(HttpServerModule.class) or per-route via @InterceptWith). Use when building REST endpoints, mapping requests to…
Kora Config Yaml
YAML configuration for Kora applications via the config-yaml artifact and YamlConfigModule. Binds application.yaml sections to type-safe interfaces with @ConfigSource and reusable shapes with @ConfigValueExtractor. Covers environment-variable substitution (${VAR}, ${?VAR}, ${VAR:default}), self-references, @Nullable optional values, default method bodies, and selecting files with config.resource/…
Kora Http Client Auth
Authentication for outgoing Kora HTTP clients. Covers the built-in BasicAuthHttpClientInterceptor, ApiKeyHttpClientInterceptor and BearerAuthHttpClientInterceptor, the HttpClientTokenProvider interface, attaching them with @InterceptWith, and hand-written HttpClientInterceptor classes for custom schemes (OAuth2 client credentials, JWT with caching/refresh). Use when adding Basic/Bearer/API-key au…
Kora Telemetry Metrics
Kora Micrometer metrics via the micrometer-module — MetricsModule wires a PrometheusMeterRegistry and a MeterRegistry into the graph for custom Counter/Gauge/Timer/DistributionSummary, exposed in Prometheus format on the private HTTP port (privateApiHttpMetricsPath). Covers MetricsConfig (metrics.opentelemetrySpec V120/V123), per-module telemetry.metrics.slo buckets, PrometheusMeterRegistryInitia…
Kora Grpc Client
Builds gRPC clients in Kora via GrpcClientModule, the protobuf Gradle plugin, and generated stubs injected directly into components. Covers grpcClient.<ServiceName> HOCON/YAML config, plaintext vs TLS through the URL scheme, custom ClientInterceptor scoped with @Tag(ServiceGrpc.class) for metadata auth and logging, and unary plus server/client/bidirectional streaming with blocking and async stubs…
Kora Project Dependencies
Catalog of Kora Framework Gradle artifacts plus a project generator. Covers the kora-parent BOM, annotation processors (Java annotation-processors) and KSP (Kotlin symbol-processors), the koraBom configuration with extendsFrom, real module artifact names (http-server-undertow, http-client-ok, database-jdbc, kafka, micrometer-module, opentelemetry-tracing-exporter-grpc, resilient-kora, cache-caffe…
Kora V1
Build Java/Kotlin services on Kora Framework (ru.tinkoff.kora). Compile-time DI, reflection-free, annotation-processor (Java) or KSP (Kotlin) driven. Triggers - any Kora task, @KoraApp, @Component, @Module, @KoraSubmodule, @HttpController, @HttpClient, @Repository, @Query, @KafkaListener, @KafkaPublisher, gRPC, SOAP/WSDL, @S3.Client, MapStruct, @KoraAppTest, Testcontainers, @ConfigSource HOCON/YA…
Kora Http Server Auth
HTTP server authentication and authorization in Kora. Covers HttpServerPrincipalExtractor<T> wired to OpenAPI-generated ApiSecurity markers (BearerAuth/BasicAuth/ApiKeyAuth/OAuth) via @Tag, the Principal / PrincipalWithScopes marker interfaces, SecurityException-to-403 mapping through an HttpServerInterceptor, and the manual HttpServerInterceptor + HttpServerRequestMapper path for non-OpenAPI aut…
Kora Teacher
Kora Framework teacher for beginners. Helps new users learn Kora from scratch by guiding through official guides, implementing example services, explaining every nuance. STRICT hierarchy - Guides (.kora-agent/kora-docs/mkdocs/docs/en/guides/) -> Docs (.kora-agent/kora-docs/mkdocs/docs/en/documentation/) -> Example apps (.kora-agent/kora-examples/). Never invent - only teach what's documented. Tri…
Kora Di Compile
Compile-time dependency injection in Kora Framework. Use when creating @KoraApp applications, @Component classes, @Module interfaces, @KoraSubmodule multi-module projects, @Root startup components, @Tag disambiguation, All<T> collections, ValueOf lazy dependencies, Lifecycle management, or debugging DI container errors - no factory found, ambiguous dependency, circular dependencies. Triggers - de…
Kora Openapi Generator Client
Generates declarative Kora HTTP clients from an OpenAPI 3.x contract using the org.openapi.generator Gradle plugin with generatorName \"kora\". Produces typed *Api interfaces whose methods return sealed *ApiResponses wrappers, plus model records. Use when scaffolding a Gradle GenerateTask for an OpenAPI client, choosing a client mode (java-client, java-async-client, java-reactive-client, kotlin-c…
Kora Aop Caching
Declarative and imperative caching for Kora via compile-time AOP. Covers @Cacheable (read-through), @CachePut (write-through), @CacheInvalidate (evict / invalidateAll), the typed @Cache contract over CaffeineCache (artifact cache-caffeine, in-process) and RedisCache (artifact cache-redis, Lettuce-backed, distributed), CacheKeyMapper + @Mapping for composite/derived keys, the parameters key attrib…
Kora Kafka Producer
Kafka message production in Kora via the @KafkaPublisher annotation on an interface. Covers @KafkaPublisher.Topic typed contracts, send signatures (void, RecordMetadata, Future/CompletionStage, ProducerRecord, Callback), @Json and @Tag serializer selection, KafkaPublishException handling, and transactional sends with TransactionalPublisher. Use when declaring a Kafka producer, publishing domain e…
Kora Database Cassandra
Kora Cassandra/ScyllaDB repositories over the DataStax driver via CassandraDatabaseModule. Covers @Repository extends CassandraRepository, @Query CQL, @EntityCassandra DAO records, @Column/@Id, @UDT user-defined types, @Batch writes, @CassandraProfile per-method consistency, custom CassandraRowMapper/CassandraResultSetMapper/CassandraParameterColumnMapper, and async signatures (CompletionStage, M…
Kora Telemetry Tracing
Kora OpenTelemetry distributed tracing — OTLP exporter modules (OpentelemetryGrpcExporterModule / OpentelemetryHttpExporterModule), tracing.exporter config, Tracer injection, manual spans, and OpentelemetryContext propagation tied to the Kora request Context. Use when adding the ru.tinkoff.kora:opentelemetry-tracing-exporter-grpc or -http artifact, configuring an OTLP endpoint to Jaeger/Zipkin/Te…
Kora Mapstruct
Integrates the MapStruct mapping library with Kora. A @Mapper interface (org.mapstruct.Mapper) is auto-discovered by Kora's MapStruct extension and its generated *MapperImpl is registered as a component in the DI graph - no @Component needed. Use when converting between request/response DTOs, domain entities, and persistence rows; when renaming fields with @Mapping, ignoring fields, computing val…
Kora Codex Metaskill
Build Java/Kotlin services on Kora Framework (ru.tinkoff.kora). Compile-time DI, reflection-free, annotation-processor (Java) or KSP (Kotlin) driven. Triggers - any Kora task, @KoraApp, @Component, @Module, @KoraSubmodule, @HttpController, @HttpClient, @Repository, @Query, @KafkaListener, @KafkaPublisher, gRPC, SOAP/WSDL, @S3.Client, MapStruct, @KoraAppTest, Testcontainers, @ConfigSource HOCON/YA…
Kora Grpc Server
Builds gRPC server handlers in Kora using GrpcServerModule, @Component handlers that extend the generated *GrpcImplBase, io.grpc ServerInterceptor beans, grpcServer HOCON/YAML config (port, maxMessageSize, telemetry), the com.google.protobuf Gradle plugin, and gRPC Server Reflection. Use when serving gRPC RPCs (unary/server/client/bidirectional streaming) from a Kora service, mapping protobuf mes…
Kora Testing Junit Kotlin
In-process JUnit 5 component and integration tests for Kora Kotlin services. Covers @KoraAppTest, @TestComponent, @MockK/@SpyK (and Mockito-Kotlin), KoraAppTestConfigModifier, KoraAppTestGraphModifier, the TestApplication submodule pattern, coroutine tests with runTest/coEvery, and Testcontainers. Use when writing the first Kora Kotlin test, mocking a graph dependency, overriding config in a test…
Kora Database Migration
Kora database migration modules for Flyway and Liquibase that run schema migrations on application startup. Covers the FlywayJdbcDatabaseModule and LiquibaseJdbcDatabaseModule, the database-flyway and database-liquibase artifacts, FlywayConfig/LiquibaseConfig keys (locations, changelog, executeInTransaction, validateOnMigrate, mixed), versioned SQL scripts, and the recommended out-of-process stra…
Kora Telemetry Logging
Structured logging for Kora services via SLF4J + Logback (LogbackModule), the KoraAsyncAppender for non-blocking output, structured arguments/markers (StructuredArgument), Kora MDC (ru.tinkoff.kora.logging.common.MDC), and the @Log/@Mdc logging aspects (logging-common / LoggingModule). Use when adding logging-logback, wiring logback.xml with KoraAsyncAppender or ConsoleTextRecordEncoder, configur…
Kora Soap Client
SOAP client integration in Kora Framework. Compile-time generated SOAP clients from JAX-WS annotations (@WebService), WSDL-to-Java (wsdl2java), SoapClientModule, telemetry. Use when integrating with external SOAP services or consuming WSDL-based web services.
Kora Aop Resilient
Kora resilience aspects — @CircuitBreaker, @Retry, @Timeout, @Fallback from the resilient-kora module (ResilientModule). Covers circuit breaker states (CLOSED/OPEN/HALF_OPEN), retry backoff, execution timeouts, fallback methods, custom CircuitBreakerPredicate/RetryPredicate/FallbackPredicate, the imperative *Manager API, and stacking aspects on one method. Use when adding fault tolerance to outbo…
Kora Journal
Journal for Kora Framework incorrect usage (agent self-realized or user-pointed). Global shared journal at ~/.kora-journal/<project>/<module>/<YYYY-MM-DD>_slug.md. Each entry is a separate file. Use when - agent used wrong Kora annotation, hallucinated Kora API, misapplied Kora pattern, violated Kora best practices, skill docs unclear/wrong. Triggers - kora_journal.py add/list/export/integrate/st…
Kora Di Runtime
Covers Kora runtime dependency-injection behavior - the Graph lifecycle, component init/release, disambiguation, collection injection, lazy/optional wrappers, and interception. Use when a component must start without being a dependency (@Root from ru.tinkoff.kora.common.annotation), when implementing init()/release() via Lifecycle or LifecycleWrapper, when disambiguating multiple beans of one int…
Kora Json
Compile-time, reflection-free JSON in Kora via the json-module and @Json. Generates JsonReader/JsonWriter at build time for records and data classes. Use when defining HTTP request/response DTOs, polymorphic JSON with sealed types (@JsonDiscriminatorField/@JsonDiscriminatorValue), renaming or skipping fields (@JsonField/@JsonSkip), optional fields (@Nullable), distinguishing missing vs null on PA…
Kora Project Setup Java
Scaffolds a new Kora microservice in Java with Gradle — the @KoraApp graph root, the kora-parent BOM, the mandatory annotationProcessor \"ru.tinkoff.kora:annotation-processors\", the koraBom configuration wiring, the Gradle wrapper, and the application plugin. Use when starting a Java Kora project from scratch, writing or fixing build.gradle / settings.gradle / gradle.properties, getting \"annota…