Admin Configuration Interface
The Admin Configuration Interface is a visual configuration editor that allows you to manage dataset configurations without manually editing YAML files. It provides a user-friendly way to add, edit, and organize criteria, groupings, and value displays.
Accessing the Admin Interface
When running the development server, navigate to /admin/config in your browser:
npm run dev
# Then open http://localhost:4200/admin/config
The admin interface is available in development mode and can optionally be deployed to production if needed. The backend for the config workspace runs at http://localhost:3100 and is automatically started by npm run dev/npm run start. Requests are proxied from the Angular dev server via proxy.config.json.
Interface Overview
The admin interface consists of three main panels:
1. Catalog Tree (Left Panel)
The catalog tree displays all available dataset configurations organized by:
- Dataset: Group by dataset (aie-model, code-editor, terminal, etc.)
- Configuration Type: Shows dataset-specific configs and shared defaults
- Search: Filter configurations by name
Features:
- Click any configuration to load it in the editor
- See dataset-specific vs shared configurations
- Quick navigation between multiple datasets
- Visual indicators for active/selected documents
2. Criteria Editor (Center Panel)
The main editing area where you modify configuration content.
Sections:
Criteria Groups
Organize criteria into collapsible sections for better UX. Groups are regular criteria items with special properties:
- Groups are defined in the
criteria array with type: MARKDOWN
- Groups must have
search: false, table: false, detail: false
- Groups have
children array listing criterion tags to include
- Groups have
defaultExpanded (boolean) to control initial state
- Groups have
order to control positioning
Criteria Definitions
Define the fields that comparison entries will have:
- Tag: Unique identifier (e.g., “License”, “Classification”, “Languages”)
- Name: Display name shown in UI
- Type: Data type (text, label, url, markdown, rating, repository)
- Visibility: Search, table, detail toggles
- Search Mode: AND/OR for multi-value searches
- Values: Define allowed values for label/rating types
- Placeholder: Search box hint text
Value Displays
Control how values render in the table and detail views:
- Display Text: Alternative text or emoji
- Display HTML: Custom HTML/SVG snippets
- Description: Tooltip text
- Styling: CSS class or custom colors
- Repository-specific: Age filters for repository type
Actions:
- Add: Create new criteria/groups/values
- Clone: Duplicate existing items
- Delete: Remove items (with confirmation)
- Edit: Modify any field inline
3. Preview Panel (Right Panel)
Shows live preview of your changes in YAML format.
Modes:
- Diff View: Compare original vs modified (default)
- Unified diff: Traditional patch format
- Split diff: Side-by-side comparison
- Raw View: Full YAML document preview
Features:
- Syntax highlighting
- Line numbers
- Light/dark theme toggle
- Copy to clipboard
- Real-time updates as you edit
Workflow
Editing a Dataset Configuration
- Select Configuration
- Choose a dataset from the catalog tree
- Configuration loads into the editor
- Original YAML appears in preview panel
- Make Changes
- Add/edit/delete criteria groups
- Modify criteria definitions
- Update value displays
- Changes appear immediately in diff preview
- Review Changes
- Check diff view to see exactly what changed
- Verify additions (green) and deletions (red)
- Switch to raw view to see complete document
- Save
- Click “Save” button in toolbar
- Changes written to YAML file with optimistic locking
- Catalog reloads to reflect updates
- Success confirmation appears
- Discard Changes (optional)
- Click “Revert” to undo all unsaved changes
- Confirmation prompt prevents accidental data loss
Adding a New Criterion
- Scroll to “Criteria Definitions” section
- Click “Add Criterion” button
- Fill in required fields:
- Tag: Internal identifier (lowercase, no spaces)
- Name: Display name
- Type: Choose data type
- Configure visibility options (search, table, detail)
- Add values if type is “label” or “rating”
- Preview changes in diff panel
- Save when ready
Creating a Criterion Group
- Scroll to “Criteria Definitions” section
- Click “Add Criterion” button
- Set the criterion as a group:
- Tag: Unique identifier (e.g., “Licensing”, “Features”)
- Name: Display name for the group
- Type:
MARKDOWN
- Search:
false
- Table:
false
- Detail:
false
- Order: Position in list (e.g., “90”)
- Default Expanded:
true or false for initial state
- Children: List of criterion tags to include
- Add criterion tags to children array
- Save changes
Configuring Value Displays
Value displays control how criterion values appear in the UI:
- Select a criterion with values (type: label or rating)
- For each value, configure:
- Display: Text/emoji to show (e.g., “✓”, “Enterprise”)
- Display HTML: Custom HTML (e.g.,
<svg>...</svg>)
- Description: Tooltip text
- Class: CSS class name (e.g., “label-success”)
- Colors: Background and text colors (if no class)
Example:
values:
- name: "MIT"
description: "MIT License - permissive open source"
class: "label-success"
display: "MIT"
- name: "Proprietary"
description: "Proprietary/commercial license"
backgroundColor: "#dc3545"
color: "#ffffff"
display: "Proprietary"
Configuration Inheritance
The admin interface respects the configuration inheritance system:
Shared vs Dataset-Specific
- Shared Configurations (
configuration/defaults/)
- Available to multiple datasets via
configDefaults
- Changes affect all datasets that inherit them
- Use for common criteria definitions
- Dataset-Specific (
datasets/{id}/config/comparison.yml)
- Local to one dataset
- Overrides shared definitions
- Use for dataset-unique criteria
Resolution Order
When you load a dataset configuration in the admin interface:
- All
configDefaults files are loaded in order
- Criteria definitions are merged (later overrides earlier)
- Dataset-specific
comparison.yml is loaded
- Dataset definitions override shared
- Final merged result shown in editor
Important: When you save a dataset configuration, you’re only saving that specific file (either shared or dataset-specific). The inheritance resolution happens at runtime.
Working with Shared Defaults
To edit shared configuration files:
- Select from catalog tree under “Shared Defaults” section
- Examples:
configuration/defaults/general-licensing.yml
configuration/defaults/groups-advanced.yml
configuration/defaults/value-displays.yml
- Edit criteria/groups as normal
- Save changes
- All datasets that inherit this file will receive updates
Best Practice: Use shared defaults for criteria common across multiple datasets (e.g., License, Opensource, Languages).
Advanced Features
Alert History
The alert history panel (bottom of screen) shows:
- Informational messages (blue)
- Warnings (yellow)
- Errors (red)
Common alerts:
- “Document loaded successfully”
- “Configuration saved”
- “Validation error: duplicate tag detected”
- “Group child X not found in criteria definitions”
Alerts persist across editing sessions for troubleshooting.
Validation
Real-time validation checks for:
- Duplicate tags: Each criterion must have unique tag
- Invalid children: Group children must reference existing criteria tags
- Required fields: Tag, name, type are required for criteria
- YAML syntax: Valid YAML structure
Validation errors appear as alerts and prevent saving until resolved.
Group Resolution
When working with groupings:
- Group Definition (in criteria array):
criteria:
- Licensing:
name: Licensing
type: MARKDOWN
search: false
table: false
detail: false
order: '90'
defaultExpanded: true
children:
- Opensource
- License
- FreeTrial
- Child Criteria Definitions (in same criteria array):
criteria:
- Opensource:
name: Opensource
type: LABEL
order: '91'
- License:
name: License
type: LABEL
order: '92'
- FreeTrial:
name: FreeTrial
type: LABEL
order: '93'
- Resolution: Admin interface resolves children tags against available criteria and warns if any are missing.
Diff Options
Customize diff view:
- View Mode: Unified (traditional) vs Split (side-by-side)
- Theme: Light or dark syntax highlighting
- Context Lines: How many unchanged lines to show around changes
- Ignore Whitespace: Hide whitespace-only changes
Tips and Best Practices
Organization
- Use Groups: Organize related criteria into logical groups
- Consistent Naming: Use clear, descriptive criterion names
- Tag Conventions: Use lowercase, hyphen-separated tags (e.g., “pricing-model”)
Shared Configuration
- Common Criteria: Put widely-used criteria (License, Opensource, Languages, etc.) in shared defaults
- Dataset-Specific: Keep unique criteria in dataset configs
- Minimal Overrides: Only override what’s necessary in dataset files
Value Displays
- Emojis: Use emojis sparingly for visual interest (✓, ✗, ⭐)
- HTML: Test custom HTML in preview before saving
- Descriptions: Always provide tooltips for clarity
- Consistent Colors: Use theme CSS classes when possible
- Save Frequently: Don’t accumulate too many unsaved changes
- Preview Before Save: Always check diff before saving
- One Dataset: Work on one dataset config at a time
Troubleshooting
If the admin interface becomes unresponsive:
- Check alert history for errors
- Verify YAML syntax in preview
- Look for duplicate tags or invalid children
- Revert changes and try again incrementally
- Check browser console for JavaScript errors
If configuration won’t load:
- Verify dataset manifest includes the dataset
- Check file paths in
sources.config
- Ensure YAML files have valid syntax
- Look for permission issues on config files
Keyboard Shortcuts
(If implemented, otherwise remove this section)
Ctrl+S / Cmd+S: Save current document
Ctrl+Z / Cmd+Z: Undo last change
Esc: Close dialogs/modals
Future Enhancements
Planned features for future releases:
- Drag-and-drop reordering for groups and criteria
- Bulk operations (clone multiple, delete multiple)
- Import/export configurations
- Configuration templates
- Version history and rollback
- Multi-file editing (split view)
- Real-time collaboration indicators
See Also