revet-core
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseRevet 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:
Artifact ID:
Version:
com.revethqrevet-core0.1.0Group ID:
Artifact ID:
Version:
com.revethqrevet-core0.1.0Gradle
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 field in is the primary extension point:
properties: Map<String, Any>Metadata- Add custom attributes without modifying core classes
- Store domain-specific metadata
- Maintain forward compatibility
Metadataproperties: 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
适用场景
- - User, Group, Policy, and other entities include
revet-iammetadata: Metadata - - Application, Client, Scope entities use Metadata
revet-auth
- - 用户、组、策略及其他实体包含
revet-iammetadata: Metadata - - 应用、客户端、范围实体使用Metadata
revet-auth