AbsaOSS / AbsaOSS/enceladus

V3 API enable should check dependencies

未关闭
#2,065 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
feature priority: undecided under discussion
主要语言
Scala
星标
33
派生
16
PR 合并指标
30 天内没有已合并 PR

描述

## Background & Feature
Originating in https://github.com/AbsaOSS/enceladus/pull/2055#discussion_r870068092, the idea is that when enabling an entity, all its dependencies should be checked to be enabled as well.

## Feature
Since V3 API considers entity disable/enable as a single state (going forward), dependencies of all entity versions must be checked.

## Example
`DatasetA` v1 has `schemaA` v2 and mapping CR that is tied to `mappingTableA` v6 and also defines `propertyDefinionA`
`DatasetA v2 has `schemaB` v3, no mapping CR and defines `propertyDefintionB`.

`DatasetA` is disabled.
When trying to (re)enable it, `schemaA` in v2, `schemaB` v3, `mappingTableA` v6, `propertyDefintionA|B` (all versions) must be check to be enabled in order for DatasetA to be correctly enabled.

## Proposed Solution [Optional]
Solution Ideas:
1. Utilize the fact that disabled entities fail validation? (but dependent entities failing validation for other reasons might block enabling entities)
2. Specifically create checks for the `disabled` state (not tied to validation itself) based on just unique entity names
3. point 2, but also checking versions because historically, there can be entities in mixed disabled/enabled state

贡献指南

打开贡献指南

调研方向

The issue names no files or tests. Start by tracing the V3 API entity-enable operation and how dependencies are represented, using the DatasetA example to compare all entity versions and disabled states. Done means re-enabling an entity checks every dependent entity and version and only succeeds when the required dependencies are enabled.

由索引模型根据 Issue 内容生成。

评估

技术栈
scala
领域
api, backend
Issue 类型
功能
难度
5/5
预计耗时
一周以上
活跃度
停滞
描述清晰度
基本清楚
新手友好度
35/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。