feat(resource): define abstract database and database-relational/database-analytical base resource types #2035

Open
opened 2026-04-03 03:03:21 +00:00 by freemo · 3 comments
Owner

Metadata

  • Branch: feat/v360/db-hierarchy-base-types
  • Commit Message: feat(resource): define abstract database base and intermediate resource types
  • Milestone: v3.6.0
  • Parent Epic: #1020

Background

The current database resource types (postgres, mysql, sqlite, duckdb) are flat — they do not inherit from a common base type. This issue introduces the abstract base types that will form the root of the database resource hierarchy, following the same pattern as the cloud resource hierarchy (PR #669).

Expected Behavior

Three new abstract resource type definitions are registered:

  • database — top-level abstract base (not user-addable)
  • database-relational — intermediate abstract type for relational databases (inherits database)
  • database-analytical — intermediate abstract type for analytical/OLAP databases (inherits database)

All three types pass ResourceTypeSpec.from_config() validation and are marked as abstract (not directly instantiable by users).

Acceptance Criteria

  • database abstract type is defined and registered in the resource type registry
  • database-relational abstract type is defined, inherits database, and is registered
  • database-analytical abstract type is defined, inherits database, and is registered
  • All three types are marked as non-user-addable (abstract)
  • All three types pass ResourceTypeSpec.from_config() validation
  • Inheritance chain depth ≤ 5 levels (ADR-042)
  • Behave BDD unit tests added for the new type definitions
  • nox passes with coverage ≥ 97%

Dependencies

  • Blocked by: (none — this is the foundational issue)
  • Blocks: #(next issue — postgres/mysql/sqlite inherit database-relational)

Subtasks

  • Define database abstract ResourceTypeSpec config entry
  • Define database-relational abstract ResourceTypeSpec config entry inheriting database
  • Define database-analytical abstract ResourceTypeSpec config entry inheriting database
  • Register all three types in the resource type registry
  • Mark all three as abstract / not user-addable
  • Write Behave feature tests for type registration and validation
  • Run nox and confirm all stages pass

Definition of Done

  • All subtasks completed
  • Tests written and passing
  • All nox stages pass
  • Coverage ≥ 97%

Automated by CleverAgents Bot
Supervisor: Unknown | Agent: ca-epic-planner

## Metadata - **Branch**: `feat/v360/db-hierarchy-base-types` - **Commit Message**: `feat(resource): define abstract database base and intermediate resource types` - **Milestone**: v3.6.0 - **Parent Epic**: #1020 ## Background The current database resource types (`postgres`, `mysql`, `sqlite`, `duckdb`) are flat — they do not inherit from a common base type. This issue introduces the abstract base types that will form the root of the database resource hierarchy, following the same pattern as the cloud resource hierarchy (PR #669). ## Expected Behavior Three new abstract resource type definitions are registered: - `database` — top-level abstract base (not user-addable) - `database-relational` — intermediate abstract type for relational databases (inherits `database`) - `database-analytical` — intermediate abstract type for analytical/OLAP databases (inherits `database`) All three types pass `ResourceTypeSpec.from_config()` validation and are marked as abstract (not directly instantiable by users). ## Acceptance Criteria - [ ] `database` abstract type is defined and registered in the resource type registry - [ ] `database-relational` abstract type is defined, inherits `database`, and is registered - [ ] `database-analytical` abstract type is defined, inherits `database`, and is registered - [ ] All three types are marked as non-user-addable (abstract) - [ ] All three types pass `ResourceTypeSpec.from_config()` validation - [ ] Inheritance chain depth ≤ 5 levels (ADR-042) - [ ] Behave BDD unit tests added for the new type definitions - [ ] `nox` passes with coverage ≥ 97% ## Dependencies - Blocked by: (none — this is the foundational issue) - Blocks: #(next issue — postgres/mysql/sqlite inherit database-relational) ## Subtasks - [ ] Define `database` abstract `ResourceTypeSpec` config entry - [ ] Define `database-relational` abstract `ResourceTypeSpec` config entry inheriting `database` - [ ] Define `database-analytical` abstract `ResourceTypeSpec` config entry inheriting `database` - [ ] Register all three types in the resource type registry - [ ] Mark all three as abstract / not user-addable - [ ] Write Behave feature tests for type registration and validation - [ ] Run `nox` and confirm all stages pass ## Definition of Done - [ ] All subtasks completed - [ ] Tests written and passing - [ ] All nox stages pass - [ ] Coverage ≥ 97% --- **Automated by CleverAgents Bot** Supervisor: Unknown | Agent: ca-epic-planner
freemo added this to the v3.6.0 milestone 2026-04-03 03:21:24 +00:00
Author
Owner

Issue triaged by project owner:

  • State: Verified
  • Priority: Medium (confirmed)
  • Milestone: v3.6.0 (confirmed — Advanced Concepts, specifically "additional resource types" including database resources)
  • MoSCoW: Should Have — The v3.6.0 milestone scope explicitly includes "additional resource types (cloud infrastructure, database resources, virtual types)". This is the foundational issue for the database resource hierarchy and blocks #2036, #2037, #2039, #2040. It is important for v3.6.0 completion.
  • Parent Epic: #1020 (confirmed correct)

This is the root of a well-structured dependency chain: #2035 → #2036/#2037 → #2039#2040. Work should proceed in this order.


Automated by CleverAgents Bot
Supervisor: Project Owner | Agent: ca-project-owner

Issue triaged by project owner: - **State**: Verified - **Priority**: Medium (confirmed) - **Milestone**: v3.6.0 (confirmed — Advanced Concepts, specifically "additional resource types" including database resources) - **MoSCoW**: Should Have — The v3.6.0 milestone scope explicitly includes "additional resource types (cloud infrastructure, database resources, virtual types)". This is the foundational issue for the database resource hierarchy and blocks #2036, #2037, #2039, #2040. It is important for v3.6.0 completion. - **Parent Epic**: #1020 (confirmed correct) This is the root of a well-structured dependency chain: #2035 → #2036/#2037 → #2039 → #2040. Work should proceed in this order. --- **Automated by CleverAgents Bot** Supervisor: Project Owner | Agent: ca-project-owner
Author
Owner

Issue triaged by project owner:

  • State: Verified
  • Priority: Medium
  • Milestone: v3.6.0
  • MoSCoW: Should Have — already correctly labeled; defining abstract database resource types is foundational for the database resource hierarchy (#1020)
  • Parent Epic: #1020 (Database resource hierarchy restructuring)

Automated by CleverAgents Bot
Supervisor: Project Owner | Agent: ca-project-owner

Issue triaged by project owner: - **State**: Verified - **Priority**: Medium - **Milestone**: v3.6.0 - **MoSCoW**: Should Have — already correctly labeled; defining abstract database resource types is foundational for the database resource hierarchy (#1020) - **Parent Epic**: #1020 (Database resource hierarchy restructuring) --- **Automated by CleverAgents Bot** Supervisor: Project Owner | Agent: ca-project-owner
Author
Owner

Issue triaged by project owner:

  • State: Verified
  • Priority: Medium (unchanged)
  • Milestone: v3.6.0 (already assigned)
  • MoSCoW: Should Have — Already labeled by org-level MoSCoW. The specification defines the database resource hierarchy with abstract database, database-relational, and database-analytical base types. This is the foundational issue for the database hierarchy restructuring tracked in Epic #1020.
  • Parent Epic: #1020 (Database resource hierarchy restructuring)

Dependency link to parent Epic #1020 created.


Automated by CleverAgents Bot
Supervisor: Project Owner | Agent: ca-project-owner

Issue triaged by project owner: - **State**: Verified ✅ - **Priority**: Medium (unchanged) - **Milestone**: v3.6.0 (already assigned) - **MoSCoW**: Should Have — Already labeled by org-level MoSCoW. The specification defines the database resource hierarchy with abstract `database`, `database-relational`, and `database-analytical` base types. This is the foundational issue for the database hierarchy restructuring tracked in Epic #1020. - **Parent Epic**: #1020 (Database resource hierarchy restructuring) Dependency link to parent Epic #1020 created. --- **Automated by CleverAgents Bot** Supervisor: Project Owner | Agent: ca-project-owner
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
cleveragents/cleveragents-core#2035
No description provided.