镜像站点 · 本页由第三方 GitHub 只读镜像提供,非 GitHub 官方站点,不接受任何登录或凭据输入。前往 github.com
Skip to content

About

KARE data object (Project, User, etc) models/CRDs based on SCIM schemas

Resources

Stars

0 stars

Watchers

1 watching

Forks

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

KARE Data Model

KARE data objects (Project, User, etc) modelled based on SCIM, originating CRD and external data model representations (e.g. Dundee's JIRA) of research user/project context information.

  • schemas/ dir contains base SCIM specs
  • defintions/ CRDs AI-generated from SCIMs
  • examples/ Example CRs of CRDs

system Architecture Design

KARE User

The KARE User SCIM defines an initial subset of standard (i.e. RFC7643 ) and extended/custom attributes.

Attributes

Attribute Type Multi-Valued Required Description Notes SCIM Compliant
id string false yes Unique identifier for the user, typically a UUID. readOnly; returned: always; server-generated. Standard
userName string false yes Unique ID for kare user Must be unique; caseExact: false; mutability: readWrite. Standard
name complex false no Components of the user's name. Contains formatted, familyName, givenName. Standard
├─ formatted string false no User full name Display-friendly version of the name. Standard
├─ familyName string false no Family name (last name). Standard
└─ givenName string false no Given name (first name). Standard
emails complex true no Email addresses for the user. Each entry may include value and primary. Standard
├─ value string false no Email address. Standard
└─ primary boolean false no Primary indicator. At most one email should be marked as primary. Standard
active boolean false no A Boolean value to indicate the account state i.e., enabled / suspended true = active/enabled, false = suspended; mutability: readWrite. Standard
groups complex true no A list of KARE groups the user is affiliated Read-only attribute; system-managed. Standard
├─ value string false no The identifier of the User's group. Typically the group ID; mutability: readOnly. Standard
├─ $ref reference false no The URI of the corresponding Group resource. Reference type: Group; mutability: readOnly. Standard
├─ display string false no A human-readable display name for the group. mutability: readOnly. Standard
└─ type string false no A label to convey the type of KARE group membership (e.g., manual, automatic, rule-based) mutability: readOnly; extensible values. Standard
startDate dateTime false yes Date when the user's account is active. mutability: readWrite. Custom
expiryDate dateTime false yes Date when the user's account expires. mutability: readWrite. Custom

Notes/Omissions

KARE's originating User CRD defined here contains application specific attributes that do not have a natural mapping to SCIM User attributes and may need to be represented in a separate object. The following are therefore not included in this initial User model:

  • keycloak
    • email_verified
  • jupyterhub
    • workspace
    • compute_quota
  • karectl
    • user_id

KARE Group

A KARE Group entity that includes associated entitlements/permissions to KARE projects and lists associated KARE User and KARE Group subgroup relationships.

Attributes

Attribute Type Multi-Valued Required Description Notes SCIM Compliant
displayName string false yes The name of the group, suitable for display. Must be unique; mutability: readWrite. Standard
description string false no A textual description of the group. Optional; mutability: readWrite. Standard
members complex true no A list of members of the group. Contains sub-attributes: value, $ref, display, type. Standard
├─ value string false no Identifier of the member (User ID or Group ID). mutability: readWrite. Standard
├─ $ref reference false no The URI of the corresponding member resource. Reference type: User or Group; mutability: readWrite. Standard
├─ display string false no A human-readable name for the member. mutability: readWrite. Standard
└─ type string false no Type of member relationship (e.g., direct, indirect, manual, automatic). mutability: readWrite. Standard
active boolean false no Indicates whether the group is active. Optional; mutability: readWrite. Standard
projects complex true no A list of projects the group has access to, including role information for each project. Custom extension for project-based permissions. Custom
├─ value string false yes The unique identifier of the project. mutability: readWrite. Custom
├─ role string false yes The role the group has for this project (e.g., viewer, editor, admin). mutability: readWrite. Custom
└─ display string false no A human-readable name of the project. Optional; mutability: readWrite. Custom

Notes/Omissions

The originating KARE Group CRD has properties for both subgroups and members. This model following SCIM, defines just the members attribute and models both KARE User or Group entities so that subgroups.

KARE Project

A KARE research project entity. This initial model begins to reconcile requirements from the existing cr8tor project TOML, KARE CRD for project and the JIRA model from Dundee. For consistency, KARE Project is also modelled in SCIM but is not a base entity defined in SCIM2.0.

Attributes

Attribute Type Multi-Valued Required Description Notes SCIM Compliant
id string false yes Unique identifier for the project. SCIM standard id; readOnly Standard
reference string false yes Internal reference for the project within the organization. Custom attribute Custom
displayName string false yes The name of the project. Must be unique; mutability: readWrite Standard
description string false no A textual description of the project. Optional; mutability: readWrite Standard
startDate dateTime false no The date when the project becomes active. Optional; mutability: readWrite Custom
endDate dateTime false no The date when the project ends. Optional; mutability: readWrite Custom
status string false no Current status of the project. canonicalValues: active, expired, inactive, suspended Custom
apps complex true no Applications associated with the project. Multi-valued complex attribute Custom
├─ name string false yes App name. mutability: readWrite Custom
├─ type string false no App type. Optional Custom
├─ url string false no App URL. Optional Custom
├─ osType string false no Operating system type. canonicalValues: linux, windows Custom
└─ config complex false no Application-specific configuration. Arbitrary key/value object Custom
profiles complex true no Profiles associated with the project. Multi-valued complex attribute Custom
├─ display_name string false yes Profile display name. Required Custom
├─ description string false no Profile description. Optional Custom
├─ slug string false yes Profile slug/identifier. Required Custom
└─ kubespawner_override complex false no Overrides for KubeSpawner settings. Nested complex attribute Custom
├─ image string false no Container image override. Optional Custom
└─ env complex false no Environment variables for the profile. Arbitrary key/value object Custom

Notes/Omissions

Up for discussion but the initial attributes apps and profiles CRD in KARECTL for Project are modelled the same here. Although, profiles is jupyter application-specific so we'd likely need to nest app specific metadata within its relevant 'apps' object.

About

KARE data object (Project, User, etc) models/CRDs based on SCIM schemas

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors