databrickslabs / databrickslabs/ontos

[Feature]: Certification Levels Config (end-to-end)

Open
#87 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

type/feature
Dominant language
Python
Stars
212
Forks
71
Avg merge
4d 10h
Merged PRs (30d)
43

Description

Parent PRD

#86

What to build

A thin vertical slice delivering admin-configurable certification levels end-to-end: database table, API, and Settings UI.

Create a certification_levels config table where admins define ordered trust levels with a name, description, icon, and color. Expose CRUD API routes for managing levels. Build a "Certification Levels" section in the Settings page with a drag-to-reorder table, add/edit/delete actions, and a soft-prevent guard that blocks deletion of levels actively referenced by entities. Seed the table with three default levels: Bronze (1), Silver (2), Gold (3).

Refer to the parent PRD "Dimension 2: Certification" section for the full schema and design decisions.

Acceptance criteria

  • certification_levels table exists with columns: id (UUID), level_order (integer, unique), name (string), description (text), icon (string), color (string), created_at, updated_at
  • Alembic migration creates the table and seeds Bronze/Silver/Gold
  • CRUD API routes: GET (list all, ordered), POST (create), PUT (update), DELETE (with guard)
  • DELETE returns 409 with count of affected entities if the level is referenced by any entity's certification_level
  • Reordering (PUT with new level_order values) works correctly
  • Settings page has a "Certification Levels" section visible only to Admins
  • UI supports add, edit, delete, and drag-to-reorder
  • Unit tests for repository CRUD and deletion guard
  • Integration tests for API routes

Blocked by

None - can start immediately

User stories addressed

From PRD #86:

  • User story 8: Admin configures certification levels
  • User story 9: Admin prevented from deleting in-use levels
  • User story 10: Admin drag-to-reorder levels in Settings

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with parent PRD #86, especially its Dimension 2: Certification section, then trace existing database, API, and Settings patterns. Implement the Alembic migration, CRUD routes, admin-only Settings section, and the requested repository and integration tests. Done means seeded Bronze/Silver/Gold levels, working reorder and deletion guard behavior, and all acceptance criteria and tests pass.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
api, database, frontend, full-stack
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.