revet-core

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Revet Core Library

Revet Core 库

Lightweight shared domain models used across Revet libraries. Zero external dependencies beyond Kotlin stdlib and Java 8+ APIs.
Revet各库之间使用的轻量级共享领域模型。除Kotlin标准库和Java 8+ API外,无任何外部依赖。

Dependency Coordinates

依赖坐标

Group ID:
com.revethq
Artifact ID:
revet-core
Version:
0.1.0
Group ID:
com.revethq
Artifact ID:
revet-core
Version:
0.1.0

Gradle

Gradle

kotlin
implementation("com.revethq:revet-core:0.1.0")
kotlin
implementation("com.revethq:revet-core:0.1.0")

Maven

Maven

xml
<dependency>
    <groupId>com.revethq</groupId>
    <artifactId>revet-core</artifactId>
    <version>0.1.0</version>
</dependency>
xml
<dependency>
    <groupId>com.revethq</groupId>
    <artifactId>revet-core</artifactId>
    <version>0.1.0</version>
</dependency>

Domain Models

领域模型

Identifier

Identifier

kotlin
package com.revethq.core

data class Identifier(
    val system: String? = null,
    val value: String? = null
)
Represents an external identifier with a system namespace and value.
Usage:
kotlin
val identifier = Identifier(
    system = "urn:oid:2.16.840.1.113883.4.1",
    value = "123-45-6789"
)
kotlin
package com.revethq.core

data class Identifier(
    val system: String? = null,
    val value: String? = null
)
表示带有系统命名空间和值的外部标识符。
用法:
kotlin
val identifier = Identifier(
    system = "urn:oid:2.16.840.1.113883.4.1",
    value = "123-45-6789"
)

SchemaValidation

SchemaValidation

kotlin
package com.revethq.core

import java.time.OffsetDateTime
import java.util.UUID

data class SchemaValidation(
    val schemaId: UUID? = null,
    val isValid: Boolean = false,
    val validatedOn: OffsetDateTime? = null
)
Records schema validation state for a resource.
Usage:
kotlin
val validation = SchemaValidation(
    schemaId = UUID.fromString("..."),
    isValid = true,
    validatedOn = OffsetDateTime.now()
)
kotlin
package com.revethq.core

import java.time.OffsetDateTime
import java.util.UUID

data class SchemaValidation(
    val schemaId: UUID? = null,
    val isValid: Boolean = false,
    val validatedOn: OffsetDateTime? = null
)
记录资源的模式验证状态。
用法:
kotlin
val validation = SchemaValidation(
    schemaId = UUID.fromString("..."),
    isValid = true,
    validatedOn = OffsetDateTime.now()
)

Metadata

Metadata

kotlin
package com.revethq.core

data class Metadata(
    val identifiers: List<Identifier> = emptyList(),
    val schemaValidations: List<SchemaValidation> = emptyList(),
    val properties: Map<String, Any> = emptyMap()
)
Aggregate metadata container combining:
  • Multiple external identifiers
  • Schema validation history
  • Extensible key-value properties
Usage:
kotlin
val metadata = Metadata(
    identifiers = listOf(
        Identifier(system = "saml", value = "user@idp.com"),
        Identifier(system = "scim", value = "external-id-123")
    ),
    schemaValidations = listOf(validation),
    properties = mapOf(
        "customField" to "value",
        "tier" to "premium"
    )
)
kotlin
package com.revethq.core

data class Metadata(
    val identifiers: List<Identifier> = emptyList(),
    val schemaValidations: List<SchemaValidation> = emptyList(),
    val properties: Map<String, Any> = emptyMap()
)
聚合元数据容器,包含:
  • 多个外部标识符
  • 模式验证历史
  • 可扩展的键值对属性
用法:
kotlin
val metadata = Metadata(
    identifiers = listOf(
        Identifier(system = "saml", value = "user@idp.com"),
        Identifier(system = "scim", value = "external-id-123")
    ),
    schemaValidations = listOf(validation),
    properties = mapOf(
        "customField" to "value",
        "tier" to "premium"
    )
)

Extension Points

扩展点

Properties Map

属性映射

The
properties: Map<String, Any>
field in
Metadata
is the primary extension point:
  • Add custom attributes without modifying core classes
  • Store domain-specific metadata
  • Maintain forward compatibility
Metadata
中的
properties: Map<String, Any>
字段是主要的扩展点:
  • 无需修改核心类即可添加自定义属性
  • 存储领域特定的元数据
  • 保持向前兼容性

Multiple Identifier Systems

多标识符系统

Support multiple external identifiers per resource:
  • SAML NameID
  • SCIM externalId
  • OIDC subject
  • Custom enterprise identifiers
支持每个资源关联多个外部标识符:
  • SAML NameID
  • SCIM externalId
  • OIDC subject
  • 自定义企业标识符

Multi-Schema Validation

多模式验证

Track validation against multiple schemas:
  • Validate same resource against different schema versions
  • Record validation history with timestamps
跟踪针对多个模式的验证情况:
  • 针对不同版本的模式验证同一资源
  • 记录带时间戳的验证历史

Characteristics

特性

  • Zero Dependencies: Pure Kotlin + Java stdlib
  • Immutable by Default: Data classes encourage immutable patterns
  • Type-Safe: Full Kotlin null safety
  • Composition: Metadata aggregates, doesn't extend
  • 零依赖: 纯Kotlin + Java标准库
  • 默认不可变: 数据类鼓励不可变模式
  • 类型安全: 完整的Kotlin空安全特性
  • 组合式: 元数据采用聚合而非继承的方式

Used By

适用场景

  • revet-iam
    - User, Group, Policy, and other entities include
    metadata: Metadata
  • revet-auth
    - Application, Client, Scope entities use Metadata
  • revet-iam
    - 用户、组、策略及其他实体包含
    metadata: Metadata
  • revet-auth
    - 应用、客户端、范围实体使用Metadata