31927 lines
1002 KiB
JSON
31927 lines
1002 KiB
JSON
{
|
|
"project_root": ".",
|
|
"generated_at": "2026-02-20T11:30:24.246504",
|
|
"modules": [
|
|
{
|
|
"name": "generate_semantic_map",
|
|
"type": "Module",
|
|
"tier": "CRITICAL",
|
|
"start_line": 1,
|
|
"end_line": 1160,
|
|
"tags": {
|
|
"TIER": "CRITICAL",
|
|
"SEMANTICS": "semantic_analysis, parser, map_generator, compliance_checker, tier_validation, svelte_props, data_flow, module_map",
|
|
"PURPOSE": "Scans the codebase to generate a Semantic Map, Module Map, and Compliance Report based on the System Standard.",
|
|
"LAYER": "DevOps/Tooling",
|
|
"INVARIANT": "All DEF anchors must have matching closing anchors; TIER determines validation strictness."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "READS",
|
|
"target": "FileSystem"
|
|
},
|
|
{
|
|
"type": "PRODUCES",
|
|
"target": "semantics/semantic_map.json"
|
|
},
|
|
{
|
|
"type": "PRODUCES",
|
|
"target": ".ai/PROJECT_MAP.md"
|
|
},
|
|
{
|
|
"type": "PRODUCES",
|
|
"target": ".ai/MODULE_MAP.md"
|
|
},
|
|
{
|
|
"type": "PRODUCES",
|
|
"target": "semantics/reports/semantic_report_*.md"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "__init__",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 26,
|
|
"end_line": 33,
|
|
"tags": {
|
|
"TIER": "TRIVIAL",
|
|
"PURPOSE": "Mock init for self-containment.",
|
|
"PRE": "name is a string.",
|
|
"POST": "Instance initialized."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "__enter__",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 35,
|
|
"end_line": 42,
|
|
"tags": {
|
|
"TIER": "TRIVIAL",
|
|
"PURPOSE": "Mock enter.",
|
|
"PRE": "Instance initialized.",
|
|
"POST": "Returns self."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "__exit__",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 44,
|
|
"end_line": 51,
|
|
"tags": {
|
|
"TIER": "TRIVIAL",
|
|
"PURPOSE": "Mock exit.",
|
|
"PRE": "Context entered.",
|
|
"POST": "Context exited."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "Tier",
|
|
"type": "Class",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 58,
|
|
"end_line": 64,
|
|
"tags": {
|
|
"TIER": "TRIVIAL",
|
|
"PURPOSE": "Enumeration of semantic tiers defining validation strictness."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "Severity",
|
|
"type": "Class",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 68,
|
|
"end_line": 74,
|
|
"tags": {
|
|
"TIER": "TRIVIAL",
|
|
"PURPOSE": "Severity levels for compliance issues."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "ComplianceIssue",
|
|
"type": "Class",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 121,
|
|
"end_line": 136,
|
|
"tags": {
|
|
"TIER": "TRIVIAL",
|
|
"PURPOSE": "Represents a single compliance issue with severity."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "SemanticEntity",
|
|
"type": "Class",
|
|
"tier": "CRITICAL",
|
|
"start_line": 139,
|
|
"end_line": 315,
|
|
"tags": {
|
|
"TIER": "CRITICAL",
|
|
"PURPOSE": "Represents a code entity (Module, Function, Component) found during parsing.",
|
|
"INVARIANT": "start_line is always set; end_line is set upon closure; tier defaults to STANDARD."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "__init__",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 144,
|
|
"end_line": 167,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"PURPOSE": "Initializes a new SemanticEntity instance.",
|
|
"PRE": "name, type_, start_line, file_path are provided.",
|
|
"POST": "Instance is initialized with default values."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_tier",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 169,
|
|
"end_line": 181,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"PURPOSE": "Returns the tier of the entity, defaulting to STANDARD.",
|
|
"PRE": "tags dictionary is accessible.",
|
|
"POST": "Returns Tier enum value."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "to_dict",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 183,
|
|
"end_line": 212,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"PURPOSE": "Serializes the entity to a dictionary for JSON output.",
|
|
"PRE": "Entity is fully populated.",
|
|
"POST": "Returns a dictionary representation."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "validate",
|
|
"type": "Function",
|
|
"tier": "CRITICAL",
|
|
"start_line": 214,
|
|
"end_line": 278,
|
|
"tags": {
|
|
"TIER": "CRITICAL",
|
|
"PURPOSE": "Checks for semantic compliance based on TIER requirements.",
|
|
"PRE": "Entity structure is complete; tier is determined.",
|
|
"POST": "Populates self.compliance_issues with severity levels.",
|
|
"SIDE_EFFECT": "Modifies self.compliance_issues list."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_score",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 280,
|
|
"end_line": 314,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"PURPOSE": "Calculates a compliance score (0.0 to 1.0) based on tier requirements.",
|
|
"PRE": "validate() has been called.",
|
|
"POST": "Returns a float score."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_patterns",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 318,
|
|
"end_line": 353,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"PURPOSE": "Returns regex patterns for a specific language.",
|
|
"PRE": "lang is either 'python' or 'svelte_js'.",
|
|
"POST": "Returns a dictionary of compiled regex patterns.",
|
|
"PARAM": "lang (str) - 'python' or 'svelte_js'"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "extract_svelte_props",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 356,
|
|
"end_line": 382,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"PURPOSE": "Extracts props from Svelte component script section.",
|
|
"PRE": "lines is a list of file lines, start_idx is the starting line index.",
|
|
"POST": "Returns list of prop definitions."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "extract_svelte_events",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 385,
|
|
"end_line": 419,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"PURPOSE": "Extracts dispatched events from Svelte component.",
|
|
"PRE": "lines is a list of file lines.",
|
|
"POST": "Returns list of event names."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "extract_data_flow",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 422,
|
|
"end_line": 472,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"PURPOSE": "Extracts store subscriptions and data flow from Svelte component.",
|
|
"PRE": "lines is a list of file lines.",
|
|
"POST": "Returns list of data flow descriptors."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "parse_file",
|
|
"type": "Function",
|
|
"tier": "CRITICAL",
|
|
"start_line": 475,
|
|
"end_line": 662,
|
|
"tags": {
|
|
"TIER": "CRITICAL",
|
|
"PURPOSE": "Parses a single file to extract semantic entities with tier awareness and enhanced Svelte analysis.",
|
|
"PRE": "full_path, rel_path, lang are valid strings.",
|
|
"POST": "Returns extracted entities and list of issues.",
|
|
"INVARIANT": "Every opened anchor must have a matching closing anchor for valid compliance.",
|
|
"PARAM": "lang - Language identifier."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "SemanticMapGenerator",
|
|
"type": "Class",
|
|
"tier": "CRITICAL",
|
|
"start_line": 665,
|
|
"end_line": 1153,
|
|
"tags": {
|
|
"TIER": "CRITICAL",
|
|
"PURPOSE": "Orchestrates the mapping process with tier-based validation.",
|
|
"INVARIANT": "All entities are validated according to their TIER requirements."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "__init__",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 670,
|
|
"end_line": 682,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"PURPOSE": "Initializes the generator with a root directory.",
|
|
"PRE": "root_dir is a valid path string.",
|
|
"POST": "Generator instance is ready."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "_load_gitignore",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 684,
|
|
"end_line": 700,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"PURPOSE": "Loads patterns from .gitignore file.",
|
|
"PRE": ".gitignore exists in root_dir.",
|
|
"POST": "Returns set of ignore patterns."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "_is_ignored",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 702,
|
|
"end_line": 736,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"PURPOSE": "Checks if a path should be ignored based on .gitignore or hardcoded defaults.",
|
|
"PRE": "rel_path is a valid relative path string.",
|
|
"POST": "Returns True if the path should be ignored."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "run",
|
|
"type": "Function",
|
|
"tier": "CRITICAL",
|
|
"start_line": 738,
|
|
"end_line": 751,
|
|
"tags": {
|
|
"TIER": "CRITICAL",
|
|
"PURPOSE": "Main execution flow.",
|
|
"PRE": "Generator is initialized.",
|
|
"POST": "Semantic map and reports are generated."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "CALLS",
|
|
"target": "_walk_and_parse"
|
|
},
|
|
{
|
|
"type": "CALLS",
|
|
"target": "_generate_artifacts"
|
|
}
|
|
],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "_walk_and_parse",
|
|
"type": "Function",
|
|
"tier": "CRITICAL",
|
|
"start_line": 753,
|
|
"end_line": 782,
|
|
"tags": {
|
|
"TIER": "CRITICAL",
|
|
"PURPOSE": "Recursively walks directories and triggers parsing.",
|
|
"PRE": "root_dir exists.",
|
|
"POST": "All files are scanned and entities extracted."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "_process_file_results",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 784,
|
|
"end_line": 813,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"PURPOSE": "Validates entities and calculates file scores with tier awareness.",
|
|
"PRE": "Entities have been parsed from the file.",
|
|
"POST": "File score is calculated and issues collected."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "validate_recursive",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 794,
|
|
"end_line": 807,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"PURPOSE": "Recursively validates a list of entities.",
|
|
"PRE": "ent_list is a list of SemanticEntity objects.",
|
|
"POST": "All entities and their children are validated."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "_generate_artifacts",
|
|
"type": "Function",
|
|
"tier": "CRITICAL",
|
|
"start_line": 815,
|
|
"end_line": 836,
|
|
"tags": {
|
|
"TIER": "CRITICAL",
|
|
"PURPOSE": "Writes output files with tier-based compliance data.",
|
|
"PRE": "Parsing and validation are complete.",
|
|
"POST": "JSON and Markdown artifacts are written to disk."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "_generate_report",
|
|
"type": "Function",
|
|
"tier": "CRITICAL",
|
|
"start_line": 838,
|
|
"end_line": 891,
|
|
"tags": {
|
|
"TIER": "CRITICAL",
|
|
"PURPOSE": "Generates the Markdown compliance report with severity levels.",
|
|
"PRE": "File scores and issues are available.",
|
|
"POST": "Markdown report is created in reports directory."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "_collect_issues",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 893,
|
|
"end_line": 905,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"PURPOSE": "Helper to collect issues for a specific file from the entity tree.",
|
|
"PRE": "entities list and file_path are valid.",
|
|
"POST": "issues list is populated with compliance issues."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "_generate_compressed_map",
|
|
"type": "Function",
|
|
"tier": "CRITICAL",
|
|
"start_line": 907,
|
|
"end_line": 924,
|
|
"tags": {
|
|
"TIER": "CRITICAL",
|
|
"PURPOSE": "Generates the token-optimized project map with enhanced Svelte details.",
|
|
"PRE": "Entities have been processed.",
|
|
"POST": "Markdown project map is written."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "_write_entity_md",
|
|
"type": "Function",
|
|
"tier": "CRITICAL",
|
|
"start_line": 926,
|
|
"end_line": 994,
|
|
"tags": {
|
|
"TIER": "CRITICAL",
|
|
"PURPOSE": "Recursive helper to write entity tree to Markdown with tier badges and enhanced details.",
|
|
"PRE": "f is an open file handle, entity is valid.",
|
|
"POST": "Entity details are written to the file."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "_generate_module_map",
|
|
"type": "Function",
|
|
"tier": "CRITICAL",
|
|
"start_line": 996,
|
|
"end_line": 1151,
|
|
"tags": {
|
|
"TIER": "CRITICAL",
|
|
"PURPOSE": "Generates a module-centric map grouping entities by directory structure.",
|
|
"PRE": "Entities have been processed.",
|
|
"POST": "Markdown module map is written to .ai/MODULE_MAP.md."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "_get_module_path",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 1008,
|
|
"end_line": 1020,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"PURPOSE": "Extracts the module path from a file path.",
|
|
"PRE": "file_path is a valid relative path.",
|
|
"POST": "Returns a module path string."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1008
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1008
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1008
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1008
|
|
}
|
|
],
|
|
"score": 0.6
|
|
}
|
|
},
|
|
{
|
|
"name": "_collect_all_entities",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 1022,
|
|
"end_line": 1031,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"PURPOSE": "Flattens entity tree for easier grouping.",
|
|
"PRE": "entity list is valid.",
|
|
"POST": "Returns flat list of all entities with their hierarchy."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1022
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1022
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1022
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1022
|
|
}
|
|
],
|
|
"score": 0.6
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "to_dict",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 130,
|
|
"end_line": 130,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "TransactionCore",
|
|
"type": "Module",
|
|
"tier": "CRITICAL",
|
|
"start_line": 1,
|
|
"end_line": 79,
|
|
"tags": {
|
|
"TIER": "CRITICAL",
|
|
"SEMANTICS": "Finance, ACID, Transfer, Ledger",
|
|
"PURPOSE": "Core banking transaction processor with ACID guarantees.",
|
|
"LAYER": "Domain (Core)",
|
|
"INVARIANT": "Negative transfers are strictly forbidden.",
|
|
"TEST_DATA": "concurrency_lock -> {./fixtures/transactions.json#race_condition}"
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "[DEF:Infra:PostgresDB]"
|
|
},
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "[DEF:Infra:AuditLog]"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "execute_transfer",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 26,
|
|
"end_line": 77,
|
|
"tags": {
|
|
"PURPOSE": "Atomically move funds between accounts with audit trails.",
|
|
"PARAM": "amount (Decimal) - Positive amount to transfer.",
|
|
"PRE": "amount > 0; sender != receiver; sender_balance >= amount.",
|
|
"POST": "sender_balance -= amount; receiver_balance += amount; Audit Record Created.",
|
|
"SIDE_EFFECT": "Database mutation (Rows locked), Audit IO.",
|
|
"UX_STATE": "Error(System) -> 500 Internal -> UI shows \"Retry later\" toast.",
|
|
"UX_FEEDBACK": "Triggers specific UI flow for insufficient funds"
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "CALLS",
|
|
"target": "atomic_transaction"
|
|
}
|
|
],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "PluginExampleShot",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 64,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"SEMANTICS": "Plugin, Core, Extension",
|
|
"PURPOSE": "Reference implementation of a plugin following GRACE standards.",
|
|
"LAYER": "Domain (Business Logic)",
|
|
"INVARIANT": "get_schema must return valid JSON Schema."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "INHERITS",
|
|
"target": "PluginBase"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "get_schema",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 18,
|
|
"end_line": 32,
|
|
"tags": {
|
|
"PURPOSE": "Defines input validation schema.",
|
|
"POST": "Returns dict compliant with JSON Schema draft 7."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 18
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 18
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 18
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 18
|
|
}
|
|
],
|
|
"score": 0.5333333333333333
|
|
}
|
|
},
|
|
{
|
|
"name": "execute",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 34,
|
|
"end_line": 62,
|
|
"tags": {
|
|
"PURPOSE": "Core plugin logic with structured logging and scope isolation.",
|
|
"PARAM": "context (TaskContext) - Execution tools (log, progress).",
|
|
"SIDE_EFFECT": "Emits logs to centralized system."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "BINDS_TO",
|
|
"target": "context.logger"
|
|
}
|
|
],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 34
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 34
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 34
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 34
|
|
}
|
|
],
|
|
"score": 0.4666666666666666
|
|
}
|
|
},
|
|
{
|
|
"name": "id",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 15,
|
|
"end_line": 15,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "BackendRouteShot",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 65,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"SEMANTICS": "Route, Task, API, Async",
|
|
"PURPOSE": "Reference implementation of a task-based route using GRACE-Poly.",
|
|
"LAYER": "Interface (API)",
|
|
"INVARIANT": "TaskManager must be available in dependency graph."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "IMPLEMENTS",
|
|
"target": "[DEF:Std:API_FastAPI]"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "create_task",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 24,
|
|
"end_line": 63,
|
|
"tags": {
|
|
"PURPOSE": "Create and start a new task using TaskManager. Non-blocking.",
|
|
"PARAM": "task_manager (TaskManager) - Async task executor.",
|
|
"PRE": "plugin_id must match a registered plugin.",
|
|
"POST": "A new task is spawned; Task ID returned immediately.",
|
|
"SIDE_EFFECT": "Writes to DB, Trigger background worker.",
|
|
"UX_STATE": "Error feedback -> 500 Internal Error"
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "CALLS",
|
|
"target": "task_manager.create_task"
|
|
}
|
|
],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "FrontendComponentShot",
|
|
"type": "Component",
|
|
"tier": "CRITICAL",
|
|
"start_line": 1,
|
|
"end_line": 70,
|
|
"tags": {
|
|
"TIER": "CRITICAL",
|
|
"SEMANTICS": "Task, Button, Action, UX",
|
|
"PURPOSE": "Action button to spawn a new task with full UX feedback cycle.",
|
|
"LAYER": "UI (Presentation)",
|
|
"RELATION": "CALLS -> postApi",
|
|
"INVARIANT": "Must prevent double-submission while loading.",
|
|
"TEST_DATA": "loading_state -> {\"isLoading\": true}",
|
|
"UX_STATE": "Error -> Toast notification triggers.",
|
|
"UX_FEEDBACK": "Toast success/error.",
|
|
"UX_TEST": "Success -> {api_resolve: 200, expected: toast.success called}"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "spawnTask",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 31,
|
|
"end_line": 56,
|
|
"tags": {},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 31
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 31
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 31
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 31
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 31
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 31
|
|
}
|
|
],
|
|
"score": 0.1999999999999999
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
},
|
|
"props": [
|
|
{
|
|
"name": "plugin_id",
|
|
"type": "any",
|
|
"default": "\"\""
|
|
},
|
|
{
|
|
"name": "params",
|
|
"type": "any",
|
|
"default": "{}"
|
|
}
|
|
],
|
|
"data_flow": [
|
|
{
|
|
"store": "lib",
|
|
"type": "READS_FROM",
|
|
"line": 22
|
|
},
|
|
{
|
|
"store": "lib",
|
|
"type": "READS_FROM",
|
|
"line": 23
|
|
},
|
|
{
|
|
"store": "lib",
|
|
"type": "READS_FROM",
|
|
"line": 24
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 46
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 51
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 68
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "DashboardTypes",
|
|
"type": "Module",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 1,
|
|
"end_line": 20,
|
|
"tags": {
|
|
"TIER": "TRIVIAL",
|
|
"PURPOSE": "TypeScript interfaces for Dashboard entities",
|
|
"LAYER": "Domain"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "Counter",
|
|
"type": "Component",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 1,
|
|
"end_line": 17,
|
|
"tags": {
|
|
"TIER": "TRIVIAL",
|
|
"PURPOSE": "Simple counter demo component",
|
|
"LAYER": "UI"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
},
|
|
"data_flow": [
|
|
{
|
|
"store": "state",
|
|
"type": "WRITES_TO",
|
|
"line": 8
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "stores_module",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 71,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"SEMANTICS": "state, stores, svelte, plugins, tasks",
|
|
"PURPOSE": "Global state management using Svelte stores.",
|
|
"LAYER": "UI-State"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "plugins",
|
|
"type": "Data",
|
|
"tier": "STANDARD",
|
|
"start_line": 10,
|
|
"end_line": 13,
|
|
"tags": {
|
|
"PURPOSE": "Store for the list of available plugins."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "tasks",
|
|
"type": "Data",
|
|
"tier": "STANDARD",
|
|
"start_line": 15,
|
|
"end_line": 18,
|
|
"tags": {
|
|
"PURPOSE": "Store for the list of tasks."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "selectedPlugin",
|
|
"type": "Data",
|
|
"tier": "STANDARD",
|
|
"start_line": 20,
|
|
"end_line": 23,
|
|
"tags": {
|
|
"PURPOSE": "Store for the currently selected plugin."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "selectedTask",
|
|
"type": "Data",
|
|
"tier": "STANDARD",
|
|
"start_line": 25,
|
|
"end_line": 28,
|
|
"tags": {
|
|
"PURPOSE": "Store for the currently selected task."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "currentPage",
|
|
"type": "Data",
|
|
"tier": "STANDARD",
|
|
"start_line": 30,
|
|
"end_line": 33,
|
|
"tags": {
|
|
"PURPOSE": "Store for the current page."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "taskLogs",
|
|
"type": "Data",
|
|
"tier": "STANDARD",
|
|
"start_line": 35,
|
|
"end_line": 38,
|
|
"tags": {
|
|
"PURPOSE": "Store for the logs of the currently selected task."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "fetchPlugins",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 40,
|
|
"end_line": 54,
|
|
"tags": {
|
|
"PURPOSE": "Fetches plugins from the API and updates the plugins store.",
|
|
"PRE": "None.",
|
|
"POST": "plugins store is updated with data from the API."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 40
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 40
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "fetchTasks",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 56,
|
|
"end_line": 70,
|
|
"tags": {
|
|
"PURPOSE": "Fetches tasks from the API and updates the tasks store.",
|
|
"PRE": "None.",
|
|
"POST": "tasks store is updated with data from the API."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 56
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 56
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "toasts_module",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 38,
|
|
"tags": {
|
|
"SEMANTICS": "notification, toast, feedback, state",
|
|
"PURPOSE": "Manages toast notifications using a Svelte writable store.",
|
|
"LAYER": "UI-State"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "toasts",
|
|
"type": "Data",
|
|
"tier": "STANDARD",
|
|
"start_line": 8,
|
|
"end_line": 11,
|
|
"tags": {
|
|
"PURPOSE": "Writable store containing the list of active toasts."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "addToast",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 13,
|
|
"end_line": 26,
|
|
"tags": {
|
|
"PURPOSE": "Adds a new toast message.",
|
|
"PRE": "message string is provided.",
|
|
"POST": "New toast is added to the store and scheduled for removal.",
|
|
"PARAM": "duration (number) - Duration in ms before the toast is removed."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 13
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 13
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "removeToast",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 28,
|
|
"end_line": 37,
|
|
"tags": {
|
|
"PURPOSE": "Removes a toast message by ID.",
|
|
"PRE": "id is provided.",
|
|
"POST": "Toast is removed from the store.",
|
|
"PARAM": "id (string) - The ID of the toast to remove."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 28
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 28
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
}
|
|
},
|
|
{
|
|
"name": "api_module",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 201,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"SEMANTICS": "api, client, fetch, rest",
|
|
"PURPOSE": "Handles all communication with the backend API.",
|
|
"LAYER": "Infra-API"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "getWsUrl",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 12,
|
|
"end_line": 27,
|
|
"tags": {
|
|
"PURPOSE": "Returns the WebSocket URL for a specific task, with fallback logic.",
|
|
"PRE": "taskId is provided.",
|
|
"POST": "Returns valid WebSocket URL string.",
|
|
"PARAM": "taskId (string) - The ID of the task.",
|
|
"RETURN": "string - The WebSocket URL."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 12
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 12
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "getAuthHeaders",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 29,
|
|
"end_line": 43,
|
|
"tags": {
|
|
"PURPOSE": "Returns headers with Authorization if token exists."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 29
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 29
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 29
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 29
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 29
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 29
|
|
}
|
|
],
|
|
"score": 0.26666666666666655
|
|
}
|
|
},
|
|
{
|
|
"name": "fetchApi",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 45,
|
|
"end_line": 73,
|
|
"tags": {
|
|
"PURPOSE": "Generic GET request wrapper.",
|
|
"PRE": "endpoint string is provided.",
|
|
"POST": "Returns Promise resolving to JSON data or throws on error.",
|
|
"PARAM": "endpoint (string) - API endpoint.",
|
|
"RETURN": "Promise<any> - JSON response."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 45
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 45
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "postApi",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 75,
|
|
"end_line": 106,
|
|
"tags": {
|
|
"PURPOSE": "Generic POST request wrapper.",
|
|
"PRE": "endpoint and body are provided.",
|
|
"POST": "Returns Promise resolving to JSON data or throws on error.",
|
|
"PARAM": "body (object) - Request payload.",
|
|
"RETURN": "Promise<any> - JSON response."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 75
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 75
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "requestApi",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 108,
|
|
"end_line": 143,
|
|
"tags": {
|
|
"PURPOSE": "Generic request wrapper.",
|
|
"PRE": "endpoint and method are provided.",
|
|
"POST": "Returns Promise resolving to JSON data or throws on error."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 108
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 108
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "api",
|
|
"type": "Data",
|
|
"tier": "STANDARD",
|
|
"start_line": 145,
|
|
"end_line": 199,
|
|
"tags": {
|
|
"PURPOSE": "API client object with specific methods."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "Utils",
|
|
"type": "Module",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 1,
|
|
"end_line": 14,
|
|
"tags": {
|
|
"TIER": "TRIVIAL",
|
|
"PURPOSE": "General utility functions (class merging)",
|
|
"LAYER": "Infra",
|
|
"PARAM": "{...(string | undefined | null | false)} inputs",
|
|
"RETURNS": "{string}"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "cn",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 11,
|
|
"end_line": 11,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "authStore",
|
|
"type": "Store",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 102,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"SEMANTICS": "auth, store, svelte, jwt, session",
|
|
"PURPOSE": "Manages the global authentication state on the frontend.",
|
|
"LAYER": "Feature"
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "MODIFIED_BY",
|
|
"target": "handleLogin, handleLogout"
|
|
},
|
|
{
|
|
"type": "BINDS_TO",
|
|
"target": "Navbar, ProtectedRoute"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "AuthState",
|
|
"type": "Interface",
|
|
"tier": "STANDARD",
|
|
"start_line": 12,
|
|
"end_line": 22,
|
|
"tags": {
|
|
"PURPOSE": "Defines the structure of the authentication state."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "createAuthStore",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 31,
|
|
"end_line": 98,
|
|
"tags": {
|
|
"PURPOSE": "Creates and configures the auth store with helper methods.",
|
|
"PRE": "No preconditions - initialization function.",
|
|
"POST": "Returns configured auth store with subscribe, setToken, setUser, logout, setLoading methods.",
|
|
"RETURNS": "{Writable<AuthState>}"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "setToken",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 43,
|
|
"end_line": 57,
|
|
"tags": {
|
|
"PURPOSE": "Updates the store with a new JWT token.",
|
|
"PRE": "token must be a valid JWT string.",
|
|
"POST": "Store updated with new token, isAuthenticated set to true.",
|
|
"PARAM": "{string} token - The JWT access token."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "setUser",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 58,
|
|
"end_line": 69,
|
|
"tags": {
|
|
"PURPOSE": "Sets the current user profile data.",
|
|
"PRE": "User object must contain valid profile data.",
|
|
"POST": "Store updated with user, isAuthenticated true, loading false.",
|
|
"PARAM": "{any} user - The user profile object."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "logout",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 70,
|
|
"end_line": 83,
|
|
"tags": {
|
|
"PURPOSE": "Clears authentication state and storage.",
|
|
"PRE": "User is currently authenticated.",
|
|
"POST": "Auth token removed from localStorage, store reset to initial state."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "setLoading",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 84,
|
|
"end_line": 95,
|
|
"tags": {
|
|
"PURPOSE": "Updates the loading state.",
|
|
"PRE": "None.",
|
|
"POST": "Store loading state updated.",
|
|
"PARAM": "{boolean} loading - Loading status."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 84
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 84
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 84
|
|
}
|
|
],
|
|
"score": 0.7
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 31
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 31
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "Debounce",
|
|
"type": "Module",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 1,
|
|
"end_line": 25,
|
|
"tags": {
|
|
"TIER": "TRIVIAL",
|
|
"PURPOSE": "Debounce utility for limiting function execution rate",
|
|
"LAYER": "Infra",
|
|
"PARAM": "{number} wait - The delay in milliseconds",
|
|
"RETURNS": "{Function} - The debounced function"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "debounce",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 14,
|
|
"end_line": 14,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "taskDrawer",
|
|
"type": "Store",
|
|
"tier": "CRITICAL",
|
|
"start_line": 1,
|
|
"end_line": 95,
|
|
"tags": {
|
|
"TIER": "CRITICAL",
|
|
"PURPOSE": "Manage Task Drawer visibility and resource-to-task mapping",
|
|
"LAYER": "UI",
|
|
"INVARIANT": "resourceTaskMap always reflects current task associations",
|
|
"UX_STATE": "Closed -> Drawer hidden, no active task",
|
|
"PARAM": "{string} resourceId - Resource ID",
|
|
"RETURNS": "{Object|null} Task info or null if no active task"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "taskDrawer",
|
|
"type": "Module",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 1,
|
|
"end_line": 95,
|
|
"tags": {
|
|
"PURPOSE": "Auto-generated module for frontend/src/lib/stores/taskDrawer.js",
|
|
"TIER": "TRIVIAL",
|
|
"LAYER": "Unknown"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "openDrawerForTask",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 26,
|
|
"end_line": 26,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "openDrawer",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 39,
|
|
"end_line": 39,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "closeDrawer",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 52,
|
|
"end_line": 52,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "updateResourceTask",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 67,
|
|
"end_line": 67,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "getTaskForResource",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 87,
|
|
"end_line": 87,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "sidebar",
|
|
"type": "Store",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 94,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"PURPOSE": "Manage sidebar visibility and navigation state",
|
|
"LAYER": "UI",
|
|
"INVARIANT": "isExpanded state is always synced with localStorage",
|
|
"UX_STATE": "Toggling -> Animation plays for 200ms",
|
|
"PARAM": "{boolean} isOpen - Whether the mobile overlay should be open"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "sidebar",
|
|
"type": "Module",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 1,
|
|
"end_line": 94,
|
|
"tags": {
|
|
"PURPOSE": "Auto-generated module for frontend/src/lib/stores/sidebar.js",
|
|
"TIER": "TRIVIAL",
|
|
"LAYER": "Unknown"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "toggleSidebar",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 51,
|
|
"end_line": 51,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "setActiveItem",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 64,
|
|
"end_line": 64,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "setMobileOpen",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 76,
|
|
"end_line": 76,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "closeMobile",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 83,
|
|
"end_line": 83,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "toggleMobileSidebar",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 90,
|
|
"end_line": 90,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "activity",
|
|
"type": "Store",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 33,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"PURPOSE": "Track active task count for navbar indicator",
|
|
"LAYER": "UI",
|
|
"UX_STATE": "Active -> Badge shows count of running tasks"
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "WebSocket connection, taskDrawer store"
|
|
}
|
|
],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "frontend.src.lib.stores.__tests__.test_sidebar",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 142,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"PURPOSE": "Unit tests for sidebar store",
|
|
"LAYER": "UI"
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "VERIFIES",
|
|
"target": "frontend.src.lib.stores.sidebar"
|
|
}
|
|
],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @SEMANTICS (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
}
|
|
},
|
|
{
|
|
"name": "frontend.src.lib.stores.__tests__.sidebar",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 2,
|
|
"end_line": 119,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"PURPOSE": "Unit tests for sidebar store",
|
|
"LAYER": "Domain (Tests)"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "test_sidebar_initial_state",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 17,
|
|
"end_line": 31,
|
|
"tags": {
|
|
"TEST": "Store initializes with default values",
|
|
"PRE": "No localStorage state",
|
|
"POST": "Default state is { isExpanded: true, activeCategory: 'dashboards', activeItem: '/dashboards', isMobileOpen: false }"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 17
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 17
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 17
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 17
|
|
}
|
|
],
|
|
"score": 0.5333333333333333
|
|
}
|
|
},
|
|
{
|
|
"name": "test_toggleSidebar",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 33,
|
|
"end_line": 56,
|
|
"tags": {
|
|
"TEST": "toggleSidebar toggles isExpanded state",
|
|
"PRE": "Store is initialized",
|
|
"POST": "isExpanded is toggled from previous value"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 33
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 33
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 33
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 33
|
|
}
|
|
],
|
|
"score": 0.5333333333333333
|
|
}
|
|
},
|
|
{
|
|
"name": "test_setActiveItem",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 58,
|
|
"end_line": 79,
|
|
"tags": {
|
|
"TEST": "setActiveItem updates activeCategory and activeItem",
|
|
"PRE": "Store is initialized",
|
|
"POST": "activeCategory and activeItem are updated"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 58
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 58
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 58
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 58
|
|
}
|
|
],
|
|
"score": 0.5333333333333333
|
|
}
|
|
},
|
|
{
|
|
"name": "test_mobile_functions",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 81,
|
|
"end_line": 116,
|
|
"tags": {
|
|
"TEST": "Mobile functions correctly update isMobileOpen",
|
|
"PRE": "Store is initialized",
|
|
"POST": "isMobileOpen is correctly updated"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 81
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 81
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 81
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 81
|
|
}
|
|
],
|
|
"score": 0.5333333333333333
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @SEMANTICS (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 2
|
|
}
|
|
],
|
|
"score": 0.85
|
|
}
|
|
},
|
|
{
|
|
"name": "frontend.src.lib.stores.__tests__.test_activity",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 119,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"PURPOSE": "Unit tests for activity store",
|
|
"LAYER": "UI"
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "VERIFIES",
|
|
"target": "frontend.src.lib.stores.activity"
|
|
},
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "frontend.src.lib.stores.taskDrawer"
|
|
}
|
|
],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @SEMANTICS (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
}
|
|
},
|
|
{
|
|
"name": "setupTests",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 63,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"PURPOSE": "Global test setup with mocks for SvelteKit modules",
|
|
"LAYER": "UI"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @SEMANTICS (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
}
|
|
},
|
|
{
|
|
"name": "frontend.src.lib.stores.__tests__.test_taskDrawer",
|
|
"type": "Module",
|
|
"tier": "CRITICAL",
|
|
"start_line": 1,
|
|
"end_line": 158,
|
|
"tags": {
|
|
"TIER": "CRITICAL",
|
|
"PURPOSE": "Unit tests for task drawer store",
|
|
"LAYER": "UI"
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "VERIFIES",
|
|
"target": "frontend.src.lib.stores.taskDrawer"
|
|
}
|
|
],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": false,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @SEMANTICS (required for CRITICAL tier)",
|
|
"severity": "ERROR",
|
|
"line_number": 1
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @INVARIANT (required for CRITICAL tier)",
|
|
"severity": "ERROR",
|
|
"line_number": 1
|
|
},
|
|
{
|
|
"message": "Missing @INVARIANT tag (required for CRITICAL tier)",
|
|
"severity": "ERROR",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.020000000000000073
|
|
}
|
|
},
|
|
{
|
|
"name": "navigation",
|
|
"type": "Mock",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 10,
|
|
"tags": {
|
|
"PURPOSE": "Mock for $app/navigation in tests"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "stores",
|
|
"type": "Mock",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 23,
|
|
"tags": {
|
|
"PURPOSE": "Mock for $app/stores in tests"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "environment",
|
|
"type": "Mock",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 8,
|
|
"tags": {
|
|
"PURPOSE": "Mock for $app/environment in tests"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "Select",
|
|
"type": "Component",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 1,
|
|
"end_line": 53,
|
|
"tags": {
|
|
"TIER": "TRIVIAL",
|
|
"SEMANTICS": "select, dropdown, form-field, ui-atom",
|
|
"PURPOSE": "Standardized dropdown selection component.",
|
|
"LAYER": "Atom"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
},
|
|
"data_flow": [
|
|
{
|
|
"store": "lib",
|
|
"type": "READS_FROM",
|
|
"line": 11
|
|
},
|
|
{
|
|
"store": "bindable",
|
|
"type": "WRITES_TO",
|
|
"line": 17
|
|
},
|
|
{
|
|
"store": "props",
|
|
"type": "WRITES_TO",
|
|
"line": 22
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "ui",
|
|
"type": "Module",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 1,
|
|
"end_line": 19,
|
|
"tags": {
|
|
"TIER": "TRIVIAL",
|
|
"SEMANTICS": "ui, components, library, atomic-design",
|
|
"PURPOSE": "Central export point for standardized UI components.",
|
|
"LAYER": "Atom",
|
|
"INVARIANT": "All components exported here must follow Semantic Protocol."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "PageHeader",
|
|
"type": "Component",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 1,
|
|
"end_line": 40,
|
|
"tags": {
|
|
"TIER": "TRIVIAL",
|
|
"SEMANTICS": "page-header, layout-atom",
|
|
"PURPOSE": "Standardized page header with title and action area.",
|
|
"LAYER": "Atom"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
},
|
|
"data_flow": [
|
|
{
|
|
"store": "lib",
|
|
"type": "READS_FROM",
|
|
"line": 11
|
|
},
|
|
{
|
|
"store": "props",
|
|
"type": "WRITES_TO",
|
|
"line": 21
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Card",
|
|
"type": "Component",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 1,
|
|
"end_line": 51,
|
|
"tags": {
|
|
"TIER": "TRIVIAL",
|
|
"SEMANTICS": "card, container, ui-atom",
|
|
"PURPOSE": "Standardized container with padding and elevation.",
|
|
"LAYER": "Atom"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
},
|
|
"data_flow": [
|
|
{
|
|
"store": "lib",
|
|
"type": "READS_FROM",
|
|
"line": 11
|
|
},
|
|
{
|
|
"store": "props",
|
|
"type": "WRITES_TO",
|
|
"line": 21
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Button",
|
|
"type": "Component",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 1,
|
|
"end_line": 68,
|
|
"tags": {
|
|
"TIER": "TRIVIAL",
|
|
"SEMANTICS": "button, ui-atom, interactive",
|
|
"PURPOSE": "Define component interface and default values (Svelte 5 Runes).",
|
|
"LAYER": "Atom",
|
|
"INVARIANT": "Supports accessible labels and keyboard navigation."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
},
|
|
"data_flow": [
|
|
{
|
|
"store": "lib",
|
|
"type": "READS_FROM",
|
|
"line": 14
|
|
},
|
|
{
|
|
"store": "props",
|
|
"type": "WRITES_TO",
|
|
"line": 31
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Input",
|
|
"type": "Component",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 1,
|
|
"end_line": 60,
|
|
"tags": {
|
|
"TIER": "TRIVIAL",
|
|
"SEMANTICS": "input, form-field, ui-atom",
|
|
"PURPOSE": "Standardized text input component with label and error handling.",
|
|
"LAYER": "Atom",
|
|
"INVARIANT": "Consistent spacing and focus states."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
},
|
|
"data_flow": [
|
|
{
|
|
"store": "lib",
|
|
"type": "READS_FROM",
|
|
"line": 13
|
|
},
|
|
{
|
|
"store": "bindable",
|
|
"type": "WRITES_TO",
|
|
"line": 19
|
|
},
|
|
{
|
|
"store": "props",
|
|
"type": "WRITES_TO",
|
|
"line": 26
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "LanguageSwitcher",
|
|
"type": "Component",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 1,
|
|
"end_line": 28,
|
|
"tags": {
|
|
"TIER": "TRIVIAL",
|
|
"SEMANTICS": "language-switcher, i18n-ui, ui-atom",
|
|
"PURPOSE": "Dropdown component to switch between supported languages.",
|
|
"LAYER": "Atom",
|
|
"RELATION": "BINDS_TO -> i18n.locale"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
},
|
|
"data_flow": [
|
|
{
|
|
"store": "lib",
|
|
"type": "READS_FROM",
|
|
"line": 12
|
|
},
|
|
{
|
|
"store": "locale",
|
|
"type": "WRITES_TO",
|
|
"line": 24
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "i18n",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 83,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"SEMANTICS": "i18n, localization, svelte-store, translation",
|
|
"PURPOSE": "Determines the starting locale.",
|
|
"LAYER": "Infra",
|
|
"INVARIANT": "Persistence is handled via LocalStorage.",
|
|
"RETURNS": "{Locale}"
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "locales/ru.json"
|
|
},
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "locales/en.json"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "locale",
|
|
"type": "Store",
|
|
"tier": "STANDARD",
|
|
"start_line": 34,
|
|
"end_line": 44,
|
|
"tags": {
|
|
"PURPOSE": "Holds the current active locale string."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "t",
|
|
"type": "Store",
|
|
"tier": "STANDARD",
|
|
"start_line": 46,
|
|
"end_line": 55,
|
|
"tags": {
|
|
"PURPOSE": "Derived store providing the translation dictionary.",
|
|
"RELATION": "BINDS_TO -> locale"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "_",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 57,
|
|
"end_line": 81,
|
|
"tags": {
|
|
"PURPOSE": "Get translation by key path.",
|
|
"PARAM": "key - Translation key path (e.g., 'nav.dashboard')",
|
|
"RETURNS": "Translation string or key if not found"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 57
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 57
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 57
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 57
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 57
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 57
|
|
}
|
|
],
|
|
"score": 0.26666666666666655
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "Sidebar",
|
|
"type": "Component",
|
|
"tier": "CRITICAL",
|
|
"start_line": 1,
|
|
"end_line": 360,
|
|
"tags": {
|
|
"TIER": "CRITICAL",
|
|
"PURPOSE": "Persistent left sidebar with resource categories navigation",
|
|
"LAYER": "UI",
|
|
"RELATION": "BINDS_TO -> sidebarStore",
|
|
"SEMANTICS": "Navigation",
|
|
"INVARIANT": "Always shows active category and item",
|
|
"UX_STATE": "Toggling -> Animation plays for 200ms",
|
|
"UX_FEEDBACK": "Active item highlighted with different background",
|
|
"UX_RECOVERY": "Click outside on mobile closes overlay"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
},
|
|
"data_flow": [
|
|
{
|
|
"store": "app",
|
|
"type": "READS_FROM",
|
|
"line": 18
|
|
},
|
|
{
|
|
"store": "lib",
|
|
"type": "READS_FROM",
|
|
"line": 24
|
|
},
|
|
{
|
|
"store": "lib",
|
|
"type": "READS_FROM",
|
|
"line": 25
|
|
},
|
|
{
|
|
"store": "app",
|
|
"type": "READS_FROM",
|
|
"line": 26
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 32
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 36
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 41
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 45
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 50
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 54
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 56
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 63
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 67
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 68
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 69
|
|
},
|
|
{
|
|
"store": "sidebarStore",
|
|
"type": "READS_FROM",
|
|
"line": 81
|
|
},
|
|
{
|
|
"store": "sidebarStore",
|
|
"type": "WRITES_TO",
|
|
"line": 82
|
|
},
|
|
{
|
|
"store": "sidebarStore",
|
|
"type": "WRITES_TO",
|
|
"line": 83
|
|
},
|
|
{
|
|
"store": "sidebarStore",
|
|
"type": "WRITES_TO",
|
|
"line": 84
|
|
},
|
|
{
|
|
"store": "sidebarStore",
|
|
"type": "WRITES_TO",
|
|
"line": 85
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 92
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 96
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 101
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 105
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 110
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 114
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 116
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 123
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 127
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 128
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 129
|
|
},
|
|
{
|
|
"store": "page",
|
|
"type": "READS_FROM",
|
|
"line": 135
|
|
},
|
|
{
|
|
"store": "page",
|
|
"type": "READS_FROM",
|
|
"line": 135
|
|
},
|
|
{
|
|
"store": "page",
|
|
"type": "READS_FROM",
|
|
"line": 137
|
|
},
|
|
{
|
|
"store": "page",
|
|
"type": "WRITES_TO",
|
|
"line": 141
|
|
},
|
|
{
|
|
"store": "page",
|
|
"type": "READS_FROM",
|
|
"line": 197
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Sidebar",
|
|
"type": "Module",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 1,
|
|
"end_line": 360,
|
|
"tags": {
|
|
"PURPOSE": "Auto-generated module for frontend/src/lib/components/layout/Sidebar.svelte",
|
|
"TIER": "TRIVIAL",
|
|
"LAYER": "Unknown"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "handleItemClick",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 145,
|
|
"end_line": 145,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "handleCategoryToggle",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 154,
|
|
"end_line": 154,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "handleSubItemClick",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 176,
|
|
"end_line": 176,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "handleToggleClick",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 185,
|
|
"end_line": 185,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "handleOverlayClick",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 191,
|
|
"end_line": 191,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "TopNavbar",
|
|
"type": "Component",
|
|
"tier": "CRITICAL",
|
|
"start_line": 1,
|
|
"end_line": 236,
|
|
"tags": {
|
|
"TIER": "CRITICAL",
|
|
"PURPOSE": "Unified top navigation bar with Logo, Search, Activity, and User menu",
|
|
"LAYER": "UI",
|
|
"RELATION": "BINDS_TO -> activityStore, authStore",
|
|
"SEMANTICS": "Navigation, UserSession",
|
|
"INVARIANT": "Always visible on non-login pages",
|
|
"UX_STATE": "SearchFocused -> Search input expands",
|
|
"UX_FEEDBACK": "Activity badge shows count of running tasks",
|
|
"UX_RECOVERY": "Click outside closes dropdowns"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
},
|
|
"events": [
|
|
"activityClick"
|
|
],
|
|
"data_flow": [
|
|
{
|
|
"store": "app",
|
|
"type": "READS_FROM",
|
|
"line": 18
|
|
},
|
|
{
|
|
"store": "lib",
|
|
"type": "READS_FROM",
|
|
"line": 19
|
|
},
|
|
{
|
|
"store": "lib",
|
|
"type": "READS_FROM",
|
|
"line": 24
|
|
},
|
|
{
|
|
"store": "lib",
|
|
"type": "READS_FROM",
|
|
"line": 25
|
|
},
|
|
{
|
|
"store": "lib",
|
|
"type": "READS_FROM",
|
|
"line": 26
|
|
},
|
|
{
|
|
"store": "lib",
|
|
"type": "READS_FROM",
|
|
"line": 27
|
|
},
|
|
{
|
|
"store": "sidebarStore",
|
|
"type": "READS_FROM",
|
|
"line": 34
|
|
},
|
|
{
|
|
"store": "activityStore",
|
|
"type": "READS_FROM",
|
|
"line": 35
|
|
},
|
|
{
|
|
"store": "activityStore",
|
|
"type": "READS_FROM",
|
|
"line": 36
|
|
},
|
|
{
|
|
"store": "auth",
|
|
"type": "READS_FROM",
|
|
"line": 37
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 140
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 219
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 229
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "TopNavbar",
|
|
"type": "Module",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 1,
|
|
"end_line": 236,
|
|
"tags": {
|
|
"PURPOSE": "Auto-generated module for frontend/src/lib/components/layout/TopNavbar.svelte",
|
|
"TIER": "TRIVIAL",
|
|
"LAYER": "Unknown"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "toggleUserMenu",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 39,
|
|
"end_line": 39,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "closeUserMenu",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 44,
|
|
"end_line": 44,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "handleLogout",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 48,
|
|
"end_line": 48,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "handleActivityClick",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 54,
|
|
"end_line": 54,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "handleSearchFocus",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 66,
|
|
"end_line": 66,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "handleSearchBlur",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 70,
|
|
"end_line": 70,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "handleDocumentClick",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 74,
|
|
"end_line": 74,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "handleHamburgerClick",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 84,
|
|
"end_line": 84,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "Breadcrumbs",
|
|
"type": "Component",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 111,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"PURPOSE": "Display page hierarchy navigation",
|
|
"LAYER": "UI",
|
|
"RELATION": "DEPENDS_ON -> page store",
|
|
"INVARIANT": "Always shows current page path",
|
|
"UX_STATE": "Idle -> Breadcrumbs showing current path",
|
|
"UX_FEEDBACK": "Hover on breadcrumb shows clickable state",
|
|
"UX_RECOVERY": "Click breadcrumb to navigate",
|
|
"PARAM": "{string} segment - URL segment",
|
|
"RETURNS": "{string} Formatted label"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @SEMANTICS (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
},
|
|
"data_flow": [
|
|
{
|
|
"store": "app",
|
|
"type": "READS_FROM",
|
|
"line": 15
|
|
},
|
|
{
|
|
"store": "lib",
|
|
"type": "READS_FROM",
|
|
"line": 16
|
|
},
|
|
{
|
|
"store": "props",
|
|
"type": "WRITES_TO",
|
|
"line": 18
|
|
},
|
|
{
|
|
"store": "derived",
|
|
"type": "WRITES_TO",
|
|
"line": 21
|
|
},
|
|
{
|
|
"store": "page",
|
|
"type": "READS_FROM",
|
|
"line": 22
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Breadcrumbs",
|
|
"type": "Module",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 1,
|
|
"end_line": 111,
|
|
"tags": {
|
|
"PURPOSE": "Auto-generated module for frontend/src/lib/components/layout/Breadcrumbs.svelte",
|
|
"TIER": "TRIVIAL",
|
|
"LAYER": "Unknown"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "getBreadcrumbs",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 30,
|
|
"end_line": 30,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "formatBreadcrumbLabel",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 66,
|
|
"end_line": 66,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "TaskDrawer",
|
|
"type": "Component",
|
|
"tier": "CRITICAL",
|
|
"start_line": 1,
|
|
"end_line": 319,
|
|
"tags": {
|
|
"TIER": "CRITICAL",
|
|
"PURPOSE": "Global task drawer for monitoring background operations",
|
|
"LAYER": "UI",
|
|
"RELATION": "BINDS_TO -> taskDrawerStore, WebSocket",
|
|
"SEMANTICS": "TaskLogViewer",
|
|
"INVARIANT": "Drawer shows logs for active task or remains closed",
|
|
"UX_STATE": "InputRequired -> Interactive form rendered in drawer",
|
|
"UX_FEEDBACK": "Back button returns to task list",
|
|
"UX_RECOVERY": "Back button shows task list when viewing task details"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "loadRecentTasks",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 119,
|
|
"end_line": 138,
|
|
"tags": {
|
|
"PURPOSE": "Load recent tasks for list mode display",
|
|
"POST": "recentTasks array populated with task list"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 119
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 119
|
|
}
|
|
],
|
|
"score": 0.7333333333333334
|
|
}
|
|
},
|
|
{
|
|
"name": "selectTask",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 140,
|
|
"end_line": 150,
|
|
"tags": {
|
|
"PURPOSE": "Select a task from list to view details"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 140
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 140
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 140
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 140
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 140
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 140
|
|
}
|
|
],
|
|
"score": 0.26666666666666655
|
|
}
|
|
},
|
|
{
|
|
"name": "goBackToList",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 152,
|
|
"end_line": 164,
|
|
"tags": {
|
|
"PURPOSE": "Return to task list view from task details"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 152
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 152
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 152
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 152
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 152
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 152
|
|
}
|
|
],
|
|
"score": 0.26666666666666655
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
},
|
|
"data_flow": [
|
|
{
|
|
"store": "lib",
|
|
"type": "READS_FROM",
|
|
"line": 22
|
|
},
|
|
{
|
|
"store": "lib",
|
|
"type": "READS_FROM",
|
|
"line": 25
|
|
},
|
|
{
|
|
"store": "lib",
|
|
"type": "READS_FROM",
|
|
"line": 26
|
|
},
|
|
{
|
|
"store": "taskDrawerStore",
|
|
"type": "READS_FROM",
|
|
"line": 37
|
|
},
|
|
{
|
|
"store": "taskDrawerStore",
|
|
"type": "WRITES_TO",
|
|
"line": 38
|
|
},
|
|
{
|
|
"store": "taskDrawerStore",
|
|
"type": "WRITES_TO",
|
|
"line": 39
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 231
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 303
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 312
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "TaskDrawer",
|
|
"type": "Module",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 1,
|
|
"end_line": 321,
|
|
"tags": {
|
|
"PURPOSE": "Auto-generated module for frontend/src/lib/components/layout/TaskDrawer.svelte",
|
|
"TIER": "TRIVIAL",
|
|
"LAYER": "Unknown"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "handleClose",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 52,
|
|
"end_line": 52,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "handleOverlayClick",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 58,
|
|
"end_line": 58,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "connectWebSocket",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 65,
|
|
"end_line": 65,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "disconnectWebSocket",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 112,
|
|
"end_line": 112,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "ErrorPage",
|
|
"type": "Page",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 24,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"PURPOSE": "Global error page displaying HTTP status and messages",
|
|
"LAYER": "UI",
|
|
"UX_STATE": "Error -> Displays error code and message with home link"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "RootLayoutConfig",
|
|
"type": "Module",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 1,
|
|
"end_line": 9,
|
|
"tags": {
|
|
"TIER": "TRIVIAL",
|
|
"PURPOSE": "Root layout configuration (SPA mode)",
|
|
"LAYER": "Infra"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "HomePage",
|
|
"type": "Page",
|
|
"tier": "CRITICAL",
|
|
"start_line": 1,
|
|
"end_line": 45,
|
|
"tags": {
|
|
"TIER": "CRITICAL",
|
|
"PURPOSE": "Redirect to Dashboard Hub as per UX requirements",
|
|
"LAYER": "UI",
|
|
"INVARIANT": "Always redirects to /dashboards",
|
|
"UX_STATE": "Loading -> Shows loading indicator",
|
|
"UX_FEEDBACK": "Redirects to /dashboards"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "load",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 3,
|
|
"end_line": 23,
|
|
"tags": {
|
|
"PURPOSE": "Loads initial plugin data for the dashboard.",
|
|
"PRE": "None.",
|
|
"POST": "Returns an object with plugins or an error message.",
|
|
"TYPE": "{import('./$types').PageLoad} */"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 3
|
|
}
|
|
],
|
|
"score": 0.9
|
|
}
|
|
},
|
|
{
|
|
"name": "layout",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 16,
|
|
"end_line": 69,
|
|
"tags": {},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 16
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @LAYER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 16
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @SEMANTICS (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 16
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 16
|
|
}
|
|
],
|
|
"score": 0.39999999999999997
|
|
}
|
|
},
|
|
{
|
|
"name": "TaskManagementPage",
|
|
"type": "Component",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 176,
|
|
"tags": {
|
|
"SEMANTICS": "tasks, management, history, logs",
|
|
"PURPOSE": "Page for managing and monitoring tasks.",
|
|
"LAYER": "Page",
|
|
"RELATION": "USES -> TaskLogViewer"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "loadInitialData",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 26,
|
|
"end_line": 49,
|
|
"tags": {
|
|
"PURPOSE": "Loads tasks and environments on page initialization.",
|
|
"PRE": "API must be reachable.",
|
|
"POST": "tasks and environments variables are populated."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "refreshTasks",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 51,
|
|
"end_line": 68,
|
|
"tags": {
|
|
"PURPOSE": "Periodically refreshes the task list.",
|
|
"PRE": "API must be reachable.",
|
|
"POST": "tasks variable is updated if data is valid."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 51
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 51
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "handleSelectTask",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 70,
|
|
"end_line": 80,
|
|
"tags": {
|
|
"PURPOSE": "Updates the selected task ID when a task is clicked.",
|
|
"PRE": "event.detail.id must be provided.",
|
|
"POST": "selectedTaskId is updated."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 70
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 70
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "handleRunBackup",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 82,
|
|
"end_line": 106,
|
|
"tags": {
|
|
"PURPOSE": "Triggers a manual backup task for the selected environment.",
|
|
"PRE": "selectedEnvId must not be empty.",
|
|
"POST": "Backup task is created and task list is refreshed."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 82
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 82
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
},
|
|
"data_flow": [
|
|
{
|
|
"store": "lib",
|
|
"type": "READS_FROM",
|
|
"line": 15
|
|
},
|
|
{
|
|
"store": "lib",
|
|
"type": "READS_FROM",
|
|
"line": 16
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 119
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 123
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 128
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 141
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 151
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 154
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 157
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 164
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "DatasetHub",
|
|
"type": "Page",
|
|
"tier": "CRITICAL",
|
|
"start_line": 1,
|
|
"end_line": 780,
|
|
"tags": {
|
|
"TIER": "CRITICAL",
|
|
"PURPOSE": "Dataset Hub - Dedicated hub for datasets with mapping progress",
|
|
"LAYER": "UI",
|
|
"RELATION": "BINDS_TO -> sidebarStore, taskDrawerStore",
|
|
"INVARIANT": "Always shows environment selector and dataset grid",
|
|
"UX_STATE": "BulkAction-Modal -> Map Columns or Generate Docs modal open",
|
|
"UX_FEEDBACK": "Floating panel slides up from bottom when items selected",
|
|
"UX_RECOVERY": "Refresh button reloads dataset list"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "+page",
|
|
"type": "Module",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 1,
|
|
"end_line": 780,
|
|
"tags": {
|
|
"PURPOSE": "Auto-generated module for frontend/src/routes/datasets/+page.svelte",
|
|
"TIER": "TRIVIAL",
|
|
"LAYER": "Unknown"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "loadEnvironments",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 74,
|
|
"end_line": 74,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "loadDatasets",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 94,
|
|
"end_line": 94,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "handleEnvChange",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 146,
|
|
"end_line": 146,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "handleSearch",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 154,
|
|
"end_line": 154,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "handlePageChange",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 159,
|
|
"end_line": 159,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "handlePageSizeChange",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 165,
|
|
"end_line": 165,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "updateSelectionState",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 172,
|
|
"end_line": 172,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "handleCheckboxChange",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 181,
|
|
"end_line": 181,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "handleSelectAll",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 192,
|
|
"end_line": 192,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "handleSelectVisible",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 213,
|
|
"end_line": 213,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "handleAction",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 224,
|
|
"end_line": 224,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "handleBulkMapColumns",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 242,
|
|
"end_line": 242,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "handleBulkGenerateDocs",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 297,
|
|
"end_line": 297,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "handleTaskStatusClick",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 328,
|
|
"end_line": 328,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "getTaskStatusIcon",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 336,
|
|
"end_line": 336,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "getMappingProgressClass",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 353,
|
|
"end_line": 353,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "DatasetDetail",
|
|
"type": "Page",
|
|
"tier": "CRITICAL",
|
|
"start_line": 1,
|
|
"end_line": 393,
|
|
"tags": {
|
|
"TIER": "CRITICAL",
|
|
"PURPOSE": "Dataset Detail View - Shows detailed dataset information with columns, SQL, and linked dashboards",
|
|
"LAYER": "UI",
|
|
"RELATION": "BINDS_TO -> sidebarStore",
|
|
"INVARIANT": "Always shows dataset details when loaded",
|
|
"UX_STATE": "Error -> Shows error banner with retry button",
|
|
"UX_FEEDBACK": "Clicking linked dashboard navigates to dashboard detail",
|
|
"UX_RECOVERY": "Refresh button reloads dataset details"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "+page",
|
|
"type": "Module",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 1,
|
|
"end_line": 393,
|
|
"tags": {
|
|
"PURPOSE": "Auto-generated module for frontend/src/routes/datasets/[id]/+page.svelte",
|
|
"TIER": "TRIVIAL",
|
|
"LAYER": "Unknown"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "loadDatasetDetail",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 39,
|
|
"end_line": 39,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "navigateToDashboard",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 60,
|
|
"end_line": 60,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "goBack",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 65,
|
|
"end_line": 65,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "getColumnTypeClass",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 70,
|
|
"end_line": 70,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "getMappingProgress",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 94,
|
|
"end_line": 94,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "LoginPage",
|
|
"type": "Component",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 158,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"SEMANTICS": "login, auth, ui, form",
|
|
"PURPOSE": "Provides the user interface for local and ADFS authentication.",
|
|
"LAYER": "UI",
|
|
"RELATION": "CALLS -> api.auth.login",
|
|
"INVARIANT": "Shows both local login form and ADFS SSO button."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "handleLogin",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 24,
|
|
"end_line": 75,
|
|
"tags": {
|
|
"PURPOSE": "Submits the local login form to the backend.",
|
|
"PRE": "Username and password are not empty.",
|
|
"POST": "User is authenticated and redirected on success."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 24
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 24
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "handleADFSLogin",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 77,
|
|
"end_line": 84,
|
|
"tags": {
|
|
"PURPOSE": "Redirects the user to the ADFS login endpoint."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 77
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 77
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 77
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 77
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 77
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 77
|
|
}
|
|
],
|
|
"score": 0.26666666666666655
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
},
|
|
"data_flow": [
|
|
{
|
|
"store": "app",
|
|
"type": "READS_FROM",
|
|
"line": 17
|
|
},
|
|
{
|
|
"store": "auth",
|
|
"type": "READS_FROM",
|
|
"line": 87
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "StorageIndexPage",
|
|
"type": "Page",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 1,
|
|
"end_line": 16,
|
|
"tags": {
|
|
"TIER": "TRIVIAL",
|
|
"PURPOSE": "Redirect to the backups page as the default storage view.",
|
|
"LAYER": "Page",
|
|
"INVARIANT": "Always redirects to /storage/backups."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "StorageReposPage",
|
|
"type": "Page",
|
|
"tier": "STANDARD",
|
|
"start_line": 12,
|
|
"end_line": 109,
|
|
"tags": {
|
|
"UX_STATE": "Idle -> Showing dashboard grid with actions.",
|
|
"UX_FEEDBACK": "Toast -> Error messages on fetch failure.",
|
|
"UX_RECOVERY": "Environment Selection -> Switch environment to retry loading."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "fetchEnvironments",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 34,
|
|
"end_line": 52,
|
|
"tags": {
|
|
"PURPOSE": "Fetches the list of available environments.",
|
|
"PRE": "None.",
|
|
"POST": "environments array is populated, selectedEnvId is set to first env if available."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 34
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 34
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "fetchDashboards",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 54,
|
|
"end_line": 72,
|
|
"tags": {
|
|
"PURPOSE": "Fetches dashboards for a specific environment.",
|
|
"PRE": "envId is a valid environment ID.",
|
|
"POST": "dashboards array is populated with metadata for the selected environment."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 54
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 54
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "AdminRolesPage",
|
|
"type": "Component",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 234,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"SEMANTICS": "admin, role-management, rbac",
|
|
"PURPOSE": "UI for managing system roles and their permissions.",
|
|
"LAYER": "Domain",
|
|
"RELATION": "DEPENDS_ON -> frontend.src.components.auth.ProtectedRoute",
|
|
"INVARIANT": "Only accessible by users with Admin role."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "loadData",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 35,
|
|
"end_line": 57,
|
|
"tags": {
|
|
"PURPOSE": "Fetches roles and available permissions.",
|
|
"PRE": "Component mounted.",
|
|
"POST": "roles and permissions arrays populated."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "openCreateModal",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 59,
|
|
"end_line": 72,
|
|
"tags": {
|
|
"PURPOSE": "Initializes state for creating a new role.",
|
|
"PRE": "None.",
|
|
"POST": "showModal is true, roleForm is reset."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "openEditModal",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 74,
|
|
"end_line": 91,
|
|
"tags": {
|
|
"PURPOSE": "Initializes state for editing an existing role.",
|
|
"PRE": "role object is provided.",
|
|
"POST": "showModal is true, roleForm is populated."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 74
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 74
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "handleSaveRole",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 93,
|
|
"end_line": 115,
|
|
"tags": {
|
|
"PURPOSE": "Submits role data (create or update).",
|
|
"PRE": "roleForm contains valid data.",
|
|
"POST": "Role is saved, modal closed, data reloaded."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "handleDeleteRole",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 117,
|
|
"end_line": 136,
|
|
"tags": {
|
|
"PURPOSE": "Deletes a role after confirmation.",
|
|
"PRE": "role object is provided.",
|
|
"POST": "Role is deleted if confirmed, data reloaded."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
},
|
|
"data_flow": [
|
|
{
|
|
"store": "lib",
|
|
"type": "READS_FROM",
|
|
"line": 16
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 124
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 145
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 150
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 155
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 163
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 164
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 165
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 166
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 184
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 185
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 198
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 198
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 202
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 206
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 210
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 219
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 222
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 223
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "AdminUsersPage",
|
|
"type": "Component",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 282,
|
|
"tags": {
|
|
"SEMANTICS": "admin, user-management, rbac",
|
|
"PURPOSE": "UI for managing system users and their roles.",
|
|
"LAYER": "Feature",
|
|
"RELATION": "DEPENDS_ON -> frontend.src.components.auth.ProtectedRoute",
|
|
"INVARIANT": "Only accessible by users with \"admin:users\" permission."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "loadData",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 37,
|
|
"end_line": 59,
|
|
"tags": {
|
|
"PURPOSE": "Fetches users and roles from the backend.",
|
|
"PRE": "Component mounted.",
|
|
"POST": "users and roles arrays populated."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "openCreateModal",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 61,
|
|
"end_line": 72,
|
|
"tags": {
|
|
"PURPOSE": "Prepares the form for creating a new user.",
|
|
"POST": "showModal is true, isEditing is false, userForm is reset."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 61
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 61
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 61
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 61
|
|
}
|
|
],
|
|
"score": 0.5333333333333333
|
|
}
|
|
},
|
|
{
|
|
"name": "openEditModal",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 74,
|
|
"end_line": 93,
|
|
"tags": {
|
|
"PURPOSE": "Prepares the form for editing an existing user.",
|
|
"PRE": "user object must be valid.",
|
|
"POST": "showModal is true, isEditing is true, userForm populated with user data.",
|
|
"PARAM": "{Object} user - The user object to edit."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 74
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 74
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "handleSaveUser",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 95,
|
|
"end_line": 122,
|
|
"tags": {
|
|
"PURPOSE": "Submits user data to the backend (create or update).",
|
|
"PRE": "userForm must be valid.",
|
|
"POST": "User created or updated, modal closed, data reloaded.",
|
|
"RELATION": "CALLS -> adminService.updateUser"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "handleDeleteUser",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 124,
|
|
"end_line": 150,
|
|
"tags": {
|
|
"PURPOSE": "Deletes a user after confirmation.",
|
|
"PRE": "user object must be valid.",
|
|
"POST": "User deleted if confirmed, data reloaded.",
|
|
"RELATION": "CALLS -> adminService.deleteUser",
|
|
"PARAM": "{Object} user - The user to delete."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
},
|
|
"data_flow": [
|
|
{
|
|
"store": "lib",
|
|
"type": "READS_FROM",
|
|
"line": 15
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 135
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 159
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 164
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 170
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 174
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 182
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 183
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 184
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 185
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 186
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 187
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 211
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 211
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 216
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 222
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 222
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 236
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 236
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 240
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 244
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 248
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 251
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 257
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 261
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 267
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 270
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 271
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "AdminSettingsPage",
|
|
"type": "Component",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 350,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"SEMANTICS": "admin, adfs, mappings, configuration, logging",
|
|
"PURPOSE": "UI for configuring Active Directory Group to local Role mappings for ADFS SSO and logging settings.",
|
|
"LAYER": "Feature",
|
|
"RELATION": "DEPENDS_ON -> frontend.src.components.auth.ProtectedRoute",
|
|
"INVARIANT": "Only accessible by users with \"admin:settings\" permission."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "loadData",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 45,
|
|
"end_line": 76,
|
|
"tags": {
|
|
"PURPOSE": "Fetches AD mappings and roles from the backend to populate the UI.",
|
|
"PRE": "Component is mounted and user has active session.",
|
|
"POST": "mappings and roles variables are updated with backend data.",
|
|
"RETURNS": "{Promise<void>}",
|
|
"RELATION": "CALLS -> adminService.getADGroupMappings"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "handleCreateMapping",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 78,
|
|
"end_line": 108,
|
|
"tags": {
|
|
"PURPOSE": "Submits a new AD Group to Role mapping to the backend.",
|
|
"PRE": "'newMapping' object contains valid 'ad_group' and 'role_id'.",
|
|
"POST": "A new mapping is created in the database and the table is refreshed.",
|
|
"RETURNS": "{Promise<void>}",
|
|
"RELATION": "CALLS -> adminService.createADGroupMapping"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "loadLoggingConfig",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 110,
|
|
"end_line": 135,
|
|
"tags": {
|
|
"PURPOSE": "Fetches current logging configuration from the backend.",
|
|
"PRE": "Component is mounted and user has active session.",
|
|
"POST": "loggingConfig variable is updated with backend data.",
|
|
"RETURNS": "{Promise<void>}",
|
|
"RELATION": "CALLS -> adminService.getLoggingConfig"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "saveLoggingConfig",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 137,
|
|
"end_line": 162,
|
|
"tags": {
|
|
"PURPOSE": "Saves logging configuration to the backend.",
|
|
"PRE": "loggingConfig contains valid values.",
|
|
"POST": "Configuration is saved and feedback is shown.",
|
|
"RETURNS": "{Promise<void>}",
|
|
"RELATION": "CALLS -> adminService.updateLoggingConfig"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
},
|
|
"data_flow": [
|
|
{
|
|
"store": "lib",
|
|
"type": "READS_FROM",
|
|
"line": 16
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 174
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 179
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 185
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 189
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 197
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 198
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 219
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 300
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 303
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 311
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 314
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 320
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 332
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 338
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "LLMSettingsPage",
|
|
"type": "Component",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 49,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"SEMANTICS": "admin, llm, settings, provider, configuration",
|
|
"PURPOSE": "Admin settings page for LLM provider configuration.",
|
|
"LAYER": "UI",
|
|
"RELATION": "CALLS -> frontend/src/components/llm/ProviderConfig.svelte"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "+page",
|
|
"type": "Module",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 1,
|
|
"end_line": 49,
|
|
"tags": {
|
|
"PURPOSE": "Auto-generated module for frontend/src/routes/admin/settings/llm/+page.svelte",
|
|
"TIER": "TRIVIAL",
|
|
"LAYER": "Unknown"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "fetchProviders",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 18,
|
|
"end_line": 18,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "MigrationDashboard",
|
|
"type": "Component",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 388,
|
|
"tags": {
|
|
"SEMANTICS": "migration, dashboard, environment, selection, database-replacement",
|
|
"PURPOSE": "Main dashboard for configuring and starting migrations.",
|
|
"LAYER": "Page",
|
|
"RELATION": "USES -> EnvSelector",
|
|
"INVARIANT": "Migration cannot start without source and target environments."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "fetchEnvironments",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 54,
|
|
"end_line": 69,
|
|
"tags": {
|
|
"PURPOSE": "Fetches the list of environments from the API.",
|
|
"PRE": "None.",
|
|
"POST": "environments state is updated."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 54
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 54
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "fetchDashboards",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 71,
|
|
"end_line": 87,
|
|
"tags": {
|
|
"PURPOSE": "Fetches dashboards for the selected source environment.",
|
|
"PRE": "envId is a valid environment ID.",
|
|
"PARAM": "envId The environment ID.",
|
|
"POST": "dashboards state is updated."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 71
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 71
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "fetchDatabases",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 94,
|
|
"end_line": 123,
|
|
"tags": {
|
|
"PURPOSE": "Fetches databases from both environments and gets suggestions.",
|
|
"PRE": "sourceEnvId and targetEnvId must be set.",
|
|
"POST": "sourceDatabases, targetDatabases, mappings, and suggestions are updated."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 94
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 94
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "handleMappingUpdate",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 125,
|
|
"end_line": 153,
|
|
"tags": {
|
|
"PURPOSE": "Saves a mapping to the backend.",
|
|
"PRE": "event.detail contains sourceUuid and targetUuid.",
|
|
"POST": "Mapping is saved and local mappings list is updated."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 125
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 125
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "handleViewLogs",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 155,
|
|
"end_line": 165,
|
|
"tags": {
|
|
"PURPOSE": "Opens the log viewer for a specific task.",
|
|
"PRE": "event.detail contains task object.",
|
|
"POST": "logViewer state updated and showLogViewer set to true."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 155
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 155
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "handlePasswordPrompt",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 167,
|
|
"end_line": 189,
|
|
"tags": {
|
|
"PURPOSE": "Reactive logic to show password prompt when a task is awaiting input.",
|
|
"PRE": "selectedTask status is AWAITING_INPUT.",
|
|
"POST": "showPasswordPrompt set to true with request data."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 167
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 167
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "handleResumeMigration",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 191,
|
|
"end_line": 209,
|
|
"tags": {
|
|
"PURPOSE": "Resumes a migration task with provided passwords.",
|
|
"PRE": "event.detail contains passwords.",
|
|
"POST": "resumeTask is called and showPasswordPrompt is hidden on success."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 191
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 191
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "startMigration",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 211,
|
|
"end_line": 266,
|
|
"tags": {
|
|
"PURPOSE": "Starts the migration process.",
|
|
"PRE": "sourceEnvId and targetEnvId must be set and different.",
|
|
"POST": "Migration task is started and selectedTask is updated."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 211
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 211
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "DashboardSelectionSection",
|
|
"type": "Component",
|
|
"tier": "STANDARD",
|
|
"start_line": 306,
|
|
"end_line": 320,
|
|
"tags": {},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 306
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @LAYER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 306
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @SEMANTICS (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 306
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 306
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 306
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @LAYER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 306
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @SEMANTICS (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 306
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 306
|
|
}
|
|
],
|
|
"score": 0.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
},
|
|
"data_flow": [
|
|
{
|
|
"store": "lib",
|
|
"type": "READS_FROM",
|
|
"line": 25
|
|
},
|
|
{
|
|
"store": "lib",
|
|
"type": "READS_FROM",
|
|
"line": 26
|
|
},
|
|
{
|
|
"store": "selectedTask",
|
|
"type": "READS_FROM",
|
|
"line": 176
|
|
},
|
|
{
|
|
"store": "selectedTask",
|
|
"type": "READS_FROM",
|
|
"line": 176
|
|
},
|
|
{
|
|
"store": "selectedTask",
|
|
"type": "READS_FROM",
|
|
"line": 176
|
|
},
|
|
{
|
|
"store": "selectedTask",
|
|
"type": "WRITES_TO",
|
|
"line": 177
|
|
},
|
|
{
|
|
"store": "selectedTask",
|
|
"type": "READS_FROM",
|
|
"line": 183
|
|
},
|
|
{
|
|
"store": "selectedTask",
|
|
"type": "READS_FROM",
|
|
"line": 183
|
|
},
|
|
{
|
|
"store": "selectedTask",
|
|
"type": "READS_FROM",
|
|
"line": 196
|
|
},
|
|
{
|
|
"store": "selectedTask",
|
|
"type": "READS_FROM",
|
|
"line": 200
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 271
|
|
},
|
|
{
|
|
"store": "selectedTask",
|
|
"type": "READS_FROM",
|
|
"line": 275
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 280
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "MappingManagement",
|
|
"type": "Component",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 177,
|
|
"tags": {
|
|
"SEMANTICS": "mapping, management, database, fuzzy-matching",
|
|
"PURPOSE": "Page for managing database mappings between environments.",
|
|
"LAYER": "Page",
|
|
"RELATION": "USES -> MappingTable",
|
|
"INVARIANT": "Mappings are saved to the backend for persistence."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "fetchEnvironments",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 36,
|
|
"end_line": 49,
|
|
"tags": {
|
|
"PURPOSE": "Fetches the list of environments.",
|
|
"PRE": "None.",
|
|
"POST": "environments array is populated."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 36
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 36
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "fetchDatabases",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 53,
|
|
"end_line": 83,
|
|
"tags": {
|
|
"PURPOSE": "Fetches databases from both environments and gets suggestions.",
|
|
"PRE": "sourceEnvId and targetEnvId must be set.",
|
|
"POST": "sourceDatabases, targetDatabases, mappings, and suggestions are updated."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 53
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 53
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "handleUpdate",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 85,
|
|
"end_line": 114,
|
|
"tags": {
|
|
"PURPOSE": "Saves a mapping to the backend.",
|
|
"PRE": "event.detail contains sourceUuid and targetUuid.",
|
|
"POST": "Mapping is saved and local mappings list is updated."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 85
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 85
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
},
|
|
"data_flow": [
|
|
{
|
|
"store": "lib",
|
|
"type": "READS_FROM",
|
|
"line": 18
|
|
},
|
|
{
|
|
"store": "lib",
|
|
"type": "READS_FROM",
|
|
"line": 19
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "StoragePage",
|
|
"type": "Component",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 222,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"SEMANTICS": "storage, files, management",
|
|
"PURPOSE": "Main page for file storage management.",
|
|
"LAYER": "UI",
|
|
"RELATION": "CONTAINS -> FileUpload",
|
|
"INVARIANT": "Always displays tabs for Backups and Repositories."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "loadFiles",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 25,
|
|
"end_line": 64,
|
|
"tags": {
|
|
"PURPOSE": "Fetches the list of files from the server.",
|
|
"PRE": "The activeTab is set to a valid category.",
|
|
"POST": "Updates the `files` array with the latest data."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 25
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 25
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "handleDelete",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 66,
|
|
"end_line": 88,
|
|
"tags": {
|
|
"PURPOSE": "Handles the file deletion process.",
|
|
"PRE": "The event contains valid category and path.",
|
|
"POST": "File is deleted and file list is refreshed.",
|
|
"PARAM": "{CustomEvent} event - The delete event containing category and path."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 66
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 66
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "handleNavigate",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 90,
|
|
"end_line": 102,
|
|
"tags": {
|
|
"PURPOSE": "Updates the current path and reloads files when navigating into a directory.",
|
|
"PRE": "The event contains a valid path string.",
|
|
"POST": "currentPath is updated and files are reloaded.",
|
|
"PARAM": "{CustomEvent} event - The navigation event containing the new path."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 90
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 90
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "navigateUp",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 104,
|
|
"end_line": 117,
|
|
"tags": {
|
|
"PURPOSE": "Navigates one level up in the directory structure.",
|
|
"PRE": "currentPath is set and deeper than activeTab root.",
|
|
"POST": "currentPath is moved up one directory level."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 104
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 104
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
},
|
|
"data_flow": [
|
|
{
|
|
"store": "app",
|
|
"type": "READS_FROM",
|
|
"line": 17
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 59
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 76
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 81
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 85
|
|
},
|
|
{
|
|
"store": "page",
|
|
"type": "WRITES_TO",
|
|
"line": 120
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 144
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 147
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 167
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 167
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 181
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 187
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "MapperPage",
|
|
"type": "Component",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 1,
|
|
"end_line": 26,
|
|
"tags": {
|
|
"TIER": "TRIVIAL",
|
|
"SEMANTICS": "mapper, page, tool",
|
|
"PURPOSE": "Page for the dataset column mapper tool.",
|
|
"LAYER": "UI"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
},
|
|
"data_flow": [
|
|
{
|
|
"store": "lib",
|
|
"type": "READS_FROM",
|
|
"line": 11
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "DebugPage",
|
|
"type": "Component",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 1,
|
|
"end_line": 26,
|
|
"tags": {
|
|
"TIER": "TRIVIAL",
|
|
"SEMANTICS": "debug, page, tool",
|
|
"PURPOSE": "Page for system diagnostics and debugging.",
|
|
"LAYER": "UI"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
},
|
|
"data_flow": [
|
|
{
|
|
"store": "lib",
|
|
"type": "READS_FROM",
|
|
"line": 11
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "SettingsPage",
|
|
"type": "Page",
|
|
"tier": "CRITICAL",
|
|
"start_line": 1,
|
|
"end_line": 715,
|
|
"tags": {
|
|
"TIER": "CRITICAL",
|
|
"PURPOSE": "Consolidated Settings Page - All settings in one place with tabbed navigation",
|
|
"LAYER": "UI",
|
|
"RELATION": "BINDS_TO -> sidebarStore",
|
|
"INVARIANT": "Always shows tabbed interface with all settings categories",
|
|
"UX_STATE": "Error -> Shows error banner with retry button",
|
|
"UX_FEEDBACK": "Toast notifications on save success/failure",
|
|
"UX_RECOVERY": "Refresh button reloads settings data"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "+page",
|
|
"type": "Module",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 1,
|
|
"end_line": 715,
|
|
"tags": {
|
|
"PURPOSE": "Auto-generated module for frontend/src/routes/settings/+page.svelte",
|
|
"TIER": "TRIVIAL",
|
|
"LAYER": "Unknown"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "loadSettings",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 51,
|
|
"end_line": 51,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "handleTabChange",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 66,
|
|
"end_line": 66,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "getTabClass",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 71,
|
|
"end_line": 71,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "handleSave",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 78,
|
|
"end_line": 78,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "handleTestEnv",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 93,
|
|
"end_line": 93,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "editEnv",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 112,
|
|
"end_line": 112,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "resetEnvForm",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 123,
|
|
"end_line": 123,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "handleAddOrUpdateEnv",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 139,
|
|
"end_line": 139,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "handleDeleteEnv",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 172,
|
|
"end_line": 172,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "load",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 3,
|
|
"end_line": 34,
|
|
"tags": {
|
|
"PURPOSE": "Loads application settings and environment list.",
|
|
"PRE": "API must be reachable.",
|
|
"POST": "Returns settings object or default values on error.",
|
|
"TYPE": "{import('./$types').PageLoad} */"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 3
|
|
}
|
|
],
|
|
"score": 0.9
|
|
}
|
|
},
|
|
{
|
|
"name": "ConnectionsSettingsPage",
|
|
"type": "Component",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 40,
|
|
"tags": {
|
|
"SEMANTICS": "settings, connections, page",
|
|
"PURPOSE": "Page for managing database connection configurations.",
|
|
"LAYER": "UI"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "handleSuccess",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 13,
|
|
"end_line": 23,
|
|
"tags": {
|
|
"PURPOSE": "Refreshes the connection list after a successful creation.",
|
|
"PRE": "listComponent must be bound.",
|
|
"POST": "Triggers the fetchConnections method on the list component."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 13
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 13
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
}
|
|
},
|
|
{
|
|
"name": "GitSettingsPage",
|
|
"type": "Component",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 179,
|
|
"tags": {
|
|
"SEMANTICS": "git, settings, configuration, integration",
|
|
"PURPOSE": "Manage Git server configurations for dashboard versioning.",
|
|
"LAYER": "Page",
|
|
"RELATION": "USES -> Button, Input, Card, PageHeader, Select",
|
|
"INVARIANT": "All configurations must be validated via connection test."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "loadConfigs",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 33,
|
|
"end_line": 46,
|
|
"tags": {
|
|
"PURPOSE": "Fetches existing git configurations.",
|
|
"PRE": "Component is mounted.",
|
|
"POST": "configs state is populated."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 33
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 33
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "handleTest",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 50,
|
|
"end_line": 71,
|
|
"tags": {
|
|
"PURPOSE": "Tests connection to a git server with current form data.",
|
|
"PRE": "newConfig contains valid provider, url, and pat.",
|
|
"POST": "testing state is managed; toast shown with result."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 50
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 50
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "handleSave",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 73,
|
|
"end_line": 89,
|
|
"tags": {
|
|
"PURPOSE": "Saves a new git configuration.",
|
|
"PRE": "newConfig is valid and tested.",
|
|
"POST": "New config is saved to DB and added to configs list."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 73
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 73
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "handleDelete",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 91,
|
|
"end_line": 108,
|
|
"tags": {
|
|
"PURPOSE": "Deletes a git configuration by ID.",
|
|
"PARAM": "{string} id - Configuration ID.",
|
|
"PRE": "id is valid; user confirmed deletion.",
|
|
"POST": "Configuration is removed from DB and local state."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 91
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 91
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
},
|
|
"data_flow": [
|
|
{
|
|
"store": "lib",
|
|
"type": "READS_FROM",
|
|
"line": 17
|
|
},
|
|
{
|
|
"store": "lib",
|
|
"type": "READS_FROM",
|
|
"line": 18
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "GitDashboardPage",
|
|
"type": "Component",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 93,
|
|
"tags": {
|
|
"PURPOSE": "Dashboard management page for Git integration.",
|
|
"LAYER": "Page",
|
|
"SEMANTICS": "git, dashboard, management, ui"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "fetchEnvironments",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 22,
|
|
"end_line": 38,
|
|
"tags": {
|
|
"PURPOSE": "Fetches the list of deployment environments from the API.",
|
|
"PRE": "Component is mounted.",
|
|
"POST": "`environments` array is populated with data from /api/environments."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 22
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 22
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "fetchDashboards",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 40,
|
|
"end_line": 56,
|
|
"tags": {
|
|
"PURPOSE": "Fetches dashboards for a specific environment.",
|
|
"PRE": "`envId` is a valid environment ID.",
|
|
"POST": "`dashboards` array is updated with results from the environment."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 40
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 40
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
},
|
|
"data_flow": [
|
|
{
|
|
"store": "lib",
|
|
"type": "READS_FROM",
|
|
"line": 13
|
|
},
|
|
{
|
|
"store": "lib",
|
|
"type": "READS_FROM",
|
|
"line": 14
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Dashboard",
|
|
"type": "Component",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 64,
|
|
"tags": {
|
|
"SEMANTICS": "dashboard, plugins, tools, list",
|
|
"PURPOSE": "Displays the list of available plugins and allows selecting one.",
|
|
"LAYER": "UI",
|
|
"RELATION": "DEPENDS_ON -> frontend/src/lib/stores.js",
|
|
"PROPS": "None",
|
|
"EVENTS": "None"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "onMount",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 17,
|
|
"end_line": 27,
|
|
"tags": {
|
|
"PURPOSE": "Fetch plugins when the component mounts.",
|
|
"PRE": "Component is mounting.",
|
|
"POST": "plugins store is populated with available tools."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "selectPlugin",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 29,
|
|
"end_line": 40,
|
|
"tags": {
|
|
"PURPOSE": "Selects a plugin to display its form.",
|
|
"PRE": "plugin object is provided.",
|
|
"POST": "selectedPlugin store is updated.",
|
|
"PARAM": "{Object} plugin - The plugin object to select."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 29
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 29
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
},
|
|
"data_flow": [
|
|
{
|
|
"store": "plugins",
|
|
"type": "READS_FROM",
|
|
"line": 47
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Settings",
|
|
"type": "Component",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 340,
|
|
"tags": {
|
|
"SEMANTICS": "settings, ui, configuration",
|
|
"PURPOSE": "The main settings page for the application, allowing management of environments and global settings.",
|
|
"LAYER": "UI",
|
|
"RELATION": "USES -> stores.js",
|
|
"PROPS": "None",
|
|
"EVENTS": "None",
|
|
"INVARIANT": "Settings changes must be saved to the backend."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "loadSettings",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 49,
|
|
"end_line": 66,
|
|
"tags": {
|
|
"PURPOSE": "Loads settings from the backend.",
|
|
"PRE": "Component mounted or refresh requested.",
|
|
"POST": "settings object is populated with backend data."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 49
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 49
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "handleSaveGlobal",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 68,
|
|
"end_line": 85,
|
|
"tags": {
|
|
"PURPOSE": "Saves global settings to the backend.",
|
|
"PRE": "settings.settings contains valid configuration.",
|
|
"POST": "Backend global settings are updated."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 68
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 68
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "handleAddOrUpdateEnv",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 87,
|
|
"end_line": 111,
|
|
"tags": {
|
|
"PURPOSE": "Adds or updates an environment.",
|
|
"PRE": "newEnv contains valid environment details.",
|
|
"POST": "Environment list is updated on backend and reloaded locally."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 87
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 87
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "handleDeleteEnv",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 113,
|
|
"end_line": 134,
|
|
"tags": {
|
|
"PURPOSE": "Deletes an environment.",
|
|
"PRE": "id of environment to delete is provided.",
|
|
"POST": "Environment is removed from backend and list is reloaded.",
|
|
"PARAM": "{string} id - The ID of the environment to delete."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 113
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 113
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "handleTestEnv",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 136,
|
|
"end_line": 159,
|
|
"tags": {
|
|
"PURPOSE": "Tests the connection to an environment.",
|
|
"PRE": "Environment ID is valid.",
|
|
"POST": "Connection test result is displayed via toast.",
|
|
"PARAM": "{string} id - The ID of the environment to test."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 136
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 136
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "editEnv",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 161,
|
|
"end_line": 172,
|
|
"tags": {
|
|
"PURPOSE": "Sets the form to edit an existing environment.",
|
|
"PRE": "env object is provided.",
|
|
"POST": "newEnv is populated with env data and editingEnvId is set.",
|
|
"PARAM": "{Object} env - The environment object to edit."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 161
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 161
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "resetEnvForm",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 174,
|
|
"end_line": 195,
|
|
"tags": {
|
|
"PURPOSE": "Resets the environment form.",
|
|
"PRE": "None.",
|
|
"POST": "newEnv is reset to initial state and editingEnvId is cleared."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 174
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 174
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
}
|
|
},
|
|
{
|
|
"name": "getConnections",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 9,
|
|
"end_line": 21,
|
|
"tags": {
|
|
"PURPOSE": "Fetch a list of saved connections.",
|
|
"PRE": "None.",
|
|
"POST": "Returns a promise resolving to an array of connections.",
|
|
"RETURNS": "{Promise<Array>} List of connections."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 9
|
|
}
|
|
],
|
|
"score": 0.9
|
|
}
|
|
},
|
|
{
|
|
"name": "createConnection",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 23,
|
|
"end_line": 36,
|
|
"tags": {
|
|
"PURPOSE": "Create a new connection configuration.",
|
|
"PRE": "connectionData must be a valid object.",
|
|
"POST": "Returns a promise resolving to the created connection.",
|
|
"PARAM": "{Object} connectionData - The connection data.",
|
|
"RETURNS": "{Promise<Object>} The created connection instance."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 23
|
|
}
|
|
],
|
|
"score": 0.9
|
|
}
|
|
},
|
|
{
|
|
"name": "deleteConnection",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 38,
|
|
"end_line": 50,
|
|
"tags": {
|
|
"PURPOSE": "Delete a connection configuration.",
|
|
"PRE": "connectionId must be a valid string.",
|
|
"POST": "Returns a promise that resolves when deletion is complete.",
|
|
"PARAM": "{string} connectionId - The ID of the connection to delete."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 38
|
|
}
|
|
],
|
|
"score": 0.9
|
|
}
|
|
},
|
|
{
|
|
"name": "GitServiceClient",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 259,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"SEMANTICS": "git, service, api, client",
|
|
"PURPOSE": "API client for Git operations, managing the communication between frontend and backend.",
|
|
"LAYER": "Service",
|
|
"RELATION": "DEPENDS_ON -> specs/011-git-integration-dashboard/contracts/api.md"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "gitService",
|
|
"type": "Action",
|
|
"tier": "STANDARD",
|
|
"start_line": 14,
|
|
"end_line": 257,
|
|
"tags": {
|
|
"PURPOSE": "Retrieves the diff for specific files or the whole repository.",
|
|
"PRE": "dashboardId must be a valid integer.",
|
|
"POST": "Returns the Git diff string.",
|
|
"RETURNS": "{Promise<string>} The diff content.",
|
|
"PARAM": "{boolean} staged - Whether to show staged changes."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "runTask",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 9,
|
|
"end_line": 23,
|
|
"tags": {
|
|
"PURPOSE": "Start a new task for a given plugin.",
|
|
"PRE": "pluginId and params must be provided.",
|
|
"POST": "Returns a promise resolving to the task instance.",
|
|
"PARAM": "{Object} params - Parameters for the plugin.",
|
|
"RETURNS": "{Promise<Object>} The created task instance."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 9
|
|
}
|
|
],
|
|
"score": 0.9
|
|
}
|
|
},
|
|
{
|
|
"name": "getTaskStatus",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 25,
|
|
"end_line": 38,
|
|
"tags": {
|
|
"PURPOSE": "Fetch details for a specific task (to poll status or get result).",
|
|
"PRE": "taskId must be provided.",
|
|
"POST": "Returns a promise resolving to task details.",
|
|
"PARAM": "{string} taskId - The ID of the task.",
|
|
"RETURNS": "{Promise<Object>} Task details."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 25
|
|
}
|
|
],
|
|
"score": 0.9
|
|
}
|
|
},
|
|
{
|
|
"name": "adminService",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 294,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"SEMANTICS": "admin, users, roles, ad-mappings, api",
|
|
"PURPOSE": "Service for Admin-related API calls (User and Role management).",
|
|
"LAYER": "Service",
|
|
"INVARIANT": "All requests must include valid Admin JWT token (handled by api client)."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "frontend.src.lib.api"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "getUsers",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 15,
|
|
"end_line": 34,
|
|
"tags": {
|
|
"PURPOSE": "Fetches all registered users from the backend.",
|
|
"PRE": "User must be authenticated with Admin privileges.",
|
|
"POST": "Returns an array of user objects.",
|
|
"RETURNS": "{Promise<Array>}",
|
|
"RELATION": "CALLS -> backend.src.api.routes.admin.list_users"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "createUser",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 36,
|
|
"end_line": 56,
|
|
"tags": {
|
|
"PURPOSE": "Creates a new local user.",
|
|
"PRE": "User must be authenticated with Admin privileges.",
|
|
"PARAM": "{Object} userData - User details (username, email, password, roles, is_active).",
|
|
"POST": "New user record created in auth.db.",
|
|
"RETURNS": "{Promise<Object>}",
|
|
"RELATION": "CALLS -> backend.src.api.routes.admin.create_user"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "getRoles",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 58,
|
|
"end_line": 77,
|
|
"tags": {
|
|
"PURPOSE": "Fetches all available system roles.",
|
|
"PRE": "User must be authenticated with Admin privileges.",
|
|
"POST": "Returns an array of role objects.",
|
|
"RETURNS": "{Promise<Array>}",
|
|
"RELATION": "CALLS -> backend.src.api.routes.admin.list_roles"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "getADGroupMappings",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 79,
|
|
"end_line": 97,
|
|
"tags": {
|
|
"PURPOSE": "Fetches mappings between AD groups and local roles.",
|
|
"PRE": "User must be authenticated with Admin privileges.",
|
|
"POST": "Returns an array of AD group mapping objects.",
|
|
"RETURNS": "{Promise<Array>}"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "createADGroupMapping",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 99,
|
|
"end_line": 118,
|
|
"tags": {
|
|
"PURPOSE": "Creates or updates an AD group to Role mapping.",
|
|
"PRE": "User must be authenticated with Admin privileges.",
|
|
"POST": "New or updated mapping created in auth.db.",
|
|
"PARAM": "{Object} mappingData - Mapping details (ad_group, role_id).",
|
|
"RETURNS": "{Promise<Object>}"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "updateUser",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 120,
|
|
"end_line": 140,
|
|
"tags": {
|
|
"PURPOSE": "Updates an existing user.",
|
|
"PRE": "User must be authenticated with Admin privileges.",
|
|
"POST": "User record updated in auth.db.",
|
|
"PARAM": "{Object} userData - Updated user data.",
|
|
"RETURNS": "{Promise<Object>}"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "deleteUser",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 142,
|
|
"end_line": 160,
|
|
"tags": {
|
|
"PURPOSE": "Deletes a user.",
|
|
"PRE": "User must be authenticated with Admin privileges.",
|
|
"POST": "User record removed from auth.db.",
|
|
"PARAM": "{string} userId - Target user ID.",
|
|
"RETURNS": "{Promise<void>}"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "createRole",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 162,
|
|
"end_line": 181,
|
|
"tags": {
|
|
"PURPOSE": "Creates a new role.",
|
|
"PRE": "User must be authenticated with Admin privileges.",
|
|
"POST": "New role created in auth.db.",
|
|
"PARAM": "{Object} roleData - Role details (name, description, permissions).",
|
|
"RETURNS": "{Promise<Object>}"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "updateRole",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 183,
|
|
"end_line": 201,
|
|
"tags": {
|
|
"PURPOSE": "Updates an existing role.",
|
|
"PARAM": "{Object} roleData - Updated role data.",
|
|
"RETURNS": "{Promise<Object>}"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 183
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 183
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 183
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 183
|
|
}
|
|
],
|
|
"score": 0.4666666666666666
|
|
}
|
|
},
|
|
{
|
|
"name": "deleteRole",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 203,
|
|
"end_line": 219,
|
|
"tags": {
|
|
"PURPOSE": "Deletes a role.",
|
|
"PARAM": "{string} roleId - Target role ID.",
|
|
"RETURNS": "{Promise<void>}"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 203
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 203
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 203
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 203
|
|
}
|
|
],
|
|
"score": 0.4666666666666666
|
|
}
|
|
},
|
|
{
|
|
"name": "getPermissions",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 221,
|
|
"end_line": 237,
|
|
"tags": {
|
|
"PURPOSE": "Fetches all available permissions.",
|
|
"RETURNS": "{Promise<Array>}"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 221
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 221
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 221
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 221
|
|
}
|
|
],
|
|
"score": 0.4666666666666666
|
|
}
|
|
},
|
|
{
|
|
"name": "getLoggingConfig",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 239,
|
|
"end_line": 256,
|
|
"tags": {
|
|
"PURPOSE": "Fetches current logging configuration.",
|
|
"RETURNS": "{Promise<Object>} - Logging config with level, task_log_level, enable_belief_state.",
|
|
"RELATION": "CALLS -> backend.src.api.routes.settings.get_logging_config"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 239
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 239
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 239
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 239
|
|
}
|
|
],
|
|
"score": 0.4666666666666666
|
|
}
|
|
},
|
|
{
|
|
"name": "updateLoggingConfig",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 258,
|
|
"end_line": 276,
|
|
"tags": {
|
|
"PURPOSE": "Updates logging configuration.",
|
|
"PARAM": "{Object} configData - Logging config (level, task_log_level, enable_belief_state).",
|
|
"RETURNS": "{Promise<Object>}",
|
|
"RELATION": "CALLS -> backend.src.api.routes.settings.update_logging_config"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 258
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 258
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 258
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 258
|
|
}
|
|
],
|
|
"score": 0.4666666666666666
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "getTasks",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 9,
|
|
"end_line": 32,
|
|
"tags": {
|
|
"PURPOSE": "Fetch a list of tasks with pagination and optional status filter.",
|
|
"PRE": "limit and offset are numbers.",
|
|
"POST": "Returns a promise resolving to a list of tasks.",
|
|
"PARAM": "{string|null} status - Filter by task status (optional).",
|
|
"RETURNS": "{Promise<Array>} List of tasks."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 9
|
|
}
|
|
],
|
|
"score": 0.9
|
|
}
|
|
},
|
|
{
|
|
"name": "getTask",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 34,
|
|
"end_line": 47,
|
|
"tags": {
|
|
"PURPOSE": "Fetch details for a specific task.",
|
|
"PRE": "taskId must be provided.",
|
|
"POST": "Returns a promise resolving to task details.",
|
|
"PARAM": "{string} taskId - The ID of the task.",
|
|
"RETURNS": "{Promise<Object>} Task details."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 34
|
|
}
|
|
],
|
|
"score": 0.9
|
|
}
|
|
},
|
|
{
|
|
"name": "getTaskLogs",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 49,
|
|
"end_line": 69,
|
|
"tags": {
|
|
"PURPOSE": "Fetch logs for a specific task.",
|
|
"PRE": "taskId must be provided.",
|
|
"POST": "Returns a promise resolving to a list of log entries.",
|
|
"PARAM": "{string} taskId - The ID of the task.",
|
|
"RETURNS": "{Promise<Array>} List of log entries."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 49
|
|
}
|
|
],
|
|
"score": 0.9
|
|
}
|
|
},
|
|
{
|
|
"name": "resumeTask",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 71,
|
|
"end_line": 85,
|
|
"tags": {
|
|
"PURPOSE": "Resume a task that is awaiting input (e.g., passwords).",
|
|
"PRE": "taskId and passwords must be provided.",
|
|
"POST": "Returns a promise resolving to the updated task object.",
|
|
"PARAM": "{Object} passwords - Map of database names to passwords.",
|
|
"RETURNS": "{Promise<Object>} Updated task object."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 71
|
|
}
|
|
],
|
|
"score": 0.9
|
|
}
|
|
},
|
|
{
|
|
"name": "resolveTask",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 87,
|
|
"end_line": 101,
|
|
"tags": {
|
|
"PURPOSE": "Resolve a task that is awaiting mapping.",
|
|
"PRE": "taskId and resolutionParams must be provided.",
|
|
"POST": "Returns a promise resolving to the updated task object.",
|
|
"PARAM": "{Object} resolutionParams - Resolution parameters.",
|
|
"RETURNS": "{Promise<Object>} Updated task object."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 87
|
|
}
|
|
],
|
|
"score": 0.9
|
|
}
|
|
},
|
|
{
|
|
"name": "clearTasks",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 103,
|
|
"end_line": 120,
|
|
"tags": {
|
|
"PURPOSE": "Clear tasks based on status.",
|
|
"PRE": "status is a string or null.",
|
|
"POST": "Returns a promise that resolves when tasks are cleared.",
|
|
"PARAM": "{string|null} status - Filter by task status (optional)."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 103
|
|
}
|
|
],
|
|
"score": 0.9
|
|
}
|
|
},
|
|
{
|
|
"name": "storageService",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 135,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"PURPOSE": "Frontend API client for file storage management.",
|
|
"LAYER": "Service",
|
|
"RELATION": "DEPENDS_ON -> backend.api.storage",
|
|
"SEMANTICS": "storage, api, client"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "getStorageAuthHeaders",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 12,
|
|
"end_line": 29,
|
|
"tags": {
|
|
"PURPOSE": "Returns headers with Authorization for storage API calls.",
|
|
"RETURNS": "{Object} Headers object with Authorization if token exists.",
|
|
"NOTE": "Unlike api.js getAuthHeaders, this doesn't set Content-Type"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 12
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 12
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 12
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 12
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 12
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 12
|
|
}
|
|
],
|
|
"score": 0.26666666666666655
|
|
}
|
|
},
|
|
{
|
|
"name": "listFiles",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 31,
|
|
"end_line": 56,
|
|
"tags": {
|
|
"PURPOSE": "Fetches the list of files for a given category and subpath.",
|
|
"PARAM": "{string} [path] - Optional subpath filter.",
|
|
"RETURNS": "{Promise<Array>}",
|
|
"PRE": "category and path should be valid strings if provided.",
|
|
"POST": "Returns a promise resolving to an array of StoredFile objects."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 31
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 31
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "uploadFile",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 58,
|
|
"end_line": 88,
|
|
"tags": {
|
|
"PURPOSE": "Uploads a file to the storage system.",
|
|
"PARAM": "{string} [path] - Target subpath.",
|
|
"RETURNS": "{Promise<Object>}",
|
|
"PRE": "file must be a valid File object; category must be specified.",
|
|
"POST": "Returns a promise resolving to the metadata of the uploaded file."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 58
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 58
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "deleteFile",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 90,
|
|
"end_line": 110,
|
|
"tags": {
|
|
"PURPOSE": "Deletes a file or directory from storage.",
|
|
"PARAM": "{string} path - Relative path of the item.",
|
|
"RETURNS": "{Promise<void>}",
|
|
"PRE": "category and path must identify an existing file or directory.",
|
|
"POST": "The specified file or directory is removed from storage."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 90
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 90
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "downloadFileUrl",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 112,
|
|
"end_line": 126,
|
|
"tags": {
|
|
"PURPOSE": "Returns the URL for downloading a file.",
|
|
"PARAM": "{string} path - Relative path of the file.",
|
|
"RETURNS": "{string}",
|
|
"PRE": "category and path must identify an existing file.",
|
|
"POST": "Returns a valid API URL for file download.",
|
|
"NOTE": "Downloads use browser navigation, so auth is handled via cookies"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 112
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 112
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "PasswordPrompt",
|
|
"type": "Component",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 179,
|
|
"tags": {
|
|
"SEMANTICS": "password, prompt, modal, input, security",
|
|
"PURPOSE": "A modal component to prompt the user for database passwords when a migration task is paused.",
|
|
"LAYER": "UI",
|
|
"RELATION": "EMITS -> resume, cancel"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "handleSubmit",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 19,
|
|
"end_line": 37,
|
|
"tags": {
|
|
"PURPOSE": "Validates and dispatches the passwords to resume the task.",
|
|
"PRE": "All database passwords must be entered.",
|
|
"POST": "'resume' event is dispatched with passwords."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 19
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 19
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "handleCancel",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 39,
|
|
"end_line": 47,
|
|
"tags": {
|
|
"PURPOSE": "Cancels the password prompt.",
|
|
"PRE": "Modal is open.",
|
|
"POST": "'cancel' event is dispatched and show is set to false."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 39
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 39
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
},
|
|
"events": [
|
|
"cancel",
|
|
"resume"
|
|
],
|
|
"data_flow": [
|
|
{
|
|
"store": "props",
|
|
"type": "WRITES_TO",
|
|
"line": 12
|
|
},
|
|
{
|
|
"store": "state",
|
|
"type": "WRITES_TO",
|
|
"line": 16
|
|
},
|
|
{
|
|
"store": "state",
|
|
"type": "WRITES_TO",
|
|
"line": 17
|
|
},
|
|
{
|
|
"store": "effect",
|
|
"type": "READS_FROM",
|
|
"line": 50
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "MappingTable",
|
|
"type": "Component",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 107,
|
|
"tags": {
|
|
"SEMANTICS": "mapping, table, database, editor",
|
|
"PURPOSE": "Displays and allows editing of database mappings.",
|
|
"LAYER": "Feature",
|
|
"RELATION": "BINDS_TO -> mappings state",
|
|
"INVARIANT": "Each source database can be mapped to one target database."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "updateMapping",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 28,
|
|
"end_line": 46,
|
|
"tags": {
|
|
"PURPOSE": "Updates a mapping for a specific source database.",
|
|
"PRE": "sourceUuid and targetUuid are provided.",
|
|
"POST": "'update' event is dispatched."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 28
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 28
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "getSuggestion",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 48,
|
|
"end_line": 57,
|
|
"tags": {
|
|
"PURPOSE": "Finds a suggestion for a source database.",
|
|
"PRE": "sourceUuid is provided.",
|
|
"POST": "Returns matching suggestion object or undefined."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 48
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 48
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
},
|
|
"events": [
|
|
"update"
|
|
],
|
|
"data_flow": [
|
|
{
|
|
"store": "props",
|
|
"type": "WRITES_TO",
|
|
"line": 22
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "TaskLogViewer",
|
|
"type": "Component",
|
|
"tier": "CRITICAL",
|
|
"start_line": 1,
|
|
"end_line": 203,
|
|
"tags": {
|
|
"TIER": "CRITICAL",
|
|
"SEMANTICS": "task, log, viewer, inline, realtime",
|
|
"PURPOSE": "Displays detailed logs for a specific task inline or in a modal using TaskLogPanel.",
|
|
"LAYER": "UI",
|
|
"RELATION": "USES -> frontend/src/components/tasks/TaskLogPanel.svelte",
|
|
"INVARIANT": "Real-time logs are always appended without duplicates."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "handleRealTimeLogs",
|
|
"type": "Action",
|
|
"tier": "STANDARD",
|
|
"start_line": 44,
|
|
"end_line": 58,
|
|
"tags": {},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "fetchLogs",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 60,
|
|
"end_line": 71,
|
|
"tags": {},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 60
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 60
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 60
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 60
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 60
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 60
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 60
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 60
|
|
}
|
|
],
|
|
"score": 0.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
},
|
|
"events": [
|
|
"close"
|
|
],
|
|
"data_flow": [
|
|
{
|
|
"store": "bindable",
|
|
"type": "WRITES_TO",
|
|
"line": 27
|
|
},
|
|
{
|
|
"store": "props",
|
|
"type": "WRITES_TO",
|
|
"line": 32
|
|
},
|
|
{
|
|
"store": "state",
|
|
"type": "WRITES_TO",
|
|
"line": 36
|
|
},
|
|
{
|
|
"store": "state",
|
|
"type": "WRITES_TO",
|
|
"line": 37
|
|
},
|
|
{
|
|
"store": "state",
|
|
"type": "WRITES_TO",
|
|
"line": 38
|
|
},
|
|
{
|
|
"store": "state",
|
|
"type": "WRITES_TO",
|
|
"line": 40
|
|
},
|
|
{
|
|
"store": "derived",
|
|
"type": "WRITES_TO",
|
|
"line": 42
|
|
},
|
|
{
|
|
"store": "effect",
|
|
"type": "READS_FROM",
|
|
"line": 45
|
|
},
|
|
{
|
|
"store": "effect",
|
|
"type": "READS_FROM",
|
|
"line": 81
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 116
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 169
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 183
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "TaskLogViewer",
|
|
"type": "Module",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 1,
|
|
"end_line": 203,
|
|
"tags": {
|
|
"PURPOSE": "Auto-generated module for frontend/src/components/TaskLogViewer.svelte",
|
|
"TIER": "TRIVIAL",
|
|
"LAYER": "Unknown"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "handleFilterChange",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 73,
|
|
"end_line": 73,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "handleRefresh",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 77,
|
|
"end_line": 77,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "Footer",
|
|
"type": "Component",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 1,
|
|
"end_line": 11,
|
|
"tags": {
|
|
"TIER": "TRIVIAL",
|
|
"SEMANTICS": "footer, layout, copyright",
|
|
"PURPOSE": "Displays the application footer with copyright information.",
|
|
"LAYER": "UI"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "MissingMappingModal",
|
|
"type": "Component",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 118,
|
|
"tags": {
|
|
"SEMANTICS": "modal, mapping, prompt, migration",
|
|
"PURPOSE": "Prompts the user to provide a database mapping when one is missing during migration.",
|
|
"LAYER": "Feature",
|
|
"RELATION": "DISPATCHES -> resolve",
|
|
"INVARIANT": "Modal blocks migration progress until resolved or cancelled."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "resolve",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 29,
|
|
"end_line": 42,
|
|
"tags": {
|
|
"PURPOSE": "Dispatches the resolution event with the selected mapping.",
|
|
"PRE": "selectedTargetUuid must be set.",
|
|
"POST": "'resolve' event is dispatched and modal is hidden."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 29
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 29
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "cancel",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 44,
|
|
"end_line": 52,
|
|
"tags": {
|
|
"PURPOSE": "Cancels the mapping resolution modal.",
|
|
"PRE": "Modal is open.",
|
|
"POST": "'cancel' event is dispatched and modal is hidden."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 44
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 44
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
},
|
|
"events": [
|
|
"cancel",
|
|
"resolve"
|
|
],
|
|
"data_flow": [
|
|
{
|
|
"store": "props",
|
|
"type": "WRITES_TO",
|
|
"line": 22
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "DashboardGrid",
|
|
"type": "Component",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 376,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"SEMANTICS": "dashboard, grid, selection, pagination",
|
|
"PURPOSE": "Displays a grid of dashboards with selection and pagination.",
|
|
"LAYER": "Component",
|
|
"RELATION": "USED_BY -> frontend/src/routes/migration/+page.svelte",
|
|
"INVARIANT": "Selected IDs must be a subset of available dashboards."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "handleValidate",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 43,
|
|
"end_line": 89,
|
|
"tags": {
|
|
"PURPOSE": "Triggers dashboard validation task."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 43
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 43
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 43
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 43
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 43
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 43
|
|
}
|
|
],
|
|
"score": 0.26666666666666655
|
|
}
|
|
},
|
|
{
|
|
"name": "handleSort",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 134,
|
|
"end_line": 146,
|
|
"tags": {
|
|
"PURPOSE": "Toggles sort direction or changes sort column.",
|
|
"PRE": "column name is provided.",
|
|
"POST": "sortColumn and sortDirection state updated."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 134
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 134
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "handleSelectionChange",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 148,
|
|
"end_line": 162,
|
|
"tags": {
|
|
"PURPOSE": "Handles individual checkbox changes.",
|
|
"PRE": "dashboard ID and checked status provided.",
|
|
"POST": "selectedIds array updated and selectionChanged event dispatched."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 148
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 148
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "handleSelectAll",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 164,
|
|
"end_line": 182,
|
|
"tags": {
|
|
"PURPOSE": "Handles select all checkbox.",
|
|
"PRE": "checked status provided.",
|
|
"POST": "selectedIds array updated for all paginated items and event dispatched."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 164
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 164
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "goToPage",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 184,
|
|
"end_line": 193,
|
|
"tags": {
|
|
"PURPOSE": "Changes current page.",
|
|
"PRE": "page index is provided.",
|
|
"POST": "currentPage state updated if within valid range."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 184
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 184
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "openGit",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 195,
|
|
"end_line": 204,
|
|
"tags": {
|
|
"PURPOSE": "Opens the Git management modal for a dashboard."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 195
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 195
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 195
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 195
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 195
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 195
|
|
}
|
|
],
|
|
"score": 0.26666666666666655
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
},
|
|
"events": [
|
|
"selectionChanged"
|
|
],
|
|
"data_flow": [
|
|
{
|
|
"store": "props",
|
|
"type": "WRITES_TO",
|
|
"line": 24
|
|
},
|
|
{
|
|
"store": "derived",
|
|
"type": "WRITES_TO",
|
|
"line": 92
|
|
},
|
|
{
|
|
"store": "derived",
|
|
"type": "WRITES_TO",
|
|
"line": 98
|
|
},
|
|
{
|
|
"store": "derived",
|
|
"type": "WRITES_TO",
|
|
"line": 112
|
|
},
|
|
{
|
|
"store": "derived",
|
|
"type": "WRITES_TO",
|
|
"line": 119
|
|
},
|
|
{
|
|
"store": "derived",
|
|
"type": "WRITES_TO",
|
|
"line": 121
|
|
},
|
|
{
|
|
"store": "derived",
|
|
"type": "WRITES_TO",
|
|
"line": 125
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 211
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 233
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 244
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 255
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 264
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 268
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 322
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 334
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 352
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 360
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Navbar",
|
|
"type": "Component",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 81,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"SEMANTICS": "navbar, navigation, header, layout",
|
|
"PURPOSE": "Main navigation bar for the application.",
|
|
"LAYER": "UI",
|
|
"RELATION": "USES -> $app/stores"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
},
|
|
"data_flow": [
|
|
{
|
|
"store": "app",
|
|
"type": "READS_FROM",
|
|
"line": 7
|
|
},
|
|
{
|
|
"store": "app",
|
|
"type": "READS_FROM",
|
|
"line": 10
|
|
},
|
|
{
|
|
"store": "lib",
|
|
"type": "READS_FROM",
|
|
"line": 11
|
|
},
|
|
{
|
|
"store": "lib",
|
|
"type": "READS_FROM",
|
|
"line": 12
|
|
},
|
|
{
|
|
"store": "lib",
|
|
"type": "READS_FROM",
|
|
"line": 13
|
|
},
|
|
{
|
|
"store": "app",
|
|
"type": "READS_FROM",
|
|
"line": 14
|
|
},
|
|
{
|
|
"store": "page",
|
|
"type": "WRITES_TO",
|
|
"line": 32
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 34
|
|
},
|
|
{
|
|
"store": "page",
|
|
"type": "WRITES_TO",
|
|
"line": 38
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 40
|
|
},
|
|
{
|
|
"store": "page",
|
|
"type": "WRITES_TO",
|
|
"line": 43
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 44
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 47
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 48
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 49
|
|
},
|
|
{
|
|
"store": "auth",
|
|
"type": "READS_FROM",
|
|
"line": 53
|
|
},
|
|
{
|
|
"store": "auth",
|
|
"type": "READS_FROM",
|
|
"line": 53
|
|
},
|
|
{
|
|
"store": "page",
|
|
"type": "WRITES_TO",
|
|
"line": 55
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 56
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 59
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 60
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 61
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 62
|
|
},
|
|
{
|
|
"store": "auth",
|
|
"type": "READS_FROM",
|
|
"line": 68
|
|
},
|
|
{
|
|
"store": "auth",
|
|
"type": "WRITES_TO",
|
|
"line": 70
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Navbar",
|
|
"type": "Module",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 1,
|
|
"end_line": 81,
|
|
"tags": {
|
|
"PURPOSE": "Auto-generated module for frontend/src/components/Navbar.svelte",
|
|
"TIER": "TRIVIAL",
|
|
"LAYER": "Unknown"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "handleLogout",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 16,
|
|
"end_line": 16,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "TaskHistory",
|
|
"type": "Component",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 199,
|
|
"tags": {
|
|
"SEMANTICS": "task, history, list, status, monitoring",
|
|
"PURPOSE": "Displays a list of recent tasks with their status and allows selecting them for viewing logs.",
|
|
"LAYER": "UI",
|
|
"RELATION": "USES -> frontend/src/lib/api.js (inferred)"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "fetchTasks",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 19,
|
|
"end_line": 47,
|
|
"tags": {
|
|
"PURPOSE": "Fetches the list of recent tasks from the API.",
|
|
"PRE": "None.",
|
|
"POST": "tasks array is updated and selectedTask status synchronized."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 19
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 19
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "clearTasks",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 49,
|
|
"end_line": 65,
|
|
"tags": {
|
|
"PURPOSE": "Clears tasks from the history, optionally filtered by status.",
|
|
"PRE": "User confirms deletion via prompt.",
|
|
"POST": "Tasks are deleted from backend and list is re-fetched."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 49
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 49
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "selectTask",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 67,
|
|
"end_line": 81,
|
|
"tags": {
|
|
"PURPOSE": "Selects a task and fetches its full details.",
|
|
"PRE": "task object is provided.",
|
|
"POST": "selectedTask store is updated with full task details."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 67
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 67
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "getStatusColor",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 83,
|
|
"end_line": 97,
|
|
"tags": {
|
|
"PURPOSE": "Returns the CSS color class for a given task status.",
|
|
"PRE": "status string is provided.",
|
|
"POST": "Returns tailwind color class string."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 83
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 83
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "onMount",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 99,
|
|
"end_line": 107,
|
|
"tags": {
|
|
"PURPOSE": "Initializes the component by fetching tasks and starting polling.",
|
|
"PRE": "Component is mounting.",
|
|
"POST": "Tasks are fetched and 5s polling interval is started."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 99
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 99
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "onDestroy",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 109,
|
|
"end_line": 116,
|
|
"tags": {
|
|
"PURPOSE": "Cleans up the polling interval when the component is destroyed.",
|
|
"PRE": "Component is being destroyed.",
|
|
"POST": "Polling interval is cleared."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 109
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 109
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
},
|
|
"data_flow": [
|
|
{
|
|
"store": "selectedTask",
|
|
"type": "READS_FROM",
|
|
"line": 35
|
|
},
|
|
{
|
|
"store": "selectedTask",
|
|
"type": "WRITES_TO",
|
|
"line": 36
|
|
},
|
|
{
|
|
"store": "selectedTask",
|
|
"type": "WRITES_TO",
|
|
"line": 37
|
|
},
|
|
{
|
|
"store": "selectedTask",
|
|
"type": "WRITES_TO",
|
|
"line": 161
|
|
},
|
|
{
|
|
"store": "selectedTask",
|
|
"type": "WRITES_TO",
|
|
"line": 161
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Toast",
|
|
"type": "Component",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 1,
|
|
"end_line": 32,
|
|
"tags": {
|
|
"TIER": "TRIVIAL",
|
|
"SEMANTICS": "toast, notification, feedback, ui",
|
|
"PURPOSE": "Displays transient notifications (toasts) in the bottom-right corner.",
|
|
"LAYER": "UI",
|
|
"RELATION": "DEPENDS_ON -> frontend/src/lib/toasts.js",
|
|
"PROPS": "None",
|
|
"EVENTS": "None"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
},
|
|
"data_flow": [
|
|
{
|
|
"store": "toasts",
|
|
"type": "READS_FROM",
|
|
"line": 20
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "TaskRunner",
|
|
"type": "Component",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 408,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"SEMANTICS": "task, runner, logs, websocket",
|
|
"PURPOSE": "Connects to a WebSocket to display real-time logs for a running task with filtering support.",
|
|
"LAYER": "UI",
|
|
"RELATION": "DEPENDS_ON -> frontend/src/lib/stores.js, frontend/src/components/tasks/TaskLogPanel.svelte"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "connect",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 40,
|
|
"end_line": 142,
|
|
"tags": {
|
|
"PURPOSE": "Establishes WebSocket connection with exponential backoff and filter parameters.",
|
|
"PRE": "selectedTask must be set in the store.",
|
|
"POST": "WebSocket instance created and listeners attached."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 40
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 40
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "handleFilterChange",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 144,
|
|
"end_line": 168,
|
|
"tags": {
|
|
"PURPOSE": "Handles filter changes and reconnects WebSocket with new parameters.",
|
|
"PRE": "event.detail contains source and level filter values.",
|
|
"POST": "WebSocket reconnected with new filter parameters, logs cleared."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 144
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 144
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "fetchTargetDatabases",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 170,
|
|
"end_line": 191,
|
|
"tags": {
|
|
"PURPOSE": "Fetches available databases from target environment for mapping.",
|
|
"PRE": "selectedTask must have to_env parameter set.",
|
|
"POST": "targetDatabases array populated with available databases."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 170
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 170
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "handleMappingResolve",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 193,
|
|
"end_line": 227,
|
|
"tags": {
|
|
"PURPOSE": "Resolves missing database mapping and continues migration.",
|
|
"PRE": "event.detail contains sourceDbUuid, targetDbUuid, targetDbName.",
|
|
"POST": "Mapping created in backend, task resumed with resolution params."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 193
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 193
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "handlePasswordResume",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 229,
|
|
"end_line": 249,
|
|
"tags": {
|
|
"PURPOSE": "Submits passwords and resumes paused migration task.",
|
|
"PRE": "event.detail contains passwords object.",
|
|
"POST": "Task resumed with passwords, connection status restored to connected."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 229
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 229
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "startDataTimeout",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 251,
|
|
"end_line": 265,
|
|
"tags": {
|
|
"PURPOSE": "Starts timeout timer to detect idle connection.",
|
|
"PRE": "connectionStatus is 'connected'.",
|
|
"POST": "waitingForData set to true after 5 seconds if no data received."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 251
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 251
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "resetDataTimeout",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 267,
|
|
"end_line": 278,
|
|
"tags": {
|
|
"PURPOSE": "Resets data timeout timer when new data arrives.",
|
|
"PRE": "dataTimeout must be set.",
|
|
"POST": "waitingForData reset to false, new timeout started."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 267
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 267
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "onMount",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 280,
|
|
"end_line": 307,
|
|
"tags": {
|
|
"PURPOSE": "Initializes WebSocket connection when component mounts.",
|
|
"PRE": "Component must be mounted in DOM.",
|
|
"POST": "WebSocket connection established, subscription to selectedTask active."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 280
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 280
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "onDestroy",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 309,
|
|
"end_line": 318,
|
|
"tags": {},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 309
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 309
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 309
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 309
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 309
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 309
|
|
}
|
|
],
|
|
"score": 0.1999999999999999
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
},
|
|
"data_flow": [
|
|
{
|
|
"store": "selectedTask",
|
|
"type": "READS_FROM",
|
|
"line": 323
|
|
},
|
|
{
|
|
"store": "selectedTask",
|
|
"type": "WRITES_TO",
|
|
"line": 325
|
|
},
|
|
{
|
|
"store": "selectedTask",
|
|
"type": "WRITES_TO",
|
|
"line": 358
|
|
},
|
|
{
|
|
"store": "selectedTask",
|
|
"type": "WRITES_TO",
|
|
"line": 359
|
|
},
|
|
{
|
|
"store": "selectedTask",
|
|
"type": "WRITES_TO",
|
|
"line": 360
|
|
},
|
|
{
|
|
"store": "selectedTask",
|
|
"type": "WRITES_TO",
|
|
"line": 360
|
|
},
|
|
{
|
|
"store": "selectedTask",
|
|
"type": "WRITES_TO",
|
|
"line": 361
|
|
},
|
|
{
|
|
"store": "selectedTask",
|
|
"type": "WRITES_TO",
|
|
"line": 365
|
|
},
|
|
{
|
|
"store": "selectedTask",
|
|
"type": "WRITES_TO",
|
|
"line": 373
|
|
},
|
|
{
|
|
"store": "taskLogs",
|
|
"type": "WRITES_TO",
|
|
"line": 374
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "TaskList",
|
|
"type": "Component",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 113,
|
|
"tags": {
|
|
"SEMANTICS": "tasks, list, status, history",
|
|
"PURPOSE": "Displays a list of tasks with their status and execution details.",
|
|
"LAYER": "Component",
|
|
"RELATION": "USES -> api.js"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "getStatusColor",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 22,
|
|
"end_line": 37,
|
|
"tags": {
|
|
"PURPOSE": "Returns the CSS color class for a given task status.",
|
|
"PRE": "status string is provided.",
|
|
"POST": "Returns tailwind color class string."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 22
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 22
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "formatTime",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 39,
|
|
"end_line": 51,
|
|
"tags": {
|
|
"PURPOSE": "Formats a date string using date-fns.",
|
|
"PRE": "dateStr is a valid date string or null.",
|
|
"POST": "Returns human-readable relative time string."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 39
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 39
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "handleTaskClick",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 53,
|
|
"end_line": 60,
|
|
"tags": {
|
|
"PURPOSE": "Dispatches a select event when a task is clicked.",
|
|
"PRE": "taskId is provided.",
|
|
"POST": "'select' event is dispatched with task ID."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 53
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 53
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
},
|
|
"events": [
|
|
"select"
|
|
],
|
|
"data_flow": [
|
|
{
|
|
"store": "props",
|
|
"type": "WRITES_TO",
|
|
"line": 17
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 65
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 67
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 101
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "DynamicForm",
|
|
"type": "Component",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 95,
|
|
"tags": {
|
|
"SEMANTICS": "form, schema, dynamic, json-schema",
|
|
"PURPOSE": "Generates a form dynamically based on a JSON schema.",
|
|
"LAYER": "UI",
|
|
"RELATION": "DEPENDS_ON -> svelte:createEventDispatcher",
|
|
"PROPS": "",
|
|
"EVENTS": ""
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "handleSubmit",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 26,
|
|
"end_line": 36,
|
|
"tags": {
|
|
"PURPOSE": "Dispatches the submit event with the form data.",
|
|
"PRE": "formData contains user input.",
|
|
"POST": "'submit' event is dispatched with formData."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "initializeForm",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 38,
|
|
"end_line": 51,
|
|
"tags": {
|
|
"PURPOSE": "Initialize form data with default values from the schema.",
|
|
"PRE": "schema is provided and contains properties.",
|
|
"POST": "formData is initialized with default values or empty strings."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 38
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 38
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
},
|
|
"events": [
|
|
"submit"
|
|
],
|
|
"data_flow": [
|
|
{
|
|
"store": "props",
|
|
"type": "WRITES_TO",
|
|
"line": 20
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "EnvSelector",
|
|
"type": "Component",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 60,
|
|
"tags": {
|
|
"SEMANTICS": "environment, selector, dropdown, migration",
|
|
"PURPOSE": "Provides a UI component for selecting source and target environments.",
|
|
"LAYER": "Feature",
|
|
"RELATION": "BINDS_TO -> environments store",
|
|
"INVARIANT": "Source and target environments must be selectable from the list of configured environments."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "handleSelect",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 27,
|
|
"end_line": 39,
|
|
"tags": {
|
|
"PURPOSE": "Dispatches the selection change event.",
|
|
"PRE": "event.target must be an HTMLSelectElement.",
|
|
"POST": "selectedId is updated and 'change' event is dispatched.",
|
|
"PARAM": "{Event} event - The change event from the select element."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 27
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 27
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
},
|
|
"events": [
|
|
"change"
|
|
],
|
|
"data_flow": [
|
|
{
|
|
"store": "props",
|
|
"type": "WRITES_TO",
|
|
"line": 21
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "ProtectedRoute",
|
|
"type": "Component",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 1,
|
|
"end_line": 51,
|
|
"tags": {
|
|
"TIER": "TRIVIAL",
|
|
"SEMANTICS": "auth, guard, route, protection",
|
|
"PURPOSE": "Wraps content to ensure only authenticated users can access it.",
|
|
"LAYER": "Component",
|
|
"RELATION": "CALLS -> goto",
|
|
"INVARIANT": "Redirects to /login if user is not authenticated."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
},
|
|
"data_flow": [
|
|
{
|
|
"store": "app",
|
|
"type": "READS_FROM",
|
|
"line": 17
|
|
},
|
|
{
|
|
"store": "auth",
|
|
"type": "READS_FROM",
|
|
"line": 25
|
|
},
|
|
{
|
|
"store": "auth",
|
|
"type": "READS_FROM",
|
|
"line": 25
|
|
},
|
|
{
|
|
"store": "auth",
|
|
"type": "READS_FROM",
|
|
"line": 37
|
|
},
|
|
{
|
|
"store": "auth",
|
|
"type": "READS_FROM",
|
|
"line": 43
|
|
},
|
|
{
|
|
"store": "auth",
|
|
"type": "READS_FROM",
|
|
"line": 47
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "TaskLogPanel",
|
|
"type": "Component",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 149,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"SEMANTICS": "task, log, panel, filter, list",
|
|
"PURPOSE": "Combines log filtering and display into a single cohesive dark-themed panel.",
|
|
"LAYER": "UI",
|
|
"RELATION": "USES -> frontend/src/components/tasks/LogEntryRow.svelte",
|
|
"INVARIANT": "Must always display logs in chronological order and respect auto-scroll preference.",
|
|
"UX_STATE": "AutoScroll -> Automatically scrolls to bottom on new logs"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
},
|
|
"events": [
|
|
"filterChange"
|
|
],
|
|
"data_flow": [
|
|
{
|
|
"store": "bindable",
|
|
"type": "WRITES_TO",
|
|
"line": 19
|
|
},
|
|
{
|
|
"store": "props",
|
|
"type": "WRITES_TO",
|
|
"line": 19
|
|
},
|
|
{
|
|
"store": "state",
|
|
"type": "WRITES_TO",
|
|
"line": 23
|
|
},
|
|
{
|
|
"store": "state",
|
|
"type": "WRITES_TO",
|
|
"line": 24
|
|
},
|
|
{
|
|
"store": "state",
|
|
"type": "WRITES_TO",
|
|
"line": 25
|
|
},
|
|
{
|
|
"store": "derived",
|
|
"type": "WRITES_TO",
|
|
"line": 27
|
|
},
|
|
{
|
|
"store": "derived",
|
|
"type": "WRITES_TO",
|
|
"line": 51
|
|
},
|
|
{
|
|
"store": "effect",
|
|
"type": "READS_FROM",
|
|
"line": 75
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "TaskLogPanel",
|
|
"type": "Module",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 1,
|
|
"end_line": 149,
|
|
"tags": {
|
|
"PURPOSE": "Auto-generated module for frontend/src/components/tasks/TaskLogPanel.svelte",
|
|
"TIER": "TRIVIAL",
|
|
"LAYER": "Unknown"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "filterLogs",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 31,
|
|
"end_line": 31,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "handleFilterChange",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 55,
|
|
"end_line": 55,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "scrollToBottom",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 63,
|
|
"end_line": 63,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "toggleAutoScroll",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 69,
|
|
"end_line": 69,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "LogFilterBar",
|
|
"type": "Component",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 143,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"SEMANTICS": "log, filter, ui",
|
|
"PURPOSE": "Compact filter toolbar for logs \u2014 level, source, and text search in a single dense row.",
|
|
"LAYER": "UI",
|
|
"UX_STATE": "Active -> Filters applied, clear button visible"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
},
|
|
"data_flow": [
|
|
{
|
|
"store": "bindable",
|
|
"type": "WRITES_TO",
|
|
"line": 15
|
|
},
|
|
{
|
|
"store": "bindable",
|
|
"type": "WRITES_TO",
|
|
"line": 16
|
|
},
|
|
{
|
|
"store": "bindable",
|
|
"type": "WRITES_TO",
|
|
"line": 17
|
|
},
|
|
{
|
|
"store": "props",
|
|
"type": "WRITES_TO",
|
|
"line": 18
|
|
},
|
|
{
|
|
"store": "derived",
|
|
"type": "WRITES_TO",
|
|
"line": 64
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "LogFilterBar",
|
|
"type": "Module",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 1,
|
|
"end_line": 143,
|
|
"tags": {
|
|
"PURPOSE": "Auto-generated module for frontend/src/components/tasks/LogFilterBar.svelte",
|
|
"TIER": "TRIVIAL",
|
|
"LAYER": "Unknown"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "handleLevelChange",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 30,
|
|
"end_line": 30,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "handleSourceChange",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 39,
|
|
"end_line": 39,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "handleSearchChange",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 48,
|
|
"end_line": 48,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "clearFilters",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 57,
|
|
"end_line": 57,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "LogEntryRow",
|
|
"type": "Component",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 100,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"SEMANTICS": "log, entry, row, ui",
|
|
"PURPOSE": "Renders a single log entry with stacked layout optimized for narrow drawer panels.",
|
|
"LAYER": "UI",
|
|
"UX_STATE": "Idle -> Displays log entry with color-coded level and source badges.",
|
|
"TYPE": "{Object} log - The log entry object */"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "formatTime",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 13,
|
|
"end_line": 25,
|
|
"tags": {
|
|
"PURPOSE": "Format ISO timestamp to HH:MM:SS */"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 13
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 13
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 13
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 13
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 13
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 13
|
|
}
|
|
],
|
|
"score": 0.26666666666666655
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
},
|
|
"data_flow": [
|
|
{
|
|
"store": "props",
|
|
"type": "WRITES_TO",
|
|
"line": 11
|
|
},
|
|
{
|
|
"store": "derived",
|
|
"type": "WRITES_TO",
|
|
"line": 27
|
|
},
|
|
{
|
|
"store": "derived",
|
|
"type": "WRITES_TO",
|
|
"line": 44
|
|
},
|
|
{
|
|
"store": "derived",
|
|
"type": "WRITES_TO",
|
|
"line": 47
|
|
},
|
|
{
|
|
"store": "derived",
|
|
"type": "WRITES_TO",
|
|
"line": 52
|
|
},
|
|
{
|
|
"store": "derived",
|
|
"type": "WRITES_TO",
|
|
"line": 53
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "FileList",
|
|
"type": "Component",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 144,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"SEMANTICS": "storage, files, list, table",
|
|
"PURPOSE": "Displays a table of files with metadata and actions.",
|
|
"LAYER": "UI",
|
|
"RELATION": "DEPENDS_ON -> storageService",
|
|
"PROPS": "files (Array) - List of StoredFile objects.",
|
|
"EVENTS": "delete (filename) - Dispatched when a file is deleted."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "isDirectory",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 26,
|
|
"end_line": 38,
|
|
"tags": {
|
|
"PURPOSE": "Checks if a file object represents a directory.",
|
|
"PRE": "file object has mime_type property.",
|
|
"POST": "Returns boolean.",
|
|
"PARAM": "{Object} file - The file object to check.",
|
|
"RETURN": "{boolean} True if it's a directory, false otherwise."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "formatSize",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 40,
|
|
"end_line": 56,
|
|
"tags": {
|
|
"PURPOSE": "Formats file size in bytes into a human-readable string.",
|
|
"PRE": "bytes is a number.",
|
|
"POST": "Returns formatted string.",
|
|
"PARAM": "{number} bytes - The size in bytes.",
|
|
"RETURN": "{string} Formatted size (e.g., \"1.2 MB\")."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 40
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 40
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "formatDate",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 58,
|
|
"end_line": 70,
|
|
"tags": {
|
|
"PURPOSE": "Formats an ISO date string into a localized readable format.",
|
|
"PRE": "dateStr is a valid date string.",
|
|
"POST": "Returns localized string.",
|
|
"PARAM": "{string} dateStr - The date string to format.",
|
|
"RETURN": "{string} Localized date and time."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
},
|
|
"events": [
|
|
"delete",
|
|
"navigate"
|
|
],
|
|
"data_flow": [
|
|
{
|
|
"store": "props",
|
|
"type": "WRITES_TO",
|
|
"line": 22
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 78
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 79
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 80
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 81
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 82
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 120
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 127
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 134
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "FileUpload",
|
|
"type": "Component",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 135,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"SEMANTICS": "storage, upload, files",
|
|
"PURPOSE": "Provides a form for uploading files to a specific category.",
|
|
"LAYER": "UI",
|
|
"RELATION": "DEPENDS_ON -> storageService",
|
|
"PROPS": "None",
|
|
"EVENTS": "uploaded - Dispatched when a file is successfully uploaded."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "handleUpload",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 21,
|
|
"end_line": 59,
|
|
"tags": {
|
|
"PURPOSE": "Handles the file upload process.",
|
|
"PRE": "A file must be selected in the file input.",
|
|
"POST": "The file is uploaded to the server and a success toast is shown."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 21
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 21
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "handleDrop",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 61,
|
|
"end_line": 75,
|
|
"tags": {
|
|
"PURPOSE": "Handles the file drop event for drag-and-drop.",
|
|
"PARAM": "{DragEvent} event - The drop event."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 61
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 61
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 61
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 61
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 61
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 61
|
|
}
|
|
],
|
|
"score": 0.26666666666666655
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
},
|
|
"events": [
|
|
"uploaded"
|
|
],
|
|
"data_flow": [
|
|
{
|
|
"store": "props",
|
|
"type": "WRITES_TO",
|
|
"line": 32
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 50
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 54
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 80
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 84
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 89
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 90
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 107
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 118
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 120
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 127
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "ConnectionForm",
|
|
"type": "Component",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 95,
|
|
"tags": {
|
|
"SEMANTICS": "connection, form, settings",
|
|
"PURPOSE": "UI component for creating a new database connection configuration.",
|
|
"LAYER": "UI",
|
|
"RELATION": "USES -> frontend/src/services/connectionService.js"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "handleSubmit",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 28,
|
|
"end_line": 52,
|
|
"tags": {
|
|
"PURPOSE": "Submits the connection form to the backend.",
|
|
"PRE": "All required fields (name, host, database, username, password) must be filled.",
|
|
"POST": "A new connection is created via the connection service and a success event is dispatched."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 28
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 28
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "resetForm",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 54,
|
|
"end_line": 67,
|
|
"tags": {
|
|
"PURPOSE": "Resets the connection form fields to their default values.",
|
|
"PRE": "None.",
|
|
"POST": "All form input variables are reset."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 54
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 54
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
},
|
|
"events": [
|
|
"success"
|
|
],
|
|
"data_flow": [
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 71
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 73
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 76
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 77
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 80
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 83
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 84
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 89
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "ConnectionList",
|
|
"type": "Component",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 88,
|
|
"tags": {
|
|
"SEMANTICS": "connection, list, settings",
|
|
"PURPOSE": "UI component for listing and deleting saved database connection configurations.",
|
|
"LAYER": "UI",
|
|
"RELATION": "USES -> frontend/src/services/connectionService.js"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "fetchConnections",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 22,
|
|
"end_line": 36,
|
|
"tags": {
|
|
"PURPOSE": "Fetches the list of connections from the backend.",
|
|
"PRE": "None.",
|
|
"POST": "connections array is populated."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 22
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 22
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "handleDelete",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 38,
|
|
"end_line": 53,
|
|
"tags": {
|
|
"PURPOSE": "Deletes a connection configuration.",
|
|
"PRE": "id is provided and user confirms deletion.",
|
|
"POST": "Connection is deleted from backend and list is reloaded."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 38
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 38
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
},
|
|
"data_flow": [
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 62
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 65
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 67
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 80
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "MapperTool",
|
|
"type": "Component",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 250,
|
|
"tags": {
|
|
"SEMANTICS": "mapper, tool, dataset, postgresql, excel",
|
|
"PURPOSE": "UI component for mapping dataset column verbose names using the MapperPlugin.",
|
|
"LAYER": "UI",
|
|
"RELATION": "USES -> frontend/src/services/connectionService.js"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "fetchData",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 35,
|
|
"end_line": 47,
|
|
"tags": {
|
|
"PURPOSE": "Fetches environments and saved connections.",
|
|
"PRE": "None.",
|
|
"POST": "envs and connections arrays are populated."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 35
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 35
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "handleRunMapper",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 49,
|
|
"end_line": 90,
|
|
"tags": {
|
|
"PURPOSE": "Triggers the MapperPlugin task.",
|
|
"PRE": "selectedEnv and datasetId are set; source-specific fields are valid.",
|
|
"POST": "Mapper task is started and selectedTask is updated."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 49
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 49
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "handleGenerateDocs",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 92,
|
|
"end_line": 127,
|
|
"tags": {
|
|
"PURPOSE": "Triggers the LLM Documentation task.",
|
|
"PRE": "selectedEnv and datasetId are set.",
|
|
"POST": "Documentation task is started."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 92
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 92
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
},
|
|
"data_flow": [
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 44
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 55
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 60
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 65
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 83
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 98
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 144
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 149
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 152
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 159
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 167
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 171
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 175
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 184
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 187
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 195
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 202
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 212
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 237
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 237
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "MapperTool",
|
|
"type": "Module",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 1,
|
|
"end_line": 250,
|
|
"tags": {
|
|
"PURPOSE": "Auto-generated module for frontend/src/components/tools/MapperTool.svelte",
|
|
"TIER": "TRIVIAL",
|
|
"LAYER": "Unknown"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "handleApplyDoc",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 129,
|
|
"end_line": 129,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "DebugTool",
|
|
"type": "Component",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 190,
|
|
"tags": {
|
|
"SEMANTICS": "debug, tool, api, structure",
|
|
"PURPOSE": "UI component for system diagnostics and debugging API responses.",
|
|
"LAYER": "UI",
|
|
"RELATION": "USES -> frontend/src/services/toolsService.js"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "fetchEnvironments",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 27,
|
|
"end_line": 41,
|
|
"tags": {
|
|
"PURPOSE": "Fetches available environments.",
|
|
"PRE": "API is available.",
|
|
"POST": "envs variable is populated.",
|
|
"RETURNS": "{Promise<void>}"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 27
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 27
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "handleRunDebug",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 43,
|
|
"end_line": 84,
|
|
"tags": {
|
|
"PURPOSE": "Triggers the debug task.",
|
|
"PRE": "Required fields are selected.",
|
|
"POST": "Task is started and polling begins.",
|
|
"RETURNS": "{Promise<void>}"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 43
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 43
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "startPolling",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 86,
|
|
"end_line": 116,
|
|
"tags": {
|
|
"PURPOSE": "Polls for task completion.",
|
|
"PRE": "Task ID is valid.",
|
|
"POST": "Polls until success/failure.",
|
|
"PARAM": "{string} taskId - ID of the task.",
|
|
"RETURNS": "{void}"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 86
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 86
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
}
|
|
},
|
|
{
|
|
"name": "CommitHistory",
|
|
"type": "Component",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 98,
|
|
"tags": {
|
|
"SEMANTICS": "git, history, commits, audit",
|
|
"PURPOSE": "Displays the commit history for a specific dashboard.",
|
|
"LAYER": "Component",
|
|
"RELATION": "CALLS -> gitService.getHistory"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "onMount",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 30,
|
|
"end_line": 39,
|
|
"tags": {
|
|
"PURPOSE": "Load history when component is mounted.",
|
|
"PRE": "Component is initialized with dashboardId.",
|
|
"POST": "loadHistory is called."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 30
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 30
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "loadHistory",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 41,
|
|
"end_line": 60,
|
|
"tags": {
|
|
"PURPOSE": "Fetch commit history from the backend.",
|
|
"PRE": "dashboardId is valid.",
|
|
"POST": "history state is updated."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 41
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 41
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
},
|
|
"data_flow": [
|
|
{
|
|
"store": "props",
|
|
"type": "WRITES_TO",
|
|
"line": 21
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 67
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 70
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 79
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "DeploymentModal",
|
|
"type": "Component",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 179,
|
|
"tags": {
|
|
"SEMANTICS": "deployment, git, environment, modal",
|
|
"PURPOSE": "Modal for deploying a dashboard to a target environment.",
|
|
"LAYER": "Component",
|
|
"RELATION": "DISPATCHES -> deploy",
|
|
"INVARIANT": "Cannot deploy without a selected environment."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "loadStatus",
|
|
"type": "Watcher",
|
|
"tier": "STANDARD",
|
|
"start_line": 33,
|
|
"end_line": 37,
|
|
"tags": {},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "loadEnvironments",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 39,
|
|
"end_line": 63,
|
|
"tags": {
|
|
"PURPOSE": "Fetch available environments from API.",
|
|
"POST": "environments state is populated."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 39
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 39
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 39
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 39
|
|
}
|
|
],
|
|
"score": 0.5333333333333333
|
|
}
|
|
},
|
|
{
|
|
"name": "handleDeploy",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 65,
|
|
"end_line": 92,
|
|
"tags": {
|
|
"PURPOSE": "Trigger deployment to selected environment.",
|
|
"PRE": "selectedEnv must be set.",
|
|
"POST": "deploy event dispatched on success."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 65
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 65
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
},
|
|
"events": [
|
|
"deploy"
|
|
],
|
|
"data_flow": [
|
|
{
|
|
"store": "props",
|
|
"type": "WRITES_TO",
|
|
"line": 20
|
|
},
|
|
{
|
|
"store": "effect",
|
|
"type": "READS_FROM",
|
|
"line": 34
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "ConflictResolver",
|
|
"type": "Component",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 181,
|
|
"tags": {
|
|
"SEMANTICS": "git, conflict, resolution, merge",
|
|
"PURPOSE": "UI for resolving merge conflicts (Keep Mine / Keep Theirs).",
|
|
"LAYER": "Component",
|
|
"RELATION": "DISPATCHES -> resolve",
|
|
"INVARIANT": "User must resolve all conflicts before saving.",
|
|
"TYPE": "{Object.<string, 'mine' | 'theirs' | 'manual'>} */"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "resolve",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 32,
|
|
"end_line": 48,
|
|
"tags": {
|
|
"PURPOSE": "Set resolution strategy for a file.",
|
|
"PRE": "file path must exist in conflicts array.",
|
|
"POST": "resolutions state is updated for the given file.",
|
|
"PARAM": "{'mine'|'theirs'} strategy - Resolution strategy."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 32
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 32
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "handleSave",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 50,
|
|
"end_line": 76,
|
|
"tags": {
|
|
"PURPOSE": "Validate and submit resolutions.",
|
|
"PRE": "All conflicts must have a resolution.",
|
|
"POST": "'resolve' event dispatched if valid."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 50
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 50
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
},
|
|
"events": [
|
|
"resolve"
|
|
],
|
|
"data_flow": [
|
|
{
|
|
"store": "props",
|
|
"type": "WRITES_TO",
|
|
"line": 22
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "CommitModal",
|
|
"type": "Component",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 268,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"SEMANTICS": "git, commit, modal, version_control, diff",
|
|
"PURPOSE": "\u041c\u043e\u0434\u0430\u043b\u044c\u043d\u043e\u0435 \u043e\u043a\u043d\u043e \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043a\u043e\u043c\u043c\u0438\u0442\u0430 \u0441 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u043e\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 (diff).",
|
|
"LAYER": "Component",
|
|
"RELATION": "DISPATCHES -> commit"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "handleGenerateMessage",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 37,
|
|
"end_line": 60,
|
|
"tags": {
|
|
"PURPOSE": "Generates a commit message using LLM."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 37
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 37
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 37
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 37
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 37
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 37
|
|
}
|
|
],
|
|
"score": 0.26666666666666655
|
|
}
|
|
},
|
|
{
|
|
"name": "loadStatus",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 62,
|
|
"end_line": 101,
|
|
"tags": {
|
|
"PURPOSE": "\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0441\u0442\u0430\u0442\u0443\u0441 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f \u0438 diff.",
|
|
"PRE": "dashboardId \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u043c."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 62
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 62
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 62
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 62
|
|
}
|
|
],
|
|
"score": 0.5333333333333333
|
|
}
|
|
},
|
|
{
|
|
"name": "handleCommit",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 103,
|
|
"end_line": 129,
|
|
"tags": {
|
|
"PURPOSE": "\u0421\u043e\u0437\u0434\u0430\u0435\u0442 \u043a\u043e\u043c\u043c\u0438\u0442 \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435\u043c.",
|
|
"PRE": "message \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043f\u0443\u0441\u0442\u044b\u043c.",
|
|
"POST": "\u041a\u043e\u043c\u043c\u0438\u0442 \u0441\u043e\u0437\u0434\u0430\u043d, \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043e, \u043c\u043e\u0434\u0430\u043b\u044c\u043d\u043e\u0435 \u043e\u043a\u043d\u043e \u0437\u0430\u043a\u0440\u044b\u0442\u043e."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 103
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 103
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
},
|
|
"events": [
|
|
"commit"
|
|
],
|
|
"data_flow": [
|
|
{
|
|
"store": "props",
|
|
"type": "WRITES_TO",
|
|
"line": 22
|
|
},
|
|
{
|
|
"store": "effect",
|
|
"type": "READS_FROM",
|
|
"line": 131
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "BranchSelector",
|
|
"type": "Component",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 181,
|
|
"tags": {
|
|
"SEMANTICS": "git, branch, selection, checkout",
|
|
"PURPOSE": "UI \u0434\u043b\u044f \u0432\u044b\u0431\u043e\u0440\u0430 \u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0432\u0435\u0442\u043e\u043a Git.",
|
|
"LAYER": "Component",
|
|
"RELATION": "DISPATCHES -> change"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "onMount",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 38,
|
|
"end_line": 47,
|
|
"tags": {
|
|
"PURPOSE": "Load branches when component is mounted.",
|
|
"PRE": "Component is initialized.",
|
|
"POST": "loadBranches is called."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 38
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 38
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "loadBranches",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 49,
|
|
"end_line": 68,
|
|
"tags": {
|
|
"PURPOSE": "\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u0441\u043f\u0438\u0441\u043e\u043a \u0432\u0435\u0442\u043e\u043a \u0434\u043b\u044f \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u0430.",
|
|
"PRE": "dashboardId is provided.",
|
|
"POST": "branches \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 49
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 49
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "handleSelect",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 70,
|
|
"end_line": 79,
|
|
"tags": {
|
|
"PURPOSE": "Handles branch selection from dropdown.",
|
|
"PRE": "event contains branch name.",
|
|
"POST": "handleCheckout is called with selected branch."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 70
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 70
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "handleCheckout",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 81,
|
|
"end_line": 100,
|
|
"tags": {
|
|
"PURPOSE": "\u041f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0442\u0435\u043a\u0443\u0449\u0443\u044e \u0432\u0435\u0442\u043a\u0443.",
|
|
"PARAM": "{string} branchName - \u0418\u043c\u044f \u0432\u0435\u0442\u043a\u0438.",
|
|
"POST": "currentBranch \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d, \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043e."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 81
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 81
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 81
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 81
|
|
}
|
|
],
|
|
"score": 0.5333333333333333
|
|
}
|
|
},
|
|
{
|
|
"name": "handleCreate",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 102,
|
|
"end_line": 123,
|
|
"tags": {
|
|
"PURPOSE": "\u0421\u043e\u0437\u0434\u0430\u0435\u0442 \u043d\u043e\u0432\u0443\u044e \u0432\u0435\u0442\u043a\u0443.",
|
|
"PRE": "newBranchName is not empty.",
|
|
"POST": "\u041d\u043e\u0432\u0430\u044f \u0432\u0435\u0442\u043a\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0430 \u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u0430; showCreate reset."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 102
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 102
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
},
|
|
"events": [
|
|
"change"
|
|
],
|
|
"data_flow": [
|
|
{
|
|
"store": "props",
|
|
"type": "WRITES_TO",
|
|
"line": 25
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 145
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 166
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 174
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "GitManager",
|
|
"type": "Component",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 303,
|
|
"tags": {
|
|
"SEMANTICS": "git, manager, dashboard, version_control, initialization",
|
|
"PURPOSE": "\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f Git-\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u043c\u0438 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u0430.",
|
|
"LAYER": "Component",
|
|
"RELATION": "CALLS -> gitService"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "checkStatus",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 54,
|
|
"end_line": 75,
|
|
"tags": {
|
|
"PURPOSE": "\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442, \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d \u043b\u0438 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 \u0434\u043b\u044f \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u0430.",
|
|
"PRE": "Component is mounted and has dashboardId.",
|
|
"POST": "initialized state is set; configs loaded if not initialized."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 54
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 54
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "handleInit",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 77,
|
|
"end_line": 99,
|
|
"tags": {
|
|
"PURPOSE": "\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 \u0434\u043b\u044f \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u0430.",
|
|
"PRE": "selectedConfigId and remoteUrl are provided.",
|
|
"POST": "Repository is created on backend; initialized set to true."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 77
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 77
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "handleSync",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 101,
|
|
"end_line": 120,
|
|
"tags": {
|
|
"PURPOSE": "\u0421\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 Superset \u0441 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u043c Git-\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u043c.",
|
|
"PRE": "Repository is initialized.",
|
|
"POST": "Dashboard YAMLs are exported to Git and staged."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 101
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 101
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "handlePush",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 122,
|
|
"end_line": 139,
|
|
"tags": {
|
|
"PURPOSE": "Pushes local commits to the remote repository.",
|
|
"PRE": "Repository is initialized and has commits.",
|
|
"POST": "Changes are pushed to origin."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 122
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 122
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "handlePull",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 141,
|
|
"end_line": 158,
|
|
"tags": {
|
|
"PURPOSE": "Pulls changes from the remote repository.",
|
|
"PRE": "Repository is initialized.",
|
|
"POST": "Local branch is updated with remote changes."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 141
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use console.log with [ID][STATE] (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 141
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
},
|
|
"data_flow": [
|
|
{
|
|
"store": "props",
|
|
"type": "WRITES_TO",
|
|
"line": 33
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 167
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 186
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 191
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 200
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 211
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 221
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 226
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 233
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 240
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 249
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 257
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 263
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 270
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "DocPreview",
|
|
"type": "Component",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 82,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"PURPOSE": "UI component for previewing generated dataset documentation before saving.",
|
|
"LAYER": "UI",
|
|
"RELATION": "DEPENDS_ON -> backend/src/plugins/llm_analysis/plugin.py",
|
|
"TYPE": "{Object} */"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @SEMANTICS (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
},
|
|
"data_flow": [
|
|
{
|
|
"store": "props",
|
|
"type": "WRITES_TO",
|
|
"line": 17
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 37
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 40
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 43
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 68
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 75
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 75
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "DocPreview",
|
|
"type": "Module",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 1,
|
|
"end_line": 82,
|
|
"tags": {
|
|
"PURPOSE": "Auto-generated module for frontend/src/components/llm/DocPreview.svelte",
|
|
"TIER": "TRIVIAL",
|
|
"LAYER": "Unknown"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "handleSave",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 22,
|
|
"end_line": 22,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "ProviderConfig",
|
|
"type": "Component",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 312,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"PURPOSE": "UI form for managing LLM provider configurations.",
|
|
"LAYER": "UI",
|
|
"RELATION": "DEPENDS_ON -> backend/src/api/routes/llm.py",
|
|
"TYPE": "{Array} */"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @SEMANTICS (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
},
|
|
"data_flow": [
|
|
{
|
|
"store": "props",
|
|
"type": "WRITES_TO",
|
|
"line": 15
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 54
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 63
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 67
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 76
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 122
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 130
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 140
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 140
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 148
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 163
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 180
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 194
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 209
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "WRITES_TO",
|
|
"line": 229
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 249
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 256
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 256
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 262
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 280
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 292
|
|
},
|
|
{
|
|
"store": "t",
|
|
"type": "READS_FROM",
|
|
"line": 306
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "ProviderConfig",
|
|
"type": "Module",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 1,
|
|
"end_line": 312,
|
|
"tags": {
|
|
"PURPOSE": "Auto-generated module for frontend/src/components/llm/ProviderConfig.svelte",
|
|
"TIER": "TRIVIAL",
|
|
"LAYER": "Unknown"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "resetForm",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 32,
|
|
"end_line": 32,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "handleEdit",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 45,
|
|
"end_line": 45,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "testConnection",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 51,
|
|
"end_line": 51,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "handleSubmit",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 83,
|
|
"end_line": 83,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "toggleActive",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 107,
|
|
"end_line": 107,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "ValidationReport",
|
|
"type": "Module",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 1,
|
|
"end_line": 78,
|
|
"tags": {
|
|
"PURPOSE": "Auto-generated module for frontend/src/components/llm/ValidationReport.svelte",
|
|
"TIER": "TRIVIAL",
|
|
"LAYER": "Unknown"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "getStatusColor",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 11,
|
|
"end_line": 11,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_auth_debug",
|
|
"type": "Module",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 1,
|
|
"end_line": 76,
|
|
"tags": {
|
|
"PURPOSE": "Auto-generated module for backend/test_auth_debug.py",
|
|
"TIER": "TRIVIAL",
|
|
"LAYER": "Unknown"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "main",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 9,
|
|
"end_line": 9,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "backend.delete_running_tasks",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 2,
|
|
"end_line": 44,
|
|
"tags": {
|
|
"PURPOSE": "Script to delete tasks with RUNNING status from the database.",
|
|
"LAYER": "Utility",
|
|
"SEMANTICS": "maintenance, database, cleanup"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "delete_running_tasks",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 11,
|
|
"end_line": 40,
|
|
"tags": {
|
|
"PURPOSE": "Delete all tasks with RUNNING status from the database.",
|
|
"PRE": "Database is accessible and TaskRecord model is defined.",
|
|
"POST": "All tasks with status 'RUNNING' are removed from the database."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 11
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 11
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 2
|
|
}
|
|
],
|
|
"score": 0.85
|
|
}
|
|
},
|
|
{
|
|
"name": "AppModule",
|
|
"type": "Module",
|
|
"tier": "CRITICAL",
|
|
"start_line": 1,
|
|
"end_line": 273,
|
|
"tags": {
|
|
"TIER": "CRITICAL",
|
|
"SEMANTICS": "app, main, entrypoint, fastapi",
|
|
"PURPOSE": "The main entry point for the FastAPI application. It initializes the app, configures CORS, sets up dependencies, includes API routers, and defines the WebSocket endpoint for log streaming.",
|
|
"LAYER": "UI (API)",
|
|
"RELATION": "Depends on the dependency module and API route modules.",
|
|
"INVARIANT": "All WebSocket connections must be properly cleaned up on disconnect."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "App",
|
|
"type": "Global",
|
|
"tier": "STANDARD",
|
|
"start_line": 27,
|
|
"end_line": 35,
|
|
"tags": {
|
|
"SEMANTICS": "app, fastapi, instance",
|
|
"PURPOSE": "The global FastAPI application instance."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "startup_event",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 37,
|
|
"end_line": 47,
|
|
"tags": {
|
|
"PURPOSE": "Handles application startup tasks, such as starting the scheduler.",
|
|
"PRE": "None.",
|
|
"POST": "Scheduler is started."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "shutdown_event",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 49,
|
|
"end_line": 59,
|
|
"tags": {
|
|
"PURPOSE": "Handles application shutdown tasks, such as stopping the scheduler.",
|
|
"PRE": "None.",
|
|
"POST": "Scheduler is stopped."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "log_requests",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 75,
|
|
"end_line": 109,
|
|
"tags": {
|
|
"PURPOSE": "Middleware to log incoming HTTP requests and their response status.",
|
|
"PRE": "request is a FastAPI Request object.",
|
|
"POST": "Logs request and response details.",
|
|
"PARAM": "call_next (Callable) - The next middleware or route handler."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "api.include_routers",
|
|
"type": "Action",
|
|
"tier": "STANDARD",
|
|
"start_line": 128,
|
|
"end_line": 132,
|
|
"tags": {
|
|
"PURPOSE": "Registers all API routers with the FastAPI application.",
|
|
"LAYER": "API",
|
|
"SEMANTICS": "routes, registration, api"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "websocket_endpoint",
|
|
"type": "Function",
|
|
"tier": "CRITICAL",
|
|
"start_line": 134,
|
|
"end_line": 235,
|
|
"tags": {
|
|
"PURPOSE": "Provides a WebSocket endpoint for real-time log streaming of a task with server-side filtering.",
|
|
"PRE": "task_id must be a valid task ID.",
|
|
"POST": "WebSocket connection is managed and logs are streamed until disconnect.",
|
|
"TIER": "CRITICAL",
|
|
"UX_STATE": "Connecting -> Streaming -> (Disconnected)"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "StaticFiles",
|
|
"type": "Mount",
|
|
"tier": "STANDARD",
|
|
"start_line": 237,
|
|
"end_line": 272,
|
|
"tags": {
|
|
"SEMANTICS": "static, frontend, spa",
|
|
"PURPOSE": "Mounts the frontend build directory to serve static assets."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "serve_spa",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 244,
|
|
"end_line": 261,
|
|
"tags": {
|
|
"PURPOSE": "Serves the SPA frontend for any path not matched by API routes.",
|
|
"PRE": "frontend_path exists.",
|
|
"POST": "Returns the requested file or index.html."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 244
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 244
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 244
|
|
}
|
|
],
|
|
"score": 0.7
|
|
}
|
|
},
|
|
{
|
|
"name": "read_root",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 263,
|
|
"end_line": 271,
|
|
"tags": {
|
|
"PURPOSE": "A simple root endpoint to confirm that the API is running when frontend is missing.",
|
|
"PRE": "None.",
|
|
"POST": "Returns a JSON message indicating API status."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "network_error_handler",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 82,
|
|
"end_line": 82,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "matches_filters",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 169,
|
|
"end_line": 169,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "Dependencies",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 171,
|
|
"tags": {
|
|
"SEMANTICS": "dependency, injection, singleton, factory, auth, jwt",
|
|
"PURPOSE": "Manages creation and provision of shared application dependencies, such as PluginLoader and TaskManager, to avoid circular imports.",
|
|
"LAYER": "Core",
|
|
"RELATION": "Used by main app and API routers to get access to shared instances."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "get_config_manager",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 32,
|
|
"end_line": 40,
|
|
"tags": {
|
|
"PURPOSE": "Dependency injector for ConfigManager.",
|
|
"PRE": "Global config_manager must be initialized.",
|
|
"POST": "Returns shared ConfigManager instance.",
|
|
"RETURN": "ConfigManager - The shared config manager instance."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 32
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 32
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "get_plugin_loader",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 57,
|
|
"end_line": 65,
|
|
"tags": {
|
|
"PURPOSE": "Dependency injector for PluginLoader.",
|
|
"PRE": "Global plugin_loader must be initialized.",
|
|
"POST": "Returns shared PluginLoader instance.",
|
|
"RETURN": "PluginLoader - The shared plugin loader instance."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 57
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 57
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "get_task_manager",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 67,
|
|
"end_line": 75,
|
|
"tags": {
|
|
"PURPOSE": "Dependency injector for TaskManager.",
|
|
"PRE": "Global task_manager must be initialized.",
|
|
"POST": "Returns shared TaskManager instance.",
|
|
"RETURN": "TaskManager - The shared task manager instance."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 67
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 67
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "get_scheduler_service",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 77,
|
|
"end_line": 85,
|
|
"tags": {
|
|
"PURPOSE": "Dependency injector for SchedulerService.",
|
|
"PRE": "Global scheduler_service must be initialized.",
|
|
"POST": "Returns shared SchedulerService instance.",
|
|
"RETURN": "SchedulerService - The shared scheduler service instance."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 77
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 77
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "get_resource_service",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 87,
|
|
"end_line": 95,
|
|
"tags": {
|
|
"PURPOSE": "Dependency injector for ResourceService.",
|
|
"PRE": "Global resource_service must be initialized.",
|
|
"POST": "Returns shared ResourceService instance.",
|
|
"RETURN": "ResourceService - The shared resource service instance."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 87
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 87
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "get_mapping_service",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 97,
|
|
"end_line": 105,
|
|
"tags": {
|
|
"PURPOSE": "Dependency injector for MappingService.",
|
|
"PRE": "Global config_manager must be initialized.",
|
|
"POST": "Returns new MappingService instance.",
|
|
"RETURN": "MappingService - A new mapping service instance."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 97
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 97
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "oauth2_scheme",
|
|
"type": "Variable",
|
|
"tier": "STANDARD",
|
|
"start_line": 107,
|
|
"end_line": 110,
|
|
"tags": {
|
|
"PURPOSE": "OAuth2 password bearer scheme for token extraction."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_current_user",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 112,
|
|
"end_line": 139,
|
|
"tags": {
|
|
"PURPOSE": "Dependency for retrieving currently authenticated user from a JWT.",
|
|
"PRE": "JWT token provided in Authorization header.",
|
|
"POST": "Returns User object if token is valid.",
|
|
"THROW": "HTTPException 401 if token is invalid or user not found.",
|
|
"PARAM": "db (Session) - Auth database session.",
|
|
"RETURN": "User - The authenticated user."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 112
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 112
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "has_permission",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 141,
|
|
"end_line": 169,
|
|
"tags": {
|
|
"PURPOSE": "Dependency for checking if the current user has a specific permission.",
|
|
"PRE": "User is authenticated.",
|
|
"POST": "Returns True if user has permission.",
|
|
"THROW": "HTTPException 403 if permission is denied.",
|
|
"PARAM": "action (str) - The action identifier (READ, EXECUTE, WRITE).",
|
|
"RETURN": "User - The authenticated user if permission granted."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 141
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 141
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "permission_checker",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 150,
|
|
"end_line": 150,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
}
|
|
},
|
|
{
|
|
"name": "test_dataset_dashboard_relations",
|
|
"type": "Module",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 1,
|
|
"end_line": 163,
|
|
"tags": {
|
|
"PURPOSE": "Auto-generated module for backend/src/scripts/test_dataset_dashboard_relations.py",
|
|
"TIER": "TRIVIAL",
|
|
"LAYER": "Unknown"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "test_dashboard_dataset_relations",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 21,
|
|
"end_line": 21,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "backend.src.scripts.seed_permissions",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 116,
|
|
"tags": {
|
|
"SEMANTICS": "setup, database, auth, permissions, seeding",
|
|
"PURPOSE": "Populates the auth database with initial system permissions.",
|
|
"LAYER": "Scripts",
|
|
"INVARIANT": "Safe to run multiple times (idempotent)."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "USES",
|
|
"target": "backend.src.core.database.get_auth_db"
|
|
},
|
|
{
|
|
"type": "USES",
|
|
"target": "backend.src.models.auth.Permission"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "INITIAL_PERMISSIONS",
|
|
"type": "Constant",
|
|
"tier": "STANDARD",
|
|
"start_line": 24,
|
|
"end_line": 49,
|
|
"tags": {},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "seed_permissions",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 51,
|
|
"end_line": 111,
|
|
"tags": {
|
|
"PURPOSE": "Inserts missing permissions into the database.",
|
|
"POST": "All INITIAL_PERMISSIONS exist in the DB."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 51
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 51
|
|
}
|
|
],
|
|
"score": 0.7333333333333334
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
}
|
|
},
|
|
{
|
|
"name": "backend.src.scripts.init_auth_db",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 43,
|
|
"tags": {
|
|
"SEMANTICS": "setup, database, auth, migration",
|
|
"PURPOSE": "Initializes the auth database and creates the necessary tables.",
|
|
"LAYER": "Scripts",
|
|
"INVARIANT": "Safe to run multiple times (idempotent)."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "CALLS",
|
|
"target": "backend.src.core.database.init_db"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "run_init",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 22,
|
|
"end_line": 38,
|
|
"tags": {
|
|
"PURPOSE": "Main entry point for the initialization script.",
|
|
"POST": "auth.db is initialized with the correct schema and seeded permissions."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 22
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 22
|
|
}
|
|
],
|
|
"score": 0.7333333333333334
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
}
|
|
},
|
|
{
|
|
"name": "backend.src.scripts.create_admin",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 83,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"SEMANTICS": "admin, setup, user, auth, cli",
|
|
"PURPOSE": "CLI tool for creating the initial admin user.",
|
|
"LAYER": "Scripts",
|
|
"INVARIANT": "Admin user must have the \"Admin\" role."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "USES",
|
|
"target": "backend.src.core.auth.security"
|
|
},
|
|
{
|
|
"type": "USES",
|
|
"target": "backend.src.core.database"
|
|
},
|
|
{
|
|
"type": "USES",
|
|
"target": "backend.src.models.auth"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "create_admin",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 27,
|
|
"end_line": 71,
|
|
"tags": {
|
|
"PURPOSE": "Creates an admin user and necessary roles/permissions.",
|
|
"PRE": "username and password provided via CLI.",
|
|
"POST": "Admin user exists in auth.db.",
|
|
"PARAM": "password (str) - Admin password."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "backend.src.schemas.auth",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 128,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"SEMANTICS": "auth, schemas, pydantic, user, token",
|
|
"PURPOSE": "Pydantic schemas for authentication requests and responses.",
|
|
"LAYER": "API",
|
|
"INVARIANT": "Sensitive fields like password must not be included in response schemas."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "pydantic"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "Token",
|
|
"type": "Class",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 17,
|
|
"end_line": 23,
|
|
"tags": {
|
|
"TIER": "TRIVIAL",
|
|
"PURPOSE": "Represents a JWT access token response."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "TokenData",
|
|
"type": "Class",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 25,
|
|
"end_line": 31,
|
|
"tags": {
|
|
"TIER": "TRIVIAL",
|
|
"PURPOSE": "Represents the data encoded in a JWT token."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "PermissionSchema",
|
|
"type": "Class",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 33,
|
|
"end_line": 43,
|
|
"tags": {
|
|
"TIER": "TRIVIAL",
|
|
"PURPOSE": "Represents a permission in API responses."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "RoleSchema",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 45,
|
|
"end_line": 55,
|
|
"tags": {
|
|
"PURPOSE": "Represents a role in API responses."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 45
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 45
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
},
|
|
{
|
|
"name": "RoleCreate",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 57,
|
|
"end_line": 63,
|
|
"tags": {
|
|
"PURPOSE": "Schema for creating a new role."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 57
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 57
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
},
|
|
{
|
|
"name": "RoleUpdate",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 65,
|
|
"end_line": 71,
|
|
"tags": {
|
|
"PURPOSE": "Schema for updating an existing role."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 65
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 65
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
},
|
|
{
|
|
"name": "ADGroupMappingSchema",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 73,
|
|
"end_line": 82,
|
|
"tags": {
|
|
"PURPOSE": "Represents an AD Group to Role mapping in API responses."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 73
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 73
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
},
|
|
{
|
|
"name": "ADGroupMappingCreate",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 84,
|
|
"end_line": 89,
|
|
"tags": {
|
|
"PURPOSE": "Schema for creating an AD Group mapping."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 84
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 84
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
},
|
|
{
|
|
"name": "UserBase",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 91,
|
|
"end_line": 97,
|
|
"tags": {
|
|
"PURPOSE": "Base schema for user data."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 91
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 91
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
},
|
|
{
|
|
"name": "UserCreate",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 99,
|
|
"end_line": 104,
|
|
"tags": {
|
|
"PURPOSE": "Schema for creating a new user."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 99
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 99
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
},
|
|
{
|
|
"name": "UserUpdate",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 106,
|
|
"end_line": 113,
|
|
"tags": {
|
|
"PURPOSE": "Schema for updating an existing user."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 106
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 106
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
},
|
|
{
|
|
"name": "User",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 115,
|
|
"end_line": 126,
|
|
"tags": {
|
|
"PURPOSE": "Schema for user data in API responses."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 115
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 115
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "backend.src.core.superset_client",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 557,
|
|
"tags": {
|
|
"SEMANTICS": "superset, api, client, rest, http, dashboard, dataset, import, export",
|
|
"PURPOSE": "\u041f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0432\u044b\u0441\u043e\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0439 \u043a\u043b\u0438\u0435\u043d\u0442 \u0434\u043b\u044f \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441 Superset REST API, \u0438\u043d\u043a\u0430\u043f\u0441\u0443\u043b\u0438\u0440\u0443\u044f \u043b\u043e\u0433\u0438\u043a\u0443 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432, \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u043e\u0448\u0438\u0431\u043e\u043a \u0438 \u043f\u0430\u0433\u0438\u043d\u0430\u0446\u0438\u044e.",
|
|
"LAYER": "Core",
|
|
"INVARIANT": "All network operations must use the internal APIClient instance.",
|
|
"PUBLIC_API": "SupersetClient"
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "USES",
|
|
"target": "backend.src.core.utils.network.APIClient"
|
|
},
|
|
{
|
|
"type": "USES",
|
|
"target": "backend.src.core.config_models.Environment"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "SupersetClient",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 24,
|
|
"end_line": 555,
|
|
"tags": {
|
|
"PURPOSE": "\u041a\u043b\u0430\u0441\u0441-\u043e\u0431\u0451\u0440\u0442\u043a\u0430 \u043d\u0430\u0434 Superset REST API, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0439 \u043c\u0435\u0442\u043e\u0434\u044b \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u0430\u043c\u0438 \u0438 \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0430\u043c\u0438."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "__init__",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 27,
|
|
"end_line": 53,
|
|
"tags": {
|
|
"PURPOSE": "\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u043a\u043b\u0438\u0435\u043d\u0442, \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u0438 \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u043a\u043b\u0438\u0435\u043d\u0442.",
|
|
"PRE": "`env` \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u043c Environment.",
|
|
"POST": "\u0410\u0442\u0440\u0438\u0431\u0443\u0442\u044b `env` \u0438 `network` \u0441\u043e\u0437\u0434\u0430\u043d\u044b \u0438 \u0433\u043e\u0442\u043e\u0432\u044b \u043a \u0440\u0430\u0431\u043e\u0442\u0435.",
|
|
"PARAM": "env (Environment) - \u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "authenticate",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 55,
|
|
"end_line": 63,
|
|
"tags": {
|
|
"PURPOSE": "Authenticates the client using the configured credentials.",
|
|
"PRE": "self.network must be initialized with valid auth configuration.",
|
|
"POST": "Client is authenticated and tokens are stored.",
|
|
"RETURN": "Dict[str, str] - Authentication tokens."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "headers",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 66,
|
|
"end_line": 73,
|
|
"tags": {
|
|
"PURPOSE": "\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0431\u0430\u0437\u043e\u0432\u044b\u0435 HTTP-\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u0441\u0435\u0442\u0435\u0432\u044b\u043c \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u043c.",
|
|
"PRE": "APIClient is initialized and authenticated.",
|
|
"POST": "Returns a dictionary of HTTP headers."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_dashboards",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 77,
|
|
"end_line": 97,
|
|
"tags": {
|
|
"PURPOSE": "\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043f\u043e\u043b\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u043e\u0432, \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044f \u043f\u0430\u0433\u0438\u043d\u0430\u0446\u0438\u044e.",
|
|
"PARAM": "query (Optional[Dict]) - \u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0434\u043b\u044f API.",
|
|
"PRE": "Client is authenticated.",
|
|
"POST": "Returns a tuple with total count and list of dashboards.",
|
|
"RETURN": "Tuple[int, List[Dict]] - \u041a\u043e\u0440\u0442\u0435\u0436 (\u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e, \u0441\u043f\u0438\u0441\u043e\u043a \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u043e\u0432)."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_dashboards_summary",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 99,
|
|
"end_line": 121,
|
|
"tags": {
|
|
"PURPOSE": "Fetches dashboard metadata optimized for the grid.",
|
|
"PRE": "Client is authenticated.",
|
|
"POST": "Returns a list of dashboard metadata summaries.",
|
|
"RETURN": "List[Dict]"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "export_dashboard",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 123,
|
|
"end_line": 144,
|
|
"tags": {
|
|
"PURPOSE": "\u042d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u0442 \u0434\u0430\u0448\u0431\u043e\u0440\u0434 \u0432 \u0432\u0438\u0434\u0435 ZIP-\u0430\u0440\u0445\u0438\u0432\u0430.",
|
|
"PARAM": "dashboard_id (int) - ID \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u0430 \u0434\u043b\u044f \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0430.",
|
|
"PRE": "dashboard_id must exist in Superset.",
|
|
"POST": "Returns ZIP content and filename.",
|
|
"RETURN": "Tuple[bytes, str] - \u0411\u0438\u043d\u0430\u0440\u043d\u043e\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 ZIP-\u0430\u0440\u0445\u0438\u0432\u0430 \u0438 \u0438\u043c\u044f \u0444\u0430\u0439\u043b\u0430."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "import_dashboard",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 146,
|
|
"end_line": 173,
|
|
"tags": {
|
|
"PURPOSE": "\u0418\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u0442 \u0434\u0430\u0448\u0431\u043e\u0440\u0434 \u0438\u0437 ZIP-\u0444\u0430\u0439\u043b\u0430.",
|
|
"PARAM": "dash_slug (Optional[str]) - Slug \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u0430 \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 ID.",
|
|
"PRE": "file_name must be a valid ZIP dashboard export.",
|
|
"POST": "Dashboard is imported or re-imported after deletion.",
|
|
"RETURN": "Dict - \u041e\u0442\u0432\u0435\u0442 API \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0443\u0441\u043f\u0435\u0445\u0430."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "delete_dashboard",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 175,
|
|
"end_line": 189,
|
|
"tags": {
|
|
"PURPOSE": "\u0423\u0434\u0430\u043b\u044f\u0435\u0442 \u0434\u0430\u0448\u0431\u043e\u0440\u0434 \u043f\u043e \u0435\u0433\u043e ID \u0438\u043b\u0438 slug.",
|
|
"PARAM": "dashboard_id (Union[int, str]) - ID \u0438\u043b\u0438 slug \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u0430.",
|
|
"PRE": "dashboard_id must exist.",
|
|
"POST": "Dashboard is removed from Superset."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_datasets",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 195,
|
|
"end_line": 213,
|
|
"tags": {
|
|
"PURPOSE": "\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043f\u043e\u043b\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u043e\u0432, \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044f \u043f\u0430\u0433\u0438\u043d\u0430\u0446\u0438\u044e.",
|
|
"PARAM": "query (Optional[Dict]) - \u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0437\u0430\u043f\u0440\u043e\u0441\u0430.",
|
|
"PRE": "Client is authenticated.",
|
|
"POST": "Returns total count and list of datasets.",
|
|
"RETURN": "Tuple[int, List[Dict]] - \u041a\u043e\u0440\u0442\u0435\u0436 (\u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e, \u0441\u043f\u0438\u0441\u043e\u043a \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u043e\u0432)."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_datasets_summary",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 215,
|
|
"end_line": 237,
|
|
"tags": {
|
|
"PURPOSE": "Fetches dataset metadata optimized for the Dataset Hub grid.",
|
|
"PRE": "Client is authenticated.",
|
|
"POST": "Returns a list of dataset metadata summaries.",
|
|
"RETURN": "List[Dict]"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_dataset_detail",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 239,
|
|
"end_line": 319,
|
|
"tags": {
|
|
"PURPOSE": "Fetches detailed dataset information including columns and linked dashboards",
|
|
"PRE": "Client is authenticated and dataset_id exists.",
|
|
"POST": "Returns detailed dataset info with columns and linked dashboards.",
|
|
"PARAM": "dataset_id (int) - The dataset ID to fetch details for.",
|
|
"RETURN": "Dict - Dataset details with columns and linked_dashboards."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "CALLS",
|
|
"target": "self.get_dataset"
|
|
},
|
|
{
|
|
"type": "CALLS",
|
|
"target": "self.network.request (for related_objects)"
|
|
}
|
|
],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_dataset",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 321,
|
|
"end_line": 334,
|
|
"tags": {
|
|
"PURPOSE": "\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u043c \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0435 \u043f\u043e \u0435\u0433\u043e ID.",
|
|
"PARAM": "dataset_id (int) - ID \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0430.",
|
|
"PRE": "dataset_id must exist.",
|
|
"POST": "Returns dataset details.",
|
|
"RETURN": "Dict - \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0435."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "update_dataset",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 336,
|
|
"end_line": 355,
|
|
"tags": {
|
|
"PURPOSE": "\u041e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0430 \u043f\u043e \u0435\u0433\u043e ID.",
|
|
"PARAM": "data (Dict) - \u0414\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f.",
|
|
"PRE": "dataset_id must exist.",
|
|
"POST": "Dataset is updated in Superset.",
|
|
"RETURN": "Dict - \u041e\u0442\u0432\u0435\u0442 API."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_databases",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 361,
|
|
"end_line": 381,
|
|
"tags": {
|
|
"PURPOSE": "\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043f\u043e\u043b\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445.",
|
|
"PARAM": "query (Optional[Dict]) - \u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0437\u0430\u043f\u0440\u043e\u0441\u0430.",
|
|
"PRE": "Client is authenticated.",
|
|
"POST": "Returns total count and list of databases.",
|
|
"RETURN": "Tuple[int, List[Dict]] - \u041a\u043e\u0440\u0442\u0435\u0436 (\u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e, \u0441\u043f\u0438\u0441\u043e\u043a \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445)."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_database",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 383,
|
|
"end_line": 396,
|
|
"tags": {
|
|
"PURPOSE": "\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e \u0435\u0451 ID.",
|
|
"PARAM": "database_id (int) - ID \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445.",
|
|
"PRE": "database_id must exist.",
|
|
"POST": "Returns database details.",
|
|
"RETURN": "Dict - \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_databases_summary",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 398,
|
|
"end_line": 415,
|
|
"tags": {
|
|
"PURPOSE": "Fetch a summary of databases including uuid, name, and engine.",
|
|
"PRE": "Client is authenticated.",
|
|
"POST": "Returns list of database summaries.",
|
|
"RETURN": "List[Dict] - Summary of databases."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_database_by_uuid",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 417,
|
|
"end_line": 430,
|
|
"tags": {
|
|
"PURPOSE": "Find a database by its UUID.",
|
|
"PARAM": "db_uuid (str) - The UUID of the database.",
|
|
"PRE": "db_uuid must be a valid UUID string.",
|
|
"POST": "Returns database info or None.",
|
|
"RETURN": "Optional[Dict] - Database info if found, else None."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "_resolve_target_id_for_delete",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 436,
|
|
"end_line": 455,
|
|
"tags": {
|
|
"PURPOSE": "Resolves a dashboard ID from either an ID or a slug.",
|
|
"PRE": "Either dash_id or dash_slug should be provided.",
|
|
"POST": "Returns the resolved ID or None."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "_do_import",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 457,
|
|
"end_line": 475,
|
|
"tags": {
|
|
"PURPOSE": "Performs the actual multipart upload for import.",
|
|
"PRE": "file_name must be a path to an existing ZIP file.",
|
|
"POST": "Returns the API response from the upload."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "_validate_export_response",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 477,
|
|
"end_line": 488,
|
|
"tags": {
|
|
"PURPOSE": "Validates that the export response is a non-empty ZIP archive.",
|
|
"PRE": "response must be a valid requests.Response object.",
|
|
"POST": "Raises SupersetAPIError if validation fails."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "_resolve_export_filename",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 490,
|
|
"end_line": 503,
|
|
"tags": {
|
|
"PURPOSE": "Determines the filename for an exported dashboard.",
|
|
"PRE": "response must contain Content-Disposition header or dashboard_id must be provided.",
|
|
"POST": "Returns a sanitized filename string."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "_validate_query_params",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 505,
|
|
"end_line": 513,
|
|
"tags": {
|
|
"PURPOSE": "Ensures query parameters have default page and page_size.",
|
|
"PRE": "query can be None or a dictionary.",
|
|
"POST": "Returns a dictionary with at least page and page_size."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "_fetch_total_object_count",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 515,
|
|
"end_line": 526,
|
|
"tags": {
|
|
"PURPOSE": "Fetches the total number of items for a given endpoint.",
|
|
"PRE": "endpoint must be a valid Superset API path.",
|
|
"POST": "Returns the total count as an integer."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "_fetch_all_pages",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 528,
|
|
"end_line": 535,
|
|
"tags": {
|
|
"PURPOSE": "Iterates through all pages to collect all data items.",
|
|
"PRE": "pagination_options must contain base_query, total_count, and results_field.",
|
|
"POST": "Returns a combined list of all items."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "_validate_import_file",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 537,
|
|
"end_line": 551,
|
|
"tags": {
|
|
"PURPOSE": "Validates that the file to be imported is a valid ZIP with metadata.yaml.",
|
|
"PRE": "zip_path must be a path to a file.",
|
|
"POST": "Raises error if file is missing, not a ZIP, or missing metadata."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 24
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 24
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
}
|
|
},
|
|
{
|
|
"name": "ConfigManagerModule",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 279,
|
|
"tags": {
|
|
"SEMANTICS": "config, manager, persistence, json",
|
|
"PURPOSE": "Manages application configuration, including loading/saving to JSON and CRUD for environments.",
|
|
"LAYER": "Core",
|
|
"INVARIANT": "Configuration must always be valid according to AppConfig model.",
|
|
"PUBLIC_API": "ConfigManager"
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "ConfigModels"
|
|
},
|
|
{
|
|
"type": "CALLS",
|
|
"target": "logger"
|
|
},
|
|
{
|
|
"type": "WRITES_TO",
|
|
"target": "config.json"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "ConfigManager",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 22,
|
|
"end_line": 277,
|
|
"tags": {
|
|
"PURPOSE": "A class to handle application configuration persistence and management."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "WRITES_TO",
|
|
"target": "config.json"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "__init__",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 27,
|
|
"end_line": 50,
|
|
"tags": {
|
|
"PURPOSE": "Initializes the ConfigManager.",
|
|
"PRE": "isinstance(config_path, str) and len(config_path) > 0",
|
|
"POST": "self.config is an instance of AppConfig",
|
|
"PARAM": "config_path (str) - Path to the configuration file."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "_load_config",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 52,
|
|
"end_line": 83,
|
|
"tags": {
|
|
"PURPOSE": "Loads the configuration from disk or creates a default one.",
|
|
"PRE": "self.config_path is set.",
|
|
"POST": "isinstance(return, AppConfig)",
|
|
"RETURN": "AppConfig - The loaded or default configuration."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "_save_config_to_disk",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 85,
|
|
"end_line": 104,
|
|
"tags": {
|
|
"PURPOSE": "Saves the provided configuration object to disk.",
|
|
"PRE": "isinstance(config, AppConfig)",
|
|
"POST": "Configuration saved to disk.",
|
|
"PARAM": "config (AppConfig) - The configuration to save."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "save",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 106,
|
|
"end_line": 113,
|
|
"tags": {
|
|
"PURPOSE": "Saves the current configuration state to disk.",
|
|
"PRE": "self.config is set.",
|
|
"POST": "self._save_config_to_disk called."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_config",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 115,
|
|
"end_line": 123,
|
|
"tags": {
|
|
"PURPOSE": "Returns the current configuration.",
|
|
"PRE": "self.config is set.",
|
|
"POST": "Returns self.config.",
|
|
"RETURN": "AppConfig - The current configuration."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "update_global_settings",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 125,
|
|
"end_line": 145,
|
|
"tags": {
|
|
"PURPOSE": "Updates the global settings and persists the change.",
|
|
"PRE": "isinstance(settings, GlobalSettings)",
|
|
"POST": "self.config.settings updated and saved.",
|
|
"PARAM": "settings (GlobalSettings) - The new global settings."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "validate_path",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 147,
|
|
"end_line": 166,
|
|
"tags": {
|
|
"PURPOSE": "Validates if a path exists and is writable.",
|
|
"PRE": "path is a string.",
|
|
"POST": "Returns (bool, str) status.",
|
|
"PARAM": "path (str) - The path to validate.",
|
|
"RETURN": "tuple (bool, str) - (is_valid, message)"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_environments",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 168,
|
|
"end_line": 176,
|
|
"tags": {
|
|
"PURPOSE": "Returns the list of configured environments.",
|
|
"PRE": "self.config is set.",
|
|
"POST": "Returns list of environments.",
|
|
"RETURN": "List[Environment] - List of environments."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "has_environments",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 178,
|
|
"end_line": 186,
|
|
"tags": {
|
|
"PURPOSE": "Checks if at least one environment is configured.",
|
|
"PRE": "self.config is set.",
|
|
"POST": "Returns boolean indicating if environments exist.",
|
|
"RETURN": "bool - True if at least one environment exists."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_environment",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 188,
|
|
"end_line": 200,
|
|
"tags": {
|
|
"PURPOSE": "Returns a single environment by ID.",
|
|
"PRE": "self.config is set and isinstance(env_id, str) and len(env_id) > 0.",
|
|
"POST": "Returns Environment object if found, None otherwise.",
|
|
"PARAM": "env_id (str) - The ID of the environment to retrieve.",
|
|
"RETURN": "Optional[Environment] - The environment with the given ID, or None."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "add_environment",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 202,
|
|
"end_line": 221,
|
|
"tags": {
|
|
"PURPOSE": "Adds a new environment to the configuration.",
|
|
"PRE": "isinstance(env, Environment)",
|
|
"POST": "Environment added or updated in self.config.environments.",
|
|
"PARAM": "env (Environment) - The environment to add."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "update_environment",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 223,
|
|
"end_line": 252,
|
|
"tags": {
|
|
"PURPOSE": "Updates an existing environment.",
|
|
"PRE": "isinstance(env_id, str) and len(env_id) > 0 and isinstance(updated_env, Environment)",
|
|
"POST": "Returns True if environment was found and updated.",
|
|
"PARAM": "updated_env (Environment) - The updated environment data.",
|
|
"RETURN": "bool - True if updated, False otherwise."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "delete_environment",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 254,
|
|
"end_line": 275,
|
|
"tags": {
|
|
"PURPOSE": "Deletes an environment by ID.",
|
|
"PRE": "isinstance(env_id, str) and len(env_id) > 0",
|
|
"POST": "Environment removed from self.config.environments if it existed.",
|
|
"PARAM": "env_id (str) - The ID of the environment to delete."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 22
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 22
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
}
|
|
},
|
|
{
|
|
"name": "SchedulerModule",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 120,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"SEMANTICS": "scheduler, apscheduler, cron, backup",
|
|
"PURPOSE": "Manages scheduled tasks using APScheduler.",
|
|
"LAYER": "Core",
|
|
"RELATION": "Uses TaskManager to run scheduled backups."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "SchedulerService",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 16,
|
|
"end_line": 119,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"SEMANTICS": "scheduler, service, apscheduler",
|
|
"PURPOSE": "Provides a service to manage scheduled backup tasks."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "__init__",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 21,
|
|
"end_line": 31,
|
|
"tags": {
|
|
"PURPOSE": "Initializes the scheduler service with task and config managers.",
|
|
"PRE": "task_manager and config_manager must be provided.",
|
|
"POST": "Scheduler instance is created but not started."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "start",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 33,
|
|
"end_line": 43,
|
|
"tags": {
|
|
"PURPOSE": "Starts the background scheduler and loads initial schedules.",
|
|
"PRE": "Scheduler should be initialized.",
|
|
"POST": "Scheduler is running and schedules are loaded."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "stop",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 45,
|
|
"end_line": 54,
|
|
"tags": {
|
|
"PURPOSE": "Stops the background scheduler.",
|
|
"PRE": "Scheduler should be running.",
|
|
"POST": "Scheduler is shut down."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "load_schedules",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 56,
|
|
"end_line": 69,
|
|
"tags": {
|
|
"PURPOSE": "Loads backup schedules from configuration and registers them.",
|
|
"PRE": "config_manager must have valid configuration.",
|
|
"POST": "All enabled backup jobs are added to the scheduler."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "add_backup_job",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 71,
|
|
"end_line": 91,
|
|
"tags": {
|
|
"PURPOSE": "Adds a scheduled backup job for an environment.",
|
|
"PRE": "env_id and cron_expression must be valid strings.",
|
|
"POST": "A new job is added to the scheduler or replaced if it already exists.",
|
|
"PARAM": "cron_expression (str) - The cron expression for the schedule."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "_trigger_backup",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 93,
|
|
"end_line": 117,
|
|
"tags": {
|
|
"PURPOSE": "Triggered by the scheduler to start a backup task.",
|
|
"PRE": "env_id must be a valid environment ID.",
|
|
"POST": "A new backup task is created in the task manager if not already running.",
|
|
"PARAM": "env_id (str) - The ID of the environment."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "ConfigModels",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 67,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"SEMANTICS": "config, models, pydantic",
|
|
"PURPOSE": "Defines the data models for application configuration using Pydantic.",
|
|
"LAYER": "Core"
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "READS_FROM",
|
|
"target": "config.json"
|
|
},
|
|
{
|
|
"type": "USED_BY",
|
|
"target": "ConfigManager"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "Schedule",
|
|
"type": "DataClass",
|
|
"tier": "STANDARD",
|
|
"start_line": 13,
|
|
"end_line": 18,
|
|
"tags": {
|
|
"PURPOSE": "Represents a backup schedule configuration."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "Environment",
|
|
"type": "DataClass",
|
|
"tier": "STANDARD",
|
|
"start_line": 20,
|
|
"end_line": 32,
|
|
"tags": {
|
|
"PURPOSE": "Represents a Superset environment configuration."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "LoggingConfig",
|
|
"type": "DataClass",
|
|
"tier": "STANDARD",
|
|
"start_line": 34,
|
|
"end_line": 43,
|
|
"tags": {
|
|
"PURPOSE": "Defines the configuration for the application's logging system."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "GlobalSettings",
|
|
"type": "DataClass",
|
|
"tier": "STANDARD",
|
|
"start_line": 45,
|
|
"end_line": 58,
|
|
"tags": {
|
|
"PURPOSE": "Represents global application settings."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "AppConfig",
|
|
"type": "DataClass",
|
|
"tier": "STANDARD",
|
|
"start_line": 60,
|
|
"end_line": 65,
|
|
"tags": {
|
|
"PURPOSE": "The root configuration model containing all application settings."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "backend.src.core.database",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 136,
|
|
"tags": {
|
|
"SEMANTICS": "database, sqlite, sqlalchemy, session, persistence",
|
|
"PURPOSE": "Configures the SQLite database connection and session management.",
|
|
"LAYER": "Core",
|
|
"INVARIANT": "A single engine instance is used for the entire application."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "sqlalchemy"
|
|
},
|
|
{
|
|
"type": "USES",
|
|
"target": "backend.src.models.mapping"
|
|
},
|
|
{
|
|
"type": "USES",
|
|
"target": "backend.src.core.auth.config"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "BASE_DIR",
|
|
"type": "Variable",
|
|
"tier": "STANDARD",
|
|
"start_line": 23,
|
|
"end_line": 26,
|
|
"tags": {
|
|
"PURPOSE": "Base directory for the backend (where .db files should reside)."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "DATABASE_URL",
|
|
"type": "Constant",
|
|
"tier": "STANDARD",
|
|
"start_line": 28,
|
|
"end_line": 31,
|
|
"tags": {
|
|
"PURPOSE": "URL for the main mappings database."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "TASKS_DATABASE_URL",
|
|
"type": "Constant",
|
|
"tier": "STANDARD",
|
|
"start_line": 33,
|
|
"end_line": 36,
|
|
"tags": {
|
|
"PURPOSE": "URL for the tasks execution database."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "AUTH_DATABASE_URL",
|
|
"type": "Constant",
|
|
"tier": "STANDARD",
|
|
"start_line": 38,
|
|
"end_line": 47,
|
|
"tags": {
|
|
"PURPOSE": "URL for the authentication database."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "engine",
|
|
"type": "Variable",
|
|
"tier": "STANDARD",
|
|
"start_line": 49,
|
|
"end_line": 52,
|
|
"tags": {
|
|
"PURPOSE": "SQLAlchemy engine for mappings database."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "tasks_engine",
|
|
"type": "Variable",
|
|
"tier": "STANDARD",
|
|
"start_line": 54,
|
|
"end_line": 57,
|
|
"tags": {
|
|
"PURPOSE": "SQLAlchemy engine for tasks database."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "auth_engine",
|
|
"type": "Variable",
|
|
"tier": "STANDARD",
|
|
"start_line": 59,
|
|
"end_line": 62,
|
|
"tags": {
|
|
"PURPOSE": "SQLAlchemy engine for authentication database."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "SessionLocal",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 64,
|
|
"end_line": 68,
|
|
"tags": {
|
|
"PURPOSE": "A session factory for the main mappings database.",
|
|
"PRE": "engine is initialized."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 64
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 64
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
},
|
|
{
|
|
"name": "TasksSessionLocal",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 70,
|
|
"end_line": 74,
|
|
"tags": {
|
|
"PURPOSE": "A session factory for the tasks execution database.",
|
|
"PRE": "tasks_engine is initialized."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 70
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 70
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
},
|
|
{
|
|
"name": "AuthSessionLocal",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 76,
|
|
"end_line": 80,
|
|
"tags": {
|
|
"PURPOSE": "A session factory for the authentication database.",
|
|
"PRE": "auth_engine is initialized."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 76
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 76
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
},
|
|
{
|
|
"name": "init_db",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 82,
|
|
"end_line": 92,
|
|
"tags": {
|
|
"PURPOSE": "Initializes the database by creating all tables.",
|
|
"PRE": "engine, tasks_engine and auth_engine are initialized.",
|
|
"POST": "Database tables created in all databases.",
|
|
"SIDE_EFFECT": "Creates physical database files if they don't exist."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_db",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 94,
|
|
"end_line": 106,
|
|
"tags": {
|
|
"PURPOSE": "Dependency for getting a database session.",
|
|
"PRE": "SessionLocal is initialized.",
|
|
"POST": "Session is closed after use.",
|
|
"RETURN": "Generator[Session, None, None]"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_tasks_db",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 108,
|
|
"end_line": 120,
|
|
"tags": {
|
|
"PURPOSE": "Dependency for getting a tasks database session.",
|
|
"PRE": "TasksSessionLocal is initialized.",
|
|
"POST": "Session is closed after use.",
|
|
"RETURN": "Generator[Session, None, None]"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_auth_db",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 122,
|
|
"end_line": 134,
|
|
"tags": {
|
|
"PURPOSE": "Dependency for getting an authentication database session.",
|
|
"PRE": "AuthSessionLocal is initialized.",
|
|
"POST": "Session is closed after use.",
|
|
"RETURN": "Generator[Session, None, None]"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
}
|
|
},
|
|
{
|
|
"name": "LoggerModule",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 279,
|
|
"tags": {
|
|
"SEMANTICS": "logging, websocket, streaming, handler",
|
|
"PURPOSE": "Configures the application's logging system, including a custom handler for buffering logs and streaming them over WebSockets.",
|
|
"LAYER": "Core",
|
|
"RELATION": "Used by the main application and other modules to log events. The WebSocketLogHandler is used by the WebSocket endpoint in app.py."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "BeliefFormatter",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 25,
|
|
"end_line": 41,
|
|
"tags": {
|
|
"PURPOSE": "Custom logging formatter that adds belief state prefixes to log messages."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "format",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 28,
|
|
"end_line": 40,
|
|
"tags": {
|
|
"PURPOSE": "Formats the log record, adding belief state context if available.",
|
|
"PRE": "record is a logging.LogRecord.",
|
|
"POST": "Returns formatted string.",
|
|
"PARAM": "record (logging.LogRecord) - The log record to format.",
|
|
"RETURN": "str - The formatted log message.",
|
|
"SEMANTICS": "logging, formatter, context"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 25
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 25
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
},
|
|
{
|
|
"name": "LogEntry",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 44,
|
|
"end_line": 53,
|
|
"tags": {
|
|
"SEMANTICS": "log, entry, record, pydantic",
|
|
"PURPOSE": "A Pydantic model representing a single, structured log entry. This is a re-definition for consistency, as it's also defined in task_manager.py."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 44
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 44
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
},
|
|
{
|
|
"name": "belief_scope",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 55,
|
|
"end_line": 89,
|
|
"tags": {
|
|
"PURPOSE": "Context manager for structured Belief State logging.",
|
|
"PARAM": "message (str) - Optional entry message.",
|
|
"PRE": "anchor_id must be provided.",
|
|
"POST": "Thread-local belief state is updated and entry/exit logs are generated.",
|
|
"SEMANTICS": "logging, context, belief_state"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "configure_logger",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 91,
|
|
"end_line": 134,
|
|
"tags": {
|
|
"PURPOSE": "Configures the logger with the provided logging settings.",
|
|
"PRE": "config is a valid LoggingConfig instance.",
|
|
"POST": "Logger level, handlers, belief state flag, and task log level are updated.",
|
|
"PARAM": "config (LoggingConfig) - The logging configuration.",
|
|
"SEMANTICS": "logging, configuration, initialization"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_task_log_level",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 136,
|
|
"end_line": 145,
|
|
"tags": {
|
|
"PURPOSE": "Returns the current task log level filter.",
|
|
"PRE": "None.",
|
|
"POST": "Returns the task log level string.",
|
|
"RETURN": "str - The current task log level (DEBUG, INFO, WARNING, ERROR).",
|
|
"SEMANTICS": "logging, configuration, getter"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "should_log_task_level",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 147,
|
|
"end_line": 164,
|
|
"tags": {
|
|
"PURPOSE": "Checks if a log level should be recorded based on task_log_level setting.",
|
|
"PRE": "level is a valid log level string.",
|
|
"POST": "Returns True if level meets or exceeds task_log_level threshold.",
|
|
"PARAM": "level (str) - The log level to check.",
|
|
"RETURN": "bool - True if the level should be logged.",
|
|
"SEMANTICS": "logging, filter, level"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "WebSocketLogHandler",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 166,
|
|
"end_line": 228,
|
|
"tags": {
|
|
"SEMANTICS": "logging, handler, websocket, buffer",
|
|
"PURPOSE": "A custom logging handler that captures log records into a buffer. It is designed to be extended for real-time log streaming over WebSockets."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "__init__",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 174,
|
|
"end_line": 185,
|
|
"tags": {
|
|
"PURPOSE": "Initializes the handler with a fixed-capacity buffer.",
|
|
"PRE": "capacity is an integer.",
|
|
"POST": "Instance initialized with empty deque.",
|
|
"PARAM": "capacity (int) - Maximum number of logs to keep in memory.",
|
|
"SEMANTICS": "logging, initialization, buffer"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "emit",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 187,
|
|
"end_line": 213,
|
|
"tags": {
|
|
"PURPOSE": "Captures a log record, formats it, and stores it in the buffer.",
|
|
"PRE": "record is a logging.LogRecord.",
|
|
"POST": "Log is added to the log_buffer.",
|
|
"PARAM": "record (logging.LogRecord) - The log record to emit.",
|
|
"SEMANTICS": "logging, handler, buffer"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_recent_logs",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 215,
|
|
"end_line": 226,
|
|
"tags": {
|
|
"PURPOSE": "Returns a list of recent log entries from the buffer.",
|
|
"PRE": "None.",
|
|
"POST": "Returns list of LogEntry objects.",
|
|
"RETURN": "List[LogEntry] - List of buffered log entries.",
|
|
"SEMANTICS": "logging, buffer, retrieval"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 166
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 166
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
},
|
|
{
|
|
"name": "Logger",
|
|
"type": "Global",
|
|
"tier": "STANDARD",
|
|
"start_line": 230,
|
|
"end_line": 278,
|
|
"tags": {
|
|
"SEMANTICS": "logger, global, instance",
|
|
"PURPOSE": "The global logger instance for the application, configured with both a console handler and the custom WebSocket handler."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "believed",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 235,
|
|
"end_line": 257,
|
|
"tags": {
|
|
"PURPOSE": "A decorator that wraps a function in a belief scope.",
|
|
"PARAM": "anchor_id (str) - The identifier for the semantic block.",
|
|
"PRE": "anchor_id must be a string.",
|
|
"POST": "Returns a decorator function."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "decorator",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 241,
|
|
"end_line": 255,
|
|
"tags": {
|
|
"PURPOSE": "Internal decorator for belief scope.",
|
|
"PRE": "func must be a callable.",
|
|
"POST": "Returns the wrapped function."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "wrapper",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 246,
|
|
"end_line": 253,
|
|
"tags": {
|
|
"PURPOSE": "Internal wrapper that enters belief scope.",
|
|
"PRE": "None.",
|
|
"POST": "Executes the function within a belief scope."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
}
|
|
},
|
|
{
|
|
"name": "PluginLoader",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 8,
|
|
"end_line": 201,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"SEMANTICS": "plugin, loader, dynamic, import",
|
|
"PURPOSE": "Scans a specified directory for Python modules, dynamically loads them, and registers any classes that are valid implementations of the PluginBase interface.",
|
|
"LAYER": "Core",
|
|
"RELATION": "Depends on PluginBase. It is used by the main application to discover and manage available plugins."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "__init__",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 20,
|
|
"end_line": 31,
|
|
"tags": {
|
|
"PURPOSE": "Initializes the PluginLoader with a directory to scan.",
|
|
"PRE": "plugin_dir is a valid directory path.",
|
|
"POST": "Plugins are loaded and registered.",
|
|
"PARAM": "plugin_dir (str) - The directory containing plugin modules."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "_load_plugins",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 33,
|
|
"end_line": 66,
|
|
"tags": {
|
|
"PURPOSE": "Scans the plugin directory and loads all valid plugins.",
|
|
"PRE": "plugin_dir exists or can be created.",
|
|
"POST": "_load_module is called for each .py file."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "_load_module",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 68,
|
|
"end_line": 116,
|
|
"tags": {
|
|
"PURPOSE": "Loads a single Python module and discovers PluginBase implementations.",
|
|
"PRE": "module_name and file_path are valid.",
|
|
"POST": "Plugin classes are instantiated and registered.",
|
|
"PARAM": "file_path (str) - The path to the module file."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "_register_plugin",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 118,
|
|
"end_line": 157,
|
|
"tags": {
|
|
"PURPOSE": "Registers a PluginBase instance and its configuration.",
|
|
"PRE": "plugin_instance is a valid implementation of PluginBase.",
|
|
"POST": "Plugin is added to _plugins and _plugin_configs.",
|
|
"PARAM": "plugin_instance (PluginBase) - The plugin instance to register."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_plugin",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 160,
|
|
"end_line": 172,
|
|
"tags": {
|
|
"PURPOSE": "Retrieves a loaded plugin instance by its ID.",
|
|
"PRE": "plugin_id is a string.",
|
|
"POST": "Returns plugin instance or None.",
|
|
"PARAM": "plugin_id (str) - The unique identifier of the plugin.",
|
|
"RETURN": "Optional[PluginBase] - The plugin instance if found, otherwise None."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_all_plugin_configs",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 174,
|
|
"end_line": 185,
|
|
"tags": {
|
|
"PURPOSE": "Returns a list of all registered plugin configurations.",
|
|
"PRE": "None.",
|
|
"POST": "Returns list of all PluginConfig objects.",
|
|
"RETURN": "List[PluginConfig] - A list of plugin configurations."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "has_plugin",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 187,
|
|
"end_line": 199,
|
|
"tags": {
|
|
"PURPOSE": "Checks if a plugin with the given ID is registered.",
|
|
"PRE": "plugin_id is a string.",
|
|
"POST": "Returns True if plugin exists.",
|
|
"PARAM": "plugin_id (str) - The unique identifier of the plugin.",
|
|
"RETURN": "bool - True if the plugin is registered, False otherwise."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "backend.src.core.migration_engine",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 102,
|
|
"tags": {
|
|
"SEMANTICS": "migration, engine, zip, yaml, transformation",
|
|
"PURPOSE": "Handles the interception and transformation of Superset asset ZIP archives.",
|
|
"LAYER": "Core",
|
|
"INVARIANT": "ZIP structure must be preserved after transformation."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "PyYAML"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "MigrationEngine",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 20,
|
|
"end_line": 100,
|
|
"tags": {
|
|
"PURPOSE": "Engine for transforming Superset export ZIPs."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "transform_zip",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 24,
|
|
"end_line": 76,
|
|
"tags": {
|
|
"PURPOSE": "Extracts ZIP, replaces database UUIDs in YAMLs, and re-packages.",
|
|
"PARAM": "strip_databases (bool) - Whether to remove the databases directory from the archive.",
|
|
"PRE": "zip_path must point to a valid Superset export archive.",
|
|
"POST": "Transformed archive is saved to output_path.",
|
|
"RETURN": "bool - True if successful."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "_transform_yaml",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 78,
|
|
"end_line": 98,
|
|
"tags": {
|
|
"PURPOSE": "Replaces database_uuid in a single YAML file.",
|
|
"PARAM": "db_mapping (Dict[str, str]) - UUID mapping dictionary.",
|
|
"PRE": "file_path must exist and be readable.",
|
|
"POST": "File is modified in-place if source UUID matches mapping."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 78
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 78
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 78
|
|
}
|
|
],
|
|
"score": 0.7
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 20
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 20
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
}
|
|
},
|
|
{
|
|
"name": "PluginBase",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 7,
|
|
"end_line": 128,
|
|
"tags": {
|
|
"SEMANTICS": "plugin, interface, base, abstract",
|
|
"PURPOSE": "Defines the abstract base class that all plugins must implement to be recognized by the system. It enforces a common structure for plugin metadata and execution.",
|
|
"LAYER": "Core",
|
|
"RELATION": "Used by PluginLoader to identify valid plugins.",
|
|
"INVARIANT": "All plugins MUST inherit from this class."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "id",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 21,
|
|
"end_line": 30,
|
|
"tags": {
|
|
"PURPOSE": "Returns the unique identifier for the plugin.",
|
|
"PRE": "Plugin instance exists.",
|
|
"POST": "Returns string ID.",
|
|
"RETURN": "str - Plugin ID."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "name",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 34,
|
|
"end_line": 43,
|
|
"tags": {
|
|
"PURPOSE": "Returns the human-readable name of the plugin.",
|
|
"PRE": "Plugin instance exists.",
|
|
"POST": "Returns string name.",
|
|
"RETURN": "str - Plugin name."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "description",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 47,
|
|
"end_line": 56,
|
|
"tags": {
|
|
"PURPOSE": "Returns a brief description of the plugin.",
|
|
"PRE": "Plugin instance exists.",
|
|
"POST": "Returns string description.",
|
|
"RETURN": "str - Plugin description."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "version",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 60,
|
|
"end_line": 69,
|
|
"tags": {
|
|
"PURPOSE": "Returns the version of the plugin.",
|
|
"PRE": "Plugin instance exists.",
|
|
"POST": "Returns string version.",
|
|
"RETURN": "str - Plugin version."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "required_permission",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 72,
|
|
"end_line": 81,
|
|
"tags": {
|
|
"PURPOSE": "Returns the required permission string to execute this plugin.",
|
|
"PRE": "Plugin instance exists.",
|
|
"POST": "Returns string permission.",
|
|
"RETURN": "str - Required permission (e.g., \"plugin:backup:execute\")."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "ui_route",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 84,
|
|
"end_line": 96,
|
|
"tags": {
|
|
"PURPOSE": "Returns the frontend route for the plugin's UI, if applicable.",
|
|
"PRE": "Plugin instance exists.",
|
|
"POST": "Returns string route or None.",
|
|
"RETURN": "Optional[str] - Frontend route."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_schema",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 99,
|
|
"end_line": 111,
|
|
"tags": {
|
|
"PURPOSE": "Returns the JSON schema for the plugin's input parameters.",
|
|
"PRE": "Plugin instance exists.",
|
|
"POST": "Returns dict schema.",
|
|
"RETURN": "Dict[str, Any] - JSON schema."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "execute",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 114,
|
|
"end_line": 127,
|
|
"tags": {
|
|
"PURPOSE": "Executes the plugin's core logic.",
|
|
"PARAM": "params (Dict[str, Any]) - Validated input parameters.",
|
|
"PRE": "params must be a dictionary.",
|
|
"POST": "Plugin execution is completed."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 7
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "PluginConfig",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 130,
|
|
"end_line": 143,
|
|
"tags": {
|
|
"SEMANTICS": "plugin, config, schema, pydantic",
|
|
"PURPOSE": "A Pydantic model used to represent the validated configuration and metadata of a loaded plugin. This object is what gets exposed to the API layer.",
|
|
"LAYER": "Core",
|
|
"RELATION": "Instantiated by PluginLoader after validating a PluginBase instance."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 130
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "backend.src.core.auth.config",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 44,
|
|
"tags": {
|
|
"SEMANTICS": "auth, config, settings, jwt, adfs",
|
|
"PURPOSE": "Centralized configuration for authentication and authorization.",
|
|
"LAYER": "Core",
|
|
"INVARIANT": "All sensitive configuration must have defaults or be loaded from environment."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "pydantic"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "AuthConfig",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 15,
|
|
"end_line": 37,
|
|
"tags": {
|
|
"PURPOSE": "Holds authentication-related settings.",
|
|
"PRE": "Environment variables may be provided via .env file.",
|
|
"POST": "Returns a configuration object with validated settings."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 15
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 15
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
},
|
|
{
|
|
"name": "auth_config",
|
|
"type": "Variable",
|
|
"tier": "STANDARD",
|
|
"start_line": 39,
|
|
"end_line": 42,
|
|
"tags": {
|
|
"PURPOSE": "Singleton instance of AuthConfig."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
}
|
|
},
|
|
{
|
|
"name": "backend.src.core.auth.jwt",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 55,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"SEMANTICS": "jwt, token, session, auth",
|
|
"PURPOSE": "JWT token generation and validation logic.",
|
|
"LAYER": "Core",
|
|
"INVARIANT": "Tokens must include expiration time and user identifier."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "jose"
|
|
},
|
|
{
|
|
"type": "USES",
|
|
"target": "backend.src.core.auth.config.auth_config"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "create_access_token",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 20,
|
|
"end_line": 39,
|
|
"tags": {
|
|
"PURPOSE": "Generates a new JWT access token.",
|
|
"PRE": "data dict contains 'sub' (user_id) and optional 'scopes' (roles).",
|
|
"POST": "Returns a signed JWT string.",
|
|
"PARAM": "expires_delta (Optional[timedelta]) - Custom expiration time.",
|
|
"RETURN": "str - The encoded JWT."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "decode_token",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 41,
|
|
"end_line": 53,
|
|
"tags": {
|
|
"PURPOSE": "Decodes and validates a JWT token.",
|
|
"PRE": "token is a signed JWT string.",
|
|
"POST": "Returns the decoded payload if valid.",
|
|
"PARAM": "token (str) - The JWT to decode.",
|
|
"RETURN": "dict - The decoded payload.",
|
|
"THROW": "jose.JWTError - If token is invalid or expired."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "backend.src.core.auth.oauth",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 51,
|
|
"tags": {
|
|
"SEMANTICS": "auth, oauth, oidc, adfs",
|
|
"PURPOSE": "ADFS OIDC configuration and client using Authlib.",
|
|
"LAYER": "Core",
|
|
"INVARIANT": "Must use secure OIDC flows."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "authlib"
|
|
},
|
|
{
|
|
"type": "USES",
|
|
"target": "backend.src.core.auth.config.auth_config"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "oauth",
|
|
"type": "Variable",
|
|
"tier": "STANDARD",
|
|
"start_line": 16,
|
|
"end_line": 19,
|
|
"tags": {
|
|
"PURPOSE": "Global Authlib OAuth registry."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "register_adfs",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 21,
|
|
"end_line": 36,
|
|
"tags": {
|
|
"PURPOSE": "Registers the ADFS OIDC client.",
|
|
"PRE": "ADFS configuration is provided in auth_config.",
|
|
"POST": "ADFS client is registered in oauth registry."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 21
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 21
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "is_adfs_configured",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 38,
|
|
"end_line": 46,
|
|
"tags": {
|
|
"PURPOSE": "Checks if ADFS is properly configured.",
|
|
"PRE": "None.",
|
|
"POST": "Returns True if ADFS client is registered, False otherwise.",
|
|
"RETURN": "bool - Configuration status."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 38
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 38
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
}
|
|
},
|
|
{
|
|
"name": "backend.src.core.auth.logger",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 32,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"SEMANTICS": "auth, logger, audit, security",
|
|
"PURPOSE": "Audit logging for security-related events.",
|
|
"LAYER": "Core",
|
|
"INVARIANT": "Must not log sensitive data like passwords or full tokens."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "USES",
|
|
"target": "backend.src.core.logger.belief_scope"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "log_security_event",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 16,
|
|
"end_line": 30,
|
|
"tags": {
|
|
"PURPOSE": "Logs a security-related event for audit trails.",
|
|
"PRE": "event_type and username are strings.",
|
|
"POST": "Security event is written to the application log.",
|
|
"PARAM": "details (dict) - Additional non-sensitive metadata."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "backend.src.core.auth.security",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 42,
|
|
"tags": {
|
|
"SEMANTICS": "security, password, hashing, bcrypt",
|
|
"PURPOSE": "Utility for password hashing and verification using Passlib.",
|
|
"LAYER": "Core",
|
|
"INVARIANT": "Uses bcrypt for hashing with standard work factor."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "passlib"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "pwd_context",
|
|
"type": "Variable",
|
|
"tier": "STANDARD",
|
|
"start_line": 14,
|
|
"end_line": 17,
|
|
"tags": {
|
|
"PURPOSE": "Passlib CryptContext for password management."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "verify_password",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 19,
|
|
"end_line": 29,
|
|
"tags": {
|
|
"PURPOSE": "Verifies a plain password against a hashed password.",
|
|
"PRE": "plain_password is a string, hashed_password is a bcrypt hash.",
|
|
"POST": "Returns True if password matches, False otherwise.",
|
|
"PARAM": "hashed_password (str) - The stored hash.",
|
|
"RETURN": "bool - Verification result."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 19
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 19
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "get_password_hash",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 31,
|
|
"end_line": 40,
|
|
"tags": {
|
|
"PURPOSE": "Generates a bcrypt hash for a plain password.",
|
|
"PRE": "password is a string.",
|
|
"POST": "Returns a secure bcrypt hash string.",
|
|
"PARAM": "password (str) - The password to hash.",
|
|
"RETURN": "str - The generated hash."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 31
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 31
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
}
|
|
},
|
|
{
|
|
"name": "backend.src.core.auth.repository",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 123,
|
|
"tags": {
|
|
"SEMANTICS": "auth, repository, database, user, role",
|
|
"PURPOSE": "Data access layer for authentication-related entities.",
|
|
"LAYER": "Core",
|
|
"INVARIANT": "All database operations must be performed within a session."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "sqlalchemy"
|
|
},
|
|
{
|
|
"type": "USES",
|
|
"target": "backend.src.models.auth"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "AuthRepository",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 18,
|
|
"end_line": 121,
|
|
"tags": {
|
|
"PURPOSE": "Encapsulates database operations for authentication."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "__init__",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 21,
|
|
"end_line": 26,
|
|
"tags": {
|
|
"PURPOSE": "Initializes the repository with a database session.",
|
|
"PARAM": "db (Session) - SQLAlchemy session."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 21
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 21
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 21
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 21
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 21
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 21
|
|
}
|
|
],
|
|
"score": 0.26666666666666655
|
|
}
|
|
},
|
|
{
|
|
"name": "get_user_by_username",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 28,
|
|
"end_line": 37,
|
|
"tags": {
|
|
"PURPOSE": "Retrieves a user by their username.",
|
|
"PRE": "username is a string.",
|
|
"POST": "Returns User object if found, else None.",
|
|
"PARAM": "username (str) - The username to search for.",
|
|
"RETURN": "Optional[User] - The found user or None."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_user_by_id",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 39,
|
|
"end_line": 48,
|
|
"tags": {
|
|
"PURPOSE": "Retrieves a user by their unique ID.",
|
|
"PRE": "user_id is a valid UUID string.",
|
|
"POST": "Returns User object if found, else None.",
|
|
"PARAM": "user_id (str) - The user's unique identifier.",
|
|
"RETURN": "Optional[User] - The found user or None."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_role_by_name",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 50,
|
|
"end_line": 59,
|
|
"tags": {
|
|
"PURPOSE": "Retrieves a role by its name.",
|
|
"PRE": "name is a string.",
|
|
"POST": "Returns Role object if found, else None.",
|
|
"PARAM": "name (str) - The role name to search for.",
|
|
"RETURN": "Optional[Role] - The found role or None."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "update_last_login",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 61,
|
|
"end_line": 73,
|
|
"tags": {
|
|
"PURPOSE": "Updates the last_login timestamp for a user.",
|
|
"PRE": "user object is a valid User instance.",
|
|
"POST": "User's last_login is updated in the database.",
|
|
"SIDE_EFFECT": "Commits the transaction.",
|
|
"PARAM": "user (User) - The user to update."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_role_by_id",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 75,
|
|
"end_line": 84,
|
|
"tags": {
|
|
"PURPOSE": "Retrieves a role by its unique ID.",
|
|
"PRE": "role_id is a string.",
|
|
"POST": "Returns Role object if found, else None.",
|
|
"PARAM": "role_id (str) - The role's unique identifier.",
|
|
"RETURN": "Optional[Role] - The found role or None."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_permission_by_id",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 86,
|
|
"end_line": 95,
|
|
"tags": {
|
|
"PURPOSE": "Retrieves a permission by its unique ID.",
|
|
"PRE": "perm_id is a string.",
|
|
"POST": "Returns Permission object if found, else None.",
|
|
"PARAM": "perm_id (str) - The permission's unique identifier.",
|
|
"RETURN": "Optional[Permission] - The found permission or None."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_permission_by_resource_action",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 97,
|
|
"end_line": 110,
|
|
"tags": {
|
|
"PURPOSE": "Retrieves a permission by resource and action.",
|
|
"PRE": "resource and action are strings.",
|
|
"POST": "Returns Permission object if found, else None.",
|
|
"PARAM": "action (str) - The action name.",
|
|
"RETURN": "Optional[Permission] - The found permission or None."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "list_permissions",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 112,
|
|
"end_line": 119,
|
|
"tags": {
|
|
"PURPOSE": "Lists all available permissions.",
|
|
"POST": "Returns a list of all Permission objects.",
|
|
"RETURN": "List[Permission] - List of permissions."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 112
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 112
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 112
|
|
}
|
|
],
|
|
"score": 0.6333333333333333
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 18
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 18
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
}
|
|
},
|
|
{
|
|
"name": "test_auth",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 179,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"PURPOSE": "Unit tests for authentication module",
|
|
"LAYER": "Domain"
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "VERIFIES",
|
|
"target": "src.core.auth"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "db_session",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 33,
|
|
"end_line": 33,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "auth_service",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 47,
|
|
"end_line": 47,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "auth_repo",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 52,
|
|
"end_line": 52,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_create_user",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 56,
|
|
"end_line": 56,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_authenticate_user",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 75,
|
|
"end_line": 75,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_create_session",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 101,
|
|
"end_line": 101,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_role_permission_association",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 120,
|
|
"end_line": 120,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_user_role_association",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 140,
|
|
"end_line": 140,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_ad_group_mapping",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 162,
|
|
"end_line": 162,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @SEMANTICS (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
}
|
|
},
|
|
{
|
|
"name": "backend.core.utils.fileio",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 487,
|
|
"tags": {
|
|
"SEMANTICS": "file, io, zip, yaml, temp, archive, utility",
|
|
"PURPOSE": "\u041f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u0430\u0431\u043e\u0440 \u0443\u0442\u0438\u043b\u0438\u0442 \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432\u044b\u043c\u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u043c\u0438, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c\u0438 \u0444\u0430\u0439\u043b\u0430\u043c\u0438, \u0430\u0440\u0445\u0438\u0432\u0430\u043c\u0438 ZIP, \u0444\u0430\u0439\u043b\u0430\u043c\u0438 YAML \u0438 \u043e\u0447\u0438\u0441\u0442\u043a\u0443 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0439.",
|
|
"LAYER": "Infra",
|
|
"PUBLIC_API": "create_temp_file, remove_empty_directories, read_dashboard_from_disk, calculate_crc32, RetentionPolicy, archive_exports, save_and_unpack_dashboard, update_yamls, create_dashboard_export, sanitize_filename, get_filename_from_headers, consolidate_archive_folders"
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "backend.src.core.logger"
|
|
},
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "pyyaml"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "InvalidZipFormatError",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 25,
|
|
"end_line": 29,
|
|
"tags": {
|
|
"PURPOSE": "Exception raised when a file is not a valid ZIP archive."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 25
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 25
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
},
|
|
{
|
|
"name": "create_temp_file",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 31,
|
|
"end_line": 70,
|
|
"tags": {
|
|
"PURPOSE": "\u041a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u043d\u044b\u0439 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u0438\u043b\u0438 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0441 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435\u043c.",
|
|
"PRE": "suffix \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u043e\u0439, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0449\u0435\u0439 \u0442\u0438\u043f \u0440\u0435\u0441\u0443\u0440\u0441\u0430.",
|
|
"POST": "\u0412\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u0440\u0435\u0441\u0443\u0440\u0441 \u0441\u043e\u0437\u0434\u0430\u043d \u0438 \u043f\u0443\u0442\u044c \u043a \u043d\u0435\u043c\u0443 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0435\u043d; \u0440\u0435\u0441\u0443\u0440\u0441 \u0443\u0434\u0430\u043b\u0435\u043d \u043f\u043e\u0441\u043b\u0435 \u0432\u044b\u0445\u043e\u0434\u0430 \u0438\u0437 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430.",
|
|
"PARAM": "mode (str) - \u0420\u0435\u0436\u0438\u043c \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 \u0444\u0430\u0439\u043b (e.g., 'wb').",
|
|
"YIELDS": "Path - \u041f\u0443\u0442\u044c \u043a \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u043c\u0443 \u0440\u0435\u0441\u0443\u0440\u0441\u0443.",
|
|
"THROW": "IOError - \u041f\u0440\u0438 \u043e\u0448\u0438\u0431\u043a\u0430\u0445 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0440\u0435\u0441\u0443\u0440\u0441\u0430."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "remove_empty_directories",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 72,
|
|
"end_line": 95,
|
|
"tags": {
|
|
"PURPOSE": "\u0420\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e \u0443\u0434\u0430\u043b\u044f\u0435\u0442 \u0432\u0441\u0435 \u043f\u0443\u0441\u0442\u044b\u0435 \u043f\u043e\u0434\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0443\u0442\u0438.",
|
|
"PRE": "root_dir \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043f\u0443\u0442\u0435\u043c \u043a \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438.",
|
|
"POST": "\u0412\u0441\u0435 \u043f\u0443\u0441\u0442\u044b\u0435 \u043f\u043e\u0434\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u044b, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0435\u043d\u043e \u0438\u0445 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e.",
|
|
"PARAM": "root_dir (str) - \u041f\u0443\u0442\u044c \u043a \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0434\u043b\u044f \u043e\u0447\u0438\u0441\u0442\u043a\u0438.",
|
|
"RETURN": "int - \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0445 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0439."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "read_dashboard_from_disk",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 97,
|
|
"end_line": 113,
|
|
"tags": {
|
|
"PURPOSE": "\u0427\u0438\u0442\u0430\u0435\u0442 \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0444\u0430\u0439\u043b\u0430 \u0441 \u0434\u0438\u0441\u043a\u0430.",
|
|
"PRE": "file_path \u0434\u043e\u043b\u0436\u0435\u043d \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043d\u0430 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0444\u0430\u0439\u043b.",
|
|
"POST": "\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0431\u0430\u0439\u0442\u044b \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u0438 \u0438\u043c\u044f \u0444\u0430\u0439\u043b\u0430.",
|
|
"PARAM": "file_path (str) - \u041f\u0443\u0442\u044c \u043a \u0444\u0430\u0439\u043b\u0443.",
|
|
"RETURN": "Tuple[bytes, str] - \u041a\u043e\u0440\u0442\u0435\u0436 (\u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435, \u0438\u043c\u044f \u0444\u0430\u0439\u043b\u0430).",
|
|
"THROW": "FileNotFoundError - \u0415\u0441\u043b\u0438 \u0444\u0430\u0439\u043b \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "calculate_crc32",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 115,
|
|
"end_line": 127,
|
|
"tags": {
|
|
"PURPOSE": "\u0412\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u0443\u044e \u0441\u0443\u043c\u043c\u0443 CRC32 \u0434\u043b\u044f \u0444\u0430\u0439\u043b\u0430.",
|
|
"PRE": "file_path \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u043c Path \u043a \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u043c\u0443 \u0444\u0430\u0439\u043b\u0443.",
|
|
"POST": "\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 8-\u0437\u043d\u0430\u0447\u043d\u0443\u044e hex-\u0441\u0442\u0440\u043e\u043a\u0443 CRC32.",
|
|
"PARAM": "file_path (Path) - \u041f\u0443\u0442\u044c \u043a \u0444\u0430\u0439\u043b\u0443.",
|
|
"RETURN": "str - 8-\u0437\u043d\u0430\u0447\u043d\u043e\u0435 \u0448\u0435\u0441\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u0435\u0440\u0438\u0447\u043d\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 CRC32.",
|
|
"THROW": "IOError - \u041f\u0440\u0438 \u043e\u0448\u0438\u0431\u043a\u0430\u0445 \u0447\u0442\u0435\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u0430."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "RetentionPolicy",
|
|
"type": "DataClass",
|
|
"tier": "STANDARD",
|
|
"start_line": 130,
|
|
"end_line": 137,
|
|
"tags": {
|
|
"PURPOSE": "\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0443 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0430\u0440\u0445\u0438\u0432\u043e\u0432 (\u0435\u0436\u0435\u0434\u043d\u0435\u0432\u043d\u044b\u0435, \u0435\u0436\u0435\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u044b\u0435, \u0435\u0436\u0435\u043c\u0435\u0441\u044f\u0447\u043d\u044b\u0435)."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "archive_exports",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 140,
|
|
"end_line": 221,
|
|
"tags": {
|
|
"PURPOSE": "\u0423\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0430\u0440\u0445\u0438\u0432\u043e\u043c \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044f \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0443 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0438 \u0434\u0435\u0434\u0443\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u044e.",
|
|
"PRE": "output_dir \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043f\u0443\u0442\u0435\u043c \u043a \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438.",
|
|
"POST": "\u0421\u0442\u0430\u0440\u044b\u0435 \u0438\u043b\u0438 \u0434\u0443\u0431\u043b\u0438\u0440\u0443\u044e\u0449\u0438\u0435\u0441\u044f \u0430\u0440\u0445\u0438\u0432\u044b \u0443\u0434\u0430\u043b\u0435\u043d\u044b \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0435.",
|
|
"PARAM": "deduplicate (bool) - \u0424\u043b\u0430\u0433 \u0434\u043b\u044f \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u043e\u0432 \u043f\u043e CRC32."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "CALLS",
|
|
"target": "apply_retention_policy"
|
|
},
|
|
{
|
|
"type": "CALLS",
|
|
"target": "calculate_crc32"
|
|
}
|
|
],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "apply_retention_policy",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 223,
|
|
"end_line": 256,
|
|
"tags": {
|
|
"PURPOSE": "(Helper) \u041f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0443 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043a \u0441\u043f\u0438\u0441\u043a\u0443 \u0444\u0430\u0439\u043b\u043e\u0432, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044f \u0442\u0435, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c.",
|
|
"PRE": "files_with_dates is a list of (Path, date) tuples.",
|
|
"POST": "Returns a set of files to keep.",
|
|
"PARAM": "policy (RetentionPolicy) - \u041f\u043e\u043b\u0438\u0442\u0438\u043a\u0430 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f.",
|
|
"RETURN": "set - \u041c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043f\u0443\u0442\u0435\u0439 \u043a \u0444\u0430\u0439\u043b\u0430\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u044b."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "save_and_unpack_dashboard",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 258,
|
|
"end_line": 287,
|
|
"tags": {
|
|
"PURPOSE": "\u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 ZIP-\u0430\u0440\u0445\u0438\u0432\u0430 \u043d\u0430 \u0434\u0438\u0441\u043a \u0438 \u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u0435\u0442 \u0435\u0433\u043e.",
|
|
"PRE": "zip_content \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0431\u0430\u0439\u0442\u0430\u043c\u0438 \u0432\u0430\u043b\u0438\u0434\u043d\u043e\u0433\u043e ZIP-\u0430\u0440\u0445\u0438\u0432\u0430.",
|
|
"POST": "ZIP-\u0444\u0430\u0439\u043b \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d, \u0438 \u0435\u0441\u043b\u0438 unpack=True, \u043e\u043d \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0430\u043d \u0432 output_dir.",
|
|
"PARAM": "original_filename (Optional[str]) - \u0418\u0441\u0445\u043e\u0434\u043d\u043e\u0435 \u0438\u043c\u044f \u0444\u0430\u0439\u043b\u0430 \u0434\u043b\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f.",
|
|
"RETURN": "Tuple[Path, Optional[Path]] - \u041f\u0443\u0442\u044c \u043a ZIP-\u0444\u0430\u0439\u043b\u0443 \u0438, \u0435\u0441\u043b\u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u043e, \u043f\u0443\u0442\u044c \u043a \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0441 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u043a\u043e\u0439.",
|
|
"THROW": "InvalidZipFormatError - \u041f\u0440\u0438 \u043e\u0448\u0438\u0431\u043a\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u0430 ZIP."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "update_yamls",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 289,
|
|
"end_line": 309,
|
|
"tags": {
|
|
"PURPOSE": "\u041e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0432 YAML-\u0444\u0430\u0439\u043b\u0430\u0445, \u0437\u0430\u043c\u0435\u043d\u044f\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438\u043b\u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044f regex.",
|
|
"PRE": "path \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0435\u0439.",
|
|
"POST": "\u0412\u0441\u0435 YAML \u0444\u0430\u0439\u043b\u044b \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u044b \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u044b\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c.",
|
|
"THROW": "FileNotFoundError - \u0415\u0441\u043b\u0438 `path` \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442.",
|
|
"PARAM": "replace_string (Optional[LiteralString]) - \u0421\u0442\u0440\u043e\u043a\u0430 \u0434\u043b\u044f \u0437\u0430\u043c\u0435\u043d\u044b."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "CALLS",
|
|
"target": "_update_yaml_file"
|
|
}
|
|
],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "_update_yaml_file",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 311,
|
|
"end_line": 376,
|
|
"tags": {
|
|
"PURPOSE": "(Helper) \u041e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442 \u043e\u0434\u0438\u043d YAML \u0444\u0430\u0439\u043b.",
|
|
"PRE": "file_path \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u043c Path \u043a \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u043c\u0443 YAML \u0444\u0430\u0439\u043b\u0443.",
|
|
"POST": "\u0424\u0430\u0439\u043b \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u044b\u043c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f\u043c \u0438\u043b\u0438 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e\u043c\u0443 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044e.",
|
|
"PARAM": "replace_string (Optional[str]) - \u0417\u0430\u043c\u0435\u043d\u0430."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "replacer",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 358,
|
|
"end_line": 367,
|
|
"tags": {
|
|
"PURPOSE": "\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0437\u0430\u043c\u0435\u043d\u044b, \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044e\u0449\u0430\u044f \u043a\u0430\u0432\u044b\u0447\u043a\u0438 \u0435\u0441\u043b\u0438 \u043e\u043d\u0438 \u0431\u044b\u043b\u0438.",
|
|
"PRE": "match \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u043c \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u044f \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e\u0433\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f.",
|
|
"POST": "\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0441\u0442\u0440\u043e\u043a\u0443 \u0441 \u043d\u043e\u0432\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c, \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044f \u043f\u0440\u0435\u0444\u0438\u043a\u0441 \u0438 \u043a\u0430\u0432\u044b\u0447\u043a\u0438."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 358
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 358
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 358
|
|
}
|
|
],
|
|
"score": 0.7
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "create_dashboard_export",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 378,
|
|
"end_line": 404,
|
|
"tags": {
|
|
"PURPOSE": "\u0421\u043e\u0437\u0434\u0430\u0435\u0442 ZIP-\u0430\u0440\u0445\u0438\u0432 \u0438\u0437 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0445 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u043f\u0443\u0442\u0435\u0439.",
|
|
"PRE": "source_paths \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043f\u0443\u0442\u0438.",
|
|
"POST": "ZIP-\u0430\u0440\u0445\u0438\u0432 \u0441\u043e\u0437\u0434\u0430\u043d \u043f\u043e \u043f\u0443\u0442\u0438 zip_path.",
|
|
"PARAM": "exclude_extensions (Optional[List[str]]) - \u0421\u043f\u0438\u0441\u043e\u043a \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439 \u0434\u043b\u044f \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f.",
|
|
"RETURN": "bool - `True` \u043f\u0440\u0438 \u0443\u0441\u043f\u0435\u0445\u0435, `False` \u043f\u0440\u0438 \u043e\u0448\u0438\u0431\u043a\u0435."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "sanitize_filename",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 406,
|
|
"end_line": 415,
|
|
"tags": {
|
|
"PURPOSE": "\u041e\u0447\u0438\u0449\u0430\u0435\u0442 \u0441\u0442\u0440\u043e\u043a\u0443 \u043e\u0442 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432, \u043d\u0435\u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0445 \u0432 \u0438\u043c\u0435\u043d\u0430\u0445 \u0444\u0430\u0439\u043b\u043e\u0432.",
|
|
"PRE": "filename \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u043e\u0439.",
|
|
"POST": "\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0441\u0442\u0440\u043e\u043a\u0443 \u0431\u0435\u0437 \u0441\u043f\u0435\u0446\u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432.",
|
|
"PARAM": "filename (str) - \u0418\u0441\u0445\u043e\u0434\u043d\u043e\u0435 \u0438\u043c\u044f \u0444\u0430\u0439\u043b\u0430.",
|
|
"RETURN": "str - \u041e\u0447\u0438\u0449\u0435\u043d\u043d\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_filename_from_headers",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 417,
|
|
"end_line": 429,
|
|
"tags": {
|
|
"PURPOSE": "\u0418\u0437\u0432\u043b\u0435\u043a\u0430\u0435\u0442 \u0438\u043c\u044f \u0444\u0430\u0439\u043b\u0430 \u0438\u0437 HTTP \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 'Content-Disposition'.",
|
|
"PRE": "headers \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0441\u043b\u043e\u0432\u0430\u0440\u0435\u043c \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u0432.",
|
|
"POST": "\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0438\u043c\u044f \u0444\u0430\u0439\u043b\u0430 \u0438\u043b\u0438 None, \u0435\u0441\u043b\u0438 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442.",
|
|
"PARAM": "headers (dict) - \u0421\u043b\u043e\u0432\u0430\u0440\u044c HTTP \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u0432.",
|
|
"RETURN": "Optional[str] - \u0418\u043c\u044f \u0444\u0430\u0439\u043b\u0430 or `None`."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "consolidate_archive_folders",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 431,
|
|
"end_line": 485,
|
|
"tags": {
|
|
"PURPOSE": "\u041a\u043e\u043d\u0441\u043e\u043b\u0438\u0434\u0438\u0440\u0443\u0435\u0442 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0430\u0440\u0445\u0438\u0432\u043e\u0432 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043e\u0431\u0449\u0435\u0433\u043e \u0441\u043b\u0430\u0433\u0430 \u0432 \u0438\u043c\u0435\u043d\u0438.",
|
|
"PRE": "root_directory \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u043c Path \u043a \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438.",
|
|
"POST": "\u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0441 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u043c \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u043e\u043c \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u044b \u0432 \u043e\u0434\u043d\u0443.",
|
|
"THROW": "TypeError, ValueError - \u0415\u0441\u043b\u0438 `root_directory` \u043d\u0435\u0432\u0430\u043b\u0438\u0434\u0435\u043d.",
|
|
"PARAM": "root_directory (Path) - \u041a\u043e\u0440\u043d\u0435\u0432\u0430\u044f \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0434\u043b\u044f \u043a\u043e\u043d\u0441\u043e\u043b\u0438\u0434\u0430\u0446\u0438\u0438."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
}
|
|
},
|
|
{
|
|
"name": "backend.core.utils.network",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 397,
|
|
"tags": {
|
|
"SEMANTICS": "network, http, client, api, requests, session, authentication",
|
|
"PURPOSE": "\u0418\u043d\u043a\u0430\u043f\u0441\u0443\u043b\u0438\u0440\u0443\u0435\u0442 \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u0443\u044e HTTP-\u043b\u043e\u0433\u0438\u043a\u0443 \u0434\u043b\u044f \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441 Superset API, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e, \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0435\u0441\u0441\u0438\u0435\u0439, retry-\u043b\u043e\u0433\u0438\u043a\u0443 \u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u043e\u0448\u0438\u0431\u043e\u043a.",
|
|
"LAYER": "Infra",
|
|
"PUBLIC_API": "APIClient"
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "backend.src.core.logger"
|
|
},
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "requests"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "SupersetAPIError",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 22,
|
|
"end_line": 34,
|
|
"tags": {
|
|
"PURPOSE": "Base exception for all Superset API related errors."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "__init__",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 25,
|
|
"end_line": 33,
|
|
"tags": {
|
|
"PURPOSE": "Initializes the exception with a message and context.",
|
|
"PRE": "message is a string, context is a dict.",
|
|
"POST": "Exception is initialized with context."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 22
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 22
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
},
|
|
{
|
|
"name": "AuthenticationError",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 36,
|
|
"end_line": 47,
|
|
"tags": {
|
|
"PURPOSE": "Exception raised when authentication fails."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "__init__",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 39,
|
|
"end_line": 46,
|
|
"tags": {
|
|
"PURPOSE": "Initializes the authentication error.",
|
|
"PRE": "message is a string, context is a dict.",
|
|
"POST": "AuthenticationError is initialized."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 36
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 36
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
},
|
|
{
|
|
"name": "PermissionDeniedError",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 49,
|
|
"end_line": 60,
|
|
"tags": {
|
|
"PURPOSE": "Exception raised when access is denied."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "__init__",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 52,
|
|
"end_line": 59,
|
|
"tags": {
|
|
"PURPOSE": "Initializes the permission denied error.",
|
|
"PRE": "message is a string, context is a dict.",
|
|
"POST": "PermissionDeniedError is initialized."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 49
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 49
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
},
|
|
{
|
|
"name": "DashboardNotFoundError",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 62,
|
|
"end_line": 73,
|
|
"tags": {
|
|
"PURPOSE": "Exception raised when a dashboard cannot be found."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "__init__",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 65,
|
|
"end_line": 72,
|
|
"tags": {
|
|
"PURPOSE": "Initializes the not found error with resource ID.",
|
|
"PRE": "resource_id is provided.",
|
|
"POST": "DashboardNotFoundError is initialized."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 62
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 62
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
},
|
|
{
|
|
"name": "NetworkError",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 75,
|
|
"end_line": 87,
|
|
"tags": {
|
|
"PURPOSE": "Exception raised when a network level error occurs."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "__init__",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 78,
|
|
"end_line": 86,
|
|
"tags": {
|
|
"PURPOSE": "Initializes the network error.",
|
|
"PRE": "message is a string.",
|
|
"POST": "NetworkError is initialized."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 75
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 75
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
},
|
|
{
|
|
"name": "APIClient",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 89,
|
|
"end_line": 395,
|
|
"tags": {
|
|
"PURPOSE": "\u0418\u043d\u043a\u0430\u043f\u0441\u0443\u043b\u0438\u0440\u0443\u0435\u0442 HTTP-\u043b\u043e\u0433\u0438\u043a\u0443 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 API, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0441\u0435\u0441\u0441\u0438\u0438, \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e, \u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "__init__",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 94,
|
|
"end_line": 111,
|
|
"tags": {
|
|
"PURPOSE": "\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 API \u043a\u043b\u0438\u0435\u043d\u0442 \u0441 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0435\u0439, \u0441\u0435\u0441\u0441\u0438\u0435\u0439 \u0438 \u043b\u043e\u0433\u0433\u0435\u0440\u043e\u043c.",
|
|
"PARAM": "timeout (int) - \u0422\u0430\u0439\u043c\u0430\u0443\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432.",
|
|
"PRE": "config must contain 'base_url' and 'auth'.",
|
|
"POST": "APIClient instance is initialized with a session."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "_init_session",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 113,
|
|
"end_line": 157,
|
|
"tags": {
|
|
"PURPOSE": "\u0421\u043e\u0437\u0434\u0430\u0435\u0442 \u0438 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442 `requests.Session` \u0441 retry-\u043b\u043e\u0433\u0438\u043a\u043e\u0439.",
|
|
"PRE": "self.request_settings must be initialized.",
|
|
"POST": "Returns a configured requests.Session instance.",
|
|
"RETURN": "requests.Session - \u041d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u0430\u044f \u0441\u0435\u0441\u0441\u0438\u044f."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "authenticate",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 159,
|
|
"end_line": 198,
|
|
"tags": {
|
|
"PURPOSE": "\u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e \u0432 Superset API \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 access \u0438 CSRF \u0442\u043e\u043a\u0435\u043d\u044b.",
|
|
"PRE": "self.auth and self.base_url must be valid.",
|
|
"POST": "`self._tokens` \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d, `self._authenticated` \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u0432 `True`.",
|
|
"RETURN": "Dict[str, str] - \u0421\u043b\u043e\u0432\u0430\u0440\u044c \u0441 \u0442\u043e\u043a\u0435\u043d\u0430\u043c\u0438.",
|
|
"THROW": "AuthenticationError, NetworkError - \u043f\u0440\u0438 \u043e\u0448\u0438\u0431\u043a\u0430\u0445."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "headers",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 201,
|
|
"end_line": 215,
|
|
"tags": {
|
|
"PURPOSE": "\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 HTTP-\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438 \u0434\u043b\u044f \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432.",
|
|
"PRE": "APIClient is initialized and authenticated or can be authenticated.",
|
|
"POST": "Returns headers including auth tokens."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "request",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 217,
|
|
"end_line": 242,
|
|
"tags": {
|
|
"PURPOSE": "\u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0439 HTTP-\u0437\u0430\u043f\u0440\u043e\u0441 \u043a API.",
|
|
"PARAM": "raw_response (bool) - \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c \u043b\u0438 \u0441\u044b\u0440\u043e\u0439 \u043e\u0442\u0432\u0435\u0442.",
|
|
"PRE": "method and endpoint must be strings.",
|
|
"POST": "Returns response content or raw Response object.",
|
|
"RETURN": "`requests.Response` \u0435\u0441\u043b\u0438 `raw_response=True`, \u0438\u043d\u0430\u0447\u0435 `dict`.",
|
|
"THROW": "SupersetAPIError, NetworkError \u0438 \u0438\u0445 \u043f\u043e\u0434\u043a\u043b\u0430\u0441\u0441\u044b."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "_handle_http_error",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 244,
|
|
"end_line": 262,
|
|
"tags": {
|
|
"PURPOSE": "(Helper) \u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 HTTP \u043e\u0448\u0438\u0431\u043a\u0438 \u0432 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0435 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f.",
|
|
"PARAM": "endpoint (str) - \u042d\u043d\u0434\u043f\u043e\u0438\u043d\u0442.",
|
|
"PRE": "e must be a valid HTTPError with a response.",
|
|
"POST": "Raises a specific SupersetAPIError or subclass."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "_handle_network_error",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 264,
|
|
"end_line": 279,
|
|
"tags": {
|
|
"PURPOSE": "(Helper) \u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u0441\u0435\u0442\u0435\u0432\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u0432 `NetworkError`.",
|
|
"PARAM": "url (str) - URL.",
|
|
"PRE": "e must be a RequestException.",
|
|
"POST": "Raises a NetworkError."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "upload_file",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 281,
|
|
"end_line": 310,
|
|
"tags": {
|
|
"PURPOSE": "\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u0444\u0430\u0439\u043b \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440 \u0447\u0435\u0440\u0435\u0437 multipart/form-data.",
|
|
"PARAM": "timeout (Optional[int]) - \u0422\u0430\u0439\u043c\u0430\u0443\u0442.",
|
|
"PRE": "file_info must contain 'file_obj' and 'file_name'.",
|
|
"POST": "File is uploaded and response returned.",
|
|
"RETURN": "\u041e\u0442\u0432\u0435\u0442 API \u0432 \u0432\u0438\u0434\u0435 \u0441\u043b\u043e\u0432\u0430\u0440\u044f.",
|
|
"THROW": "SupersetAPIError, NetworkError, TypeError."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "_perform_upload",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 312,
|
|
"end_line": 338,
|
|
"tags": {
|
|
"PURPOSE": "(Helper) \u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 POST \u0437\u0430\u043f\u0440\u043e\u0441 \u0441 \u0444\u0430\u0439\u043b\u043e\u043c.",
|
|
"PARAM": "timeout (Optional[int]) - \u0422\u0430\u0439\u043c\u0430\u0443\u0442.",
|
|
"PRE": "url, files, and headers must be provided.",
|
|
"POST": "POST request is performed and JSON response returned.",
|
|
"RETURN": "Dict - \u041e\u0442\u0432\u0435\u0442."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "fetch_paginated_count",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 340,
|
|
"end_line": 352,
|
|
"tags": {
|
|
"PURPOSE": "\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u043b\u044f \u043f\u0430\u0433\u0438\u043d\u0430\u0446\u0438\u0438.",
|
|
"PARAM": "count_field (str) - \u041f\u043e\u043b\u0435 \u0441 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c.",
|
|
"PRE": "query_params must be a dictionary.",
|
|
"POST": "Returns total count of items.",
|
|
"RETURN": "int - \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "fetch_paginated_data",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 354,
|
|
"end_line": 393,
|
|
"tags": {
|
|
"PURPOSE": "\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u043e \u0432\u0441\u0435\u0445 \u0441\u0442\u0440\u0430\u043d\u0438\u0446 \u043f\u0430\u0433\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u044d\u043d\u0434\u043f\u043e\u0438\u043d\u0442\u0430.",
|
|
"PARAM": "pagination_options (Dict[str, Any]) - \u041e\u043f\u0446\u0438\u0438 \u043f\u0430\u0433\u0438\u043d\u0430\u0446\u0438\u0438.",
|
|
"PRE": "pagination_options must contain 'base_query', 'results_field'. 'total_count' is optional.",
|
|
"POST": "Returns all items across all pages.",
|
|
"RETURN": "List[Any] - \u0421\u043f\u0438\u0441\u043e\u043a \u0434\u0430\u043d\u043d\u044b\u0445."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 89
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 89
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
},
|
|
{
|
|
"name": "init_poolmanager",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 124,
|
|
"end_line": 124,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
}
|
|
},
|
|
{
|
|
"name": "backend.src.core.utils.matching",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 55,
|
|
"tags": {
|
|
"SEMANTICS": "fuzzy, matching, rapidfuzz, database, mapping",
|
|
"PURPOSE": "Provides utility functions for fuzzy matching database names.",
|
|
"LAYER": "Core",
|
|
"INVARIANT": "Confidence scores are returned as floats between 0.0 and 1.0."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "rapidfuzz"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "suggest_mappings",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 15,
|
|
"end_line": 53,
|
|
"tags": {
|
|
"PURPOSE": "Suggests mappings between source and target databases using fuzzy matching.",
|
|
"PRE": "source_databases and target_databases are lists of dictionaries with 'uuid' and 'database_name'.",
|
|
"POST": "Returns a list of suggested mappings with confidence scores.",
|
|
"PARAM": "threshold (int) - Minimum confidence score (0-100).",
|
|
"RETURN": "List[Dict] - Suggested mappings."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 15
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 15
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
}
|
|
},
|
|
{
|
|
"name": "backend.core.utils.dataset_mapper",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 237,
|
|
"tags": {
|
|
"SEMANTICS": "dataset, mapping, postgresql, xlsx, superset",
|
|
"PURPOSE": "\u042d\u0442\u043e\u0442 \u043c\u043e\u0434\u0443\u043b\u044c \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0437\u0430 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445 (verbose_map) \u0432 \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0430\u0445 Superset, \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u044f \u0438\u0445 \u0438\u0437 PostgreSQL \u0438\u043b\u0438 XLSX-\u0444\u0430\u0439\u043b\u043e\u0432.",
|
|
"LAYER": "Domain",
|
|
"PUBLIC_API": "DatasetMapper"
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "backend.core.superset_client"
|
|
},
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "pandas"
|
|
},
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "psycopg2"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "DatasetMapper",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 18,
|
|
"end_line": 235,
|
|
"tags": {
|
|
"PURPOSE": "\u041a\u043b\u0430\u0441\u0441 \u0434\u043b\u044f \u043c\u0435\u043f\u043f\u0438\u043d\u0433\u0430 \u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f verbose_map \u0432 \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0430\u0445 Superset."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "__init__",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 21,
|
|
"end_line": 26,
|
|
"tags": {
|
|
"PURPOSE": "Initializes the mapper.",
|
|
"POST": "\u041e\u0431\u044a\u0435\u043a\u0442 DatasetMapper \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 21
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 21
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 21
|
|
}
|
|
],
|
|
"score": 0.6333333333333333
|
|
}
|
|
},
|
|
{
|
|
"name": "get_postgres_comments",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 28,
|
|
"end_line": 91,
|
|
"tags": {
|
|
"PURPOSE": "\u0418\u0437\u0432\u043b\u0435\u043a\u0430\u0435\u0442 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 \u043a \u043a\u043e\u043b\u043e\u043d\u043a\u0430\u043c \u0438\u0437 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0433\u043e \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 PostgreSQL.",
|
|
"PRE": "table_name \u0438 table_schema \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0430\u043c\u0438.",
|
|
"POST": "\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u043e\u0432\u0430\u0440\u044c, \u0433\u0434\u0435 \u043a\u043b\u044e\u0447\u0438 - \u0438\u043c\u0435\u043d\u0430 \u043a\u043e\u043b\u043e\u043d\u043e\u043a, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f - \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 \u0438\u0437 \u0411\u0414.",
|
|
"THROW": "Exception - \u041f\u0440\u0438 \u043e\u0448\u0438\u0431\u043a\u0430\u0445 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0438\u043b\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043a \u0411\u0414.",
|
|
"PARAM": "table_schema (str) - \u0421\u0445\u0435\u043c\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u044b.",
|
|
"RETURN": "Dict[str, str] - \u0421\u043b\u043e\u0432\u0430\u0440\u044c \u0441 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u043c\u0438 \u043a \u043a\u043e\u043b\u043e\u043d\u043a\u0430\u043c."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "load_excel_mappings",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 93,
|
|
"end_line": 111,
|
|
"tags": {
|
|
"PURPOSE": "\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u043c\u0435\u043f\u043f\u0438\u043d\u0433\u0438 'column_name' -> 'column_comment' \u0438\u0437 XLSX \u0444\u0430\u0439\u043b\u0430.",
|
|
"PRE": "file_path \u0434\u043e\u043b\u0436\u0435\u043d \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043d\u0430 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 XLSX \u0444\u0430\u0439\u043b.",
|
|
"POST": "\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u043e\u0432\u0430\u0440\u044c \u0441 \u043c\u0435\u043f\u043f\u0438\u043d\u0433\u0430\u043c\u0438 \u0438\u0437 \u0444\u0430\u0439\u043b\u0430.",
|
|
"THROW": "Exception - \u041f\u0440\u0438 \u043e\u0448\u0438\u0431\u043a\u0430\u0445 \u0447\u0442\u0435\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u0430 \u0438\u043b\u0438 \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0430.",
|
|
"PARAM": "file_path (str) - \u041f\u0443\u0442\u044c \u043a XLSX \u0444\u0430\u0439\u043b\u0443.",
|
|
"RETURN": "Dict[str, str] - \u0421\u043b\u043e\u0432\u0430\u0440\u044c \u0441 \u043c\u0435\u043f\u043f\u0438\u043d\u0433\u0430\u043c\u0438."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "run_mapping",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 113,
|
|
"end_line": 234,
|
|
"tags": {
|
|
"PURPOSE": "\u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043c\u0435\u043f\u043f\u0438\u043d\u0433\u0430 \u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f verbose_map \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0430 \u0432 Superset.",
|
|
"PRE": "dataset_id \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c ID \u0432 Superset.",
|
|
"POST": "\u0415\u0441\u043b\u0438 \u043d\u0430\u0439\u0434\u0435\u043d\u044b \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f, \u0434\u0430\u0442\u0430\u0441\u0435\u0442 \u0432 Superset \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d \u0447\u0435\u0440\u0435\u0437 API.",
|
|
"PARAM": "table_schema (Optional[str]) - \u0421\u0445\u0435\u043c\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0432 PostgreSQL."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "CALLS",
|
|
"target": "self.get_postgres_comments"
|
|
},
|
|
{
|
|
"type": "CALLS",
|
|
"target": "self.load_excel_mappings"
|
|
},
|
|
{
|
|
"type": "CALLS",
|
|
"target": "superset_client.get_dataset"
|
|
},
|
|
{
|
|
"type": "CALLS",
|
|
"target": "superset_client.update_dataset"
|
|
}
|
|
],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 18
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 18
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
}
|
|
},
|
|
{
|
|
"name": "test_logger",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 228,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"PURPOSE": "Unit tests for logger module",
|
|
"LAYER": "Infra"
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "VERIFIES",
|
|
"target": "src.core.logger"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "test_belief_scope_logs_entry_action_exit_at_debug",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 24,
|
|
"end_line": 53,
|
|
"tags": {
|
|
"PURPOSE": "Test that belief_scope generates [ID][Entry], [ID][Action], and [ID][Exit] logs at DEBUG level.",
|
|
"PRE": "belief_scope is available. caplog fixture is used. Logger configured to DEBUG.",
|
|
"POST": "Logs are verified to contain Entry, Action, and Exit tags at DEBUG level."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_belief_scope_error_handling",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 56,
|
|
"end_line": 85,
|
|
"tags": {
|
|
"PURPOSE": "Test that belief_scope logs Coherence:Failed on exception.",
|
|
"PRE": "belief_scope is available. caplog fixture is used. Logger configured to DEBUG.",
|
|
"POST": "Logs are verified to contain Coherence:Failed tag."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_belief_scope_success_coherence",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 88,
|
|
"end_line": 114,
|
|
"tags": {
|
|
"PURPOSE": "Test that belief_scope logs Coherence:OK on success.",
|
|
"PRE": "belief_scope is available. caplog fixture is used. Logger configured to DEBUG.",
|
|
"POST": "Logs are verified to contain Coherence:OK tag."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_belief_scope_not_visible_at_info",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 117,
|
|
"end_line": 136,
|
|
"tags": {
|
|
"PURPOSE": "Test that belief_scope Entry/Exit/Coherence logs are NOT visible at INFO level.",
|
|
"PRE": "belief_scope is available. caplog fixture is used.",
|
|
"POST": "Entry/Exit/Coherence logs are not captured at INFO level."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_task_log_level_default",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 139,
|
|
"end_line": 147,
|
|
"tags": {
|
|
"PURPOSE": "Test that default task log level is INFO.",
|
|
"PRE": "None.",
|
|
"POST": "Default level is INFO."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_should_log_task_level",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 150,
|
|
"end_line": 161,
|
|
"tags": {
|
|
"PURPOSE": "Test that should_log_task_level correctly filters log levels.",
|
|
"PRE": "None.",
|
|
"POST": "Filtering works correctly for all level combinations."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_configure_logger_task_log_level",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 164,
|
|
"end_line": 188,
|
|
"tags": {
|
|
"PURPOSE": "Test that configure_logger updates task_log_level.",
|
|
"PRE": "LoggingConfig is available.",
|
|
"POST": "task_log_level is updated correctly."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_enable_belief_state_flag",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 191,
|
|
"end_line": 225,
|
|
"tags": {
|
|
"PURPOSE": "Test that enable_belief_state flag controls belief_scope logging.",
|
|
"PRE": "LoggingConfig is available. caplog fixture is used.",
|
|
"POST": "belief_scope logs are controlled by the flag."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @SEMANTICS (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
}
|
|
},
|
|
{
|
|
"name": "TaskLoggerModule",
|
|
"type": "Module",
|
|
"tier": "CRITICAL",
|
|
"start_line": 1,
|
|
"end_line": 167,
|
|
"tags": {
|
|
"SEMANTICS": "task, logger, context, plugin, attribution",
|
|
"PURPOSE": "Provides a dedicated logger for tasks with automatic source attribution.",
|
|
"LAYER": "Core",
|
|
"TIER": "CRITICAL",
|
|
"INVARIANT": "Each TaskLogger instance is bound to a specific task_id and default source."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "TaskManager, CALLS -> TaskManager._add_log"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "TaskLogger",
|
|
"type": "Class",
|
|
"tier": "CRITICAL",
|
|
"start_line": 13,
|
|
"end_line": 165,
|
|
"tags": {
|
|
"SEMANTICS": "logger, task, source, attribution",
|
|
"PURPOSE": "A wrapper around TaskManager._add_log that carries task_id and source context.",
|
|
"TIER": "CRITICAL",
|
|
"INVARIANT": "All log calls include the task_id and source.",
|
|
"UX_STATE": "Idle -> Logging -> (system records log)"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "__init__",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 33,
|
|
"end_line": 49,
|
|
"tags": {
|
|
"PURPOSE": "Initialize the TaskLogger with task context.",
|
|
"PRE": "add_log_fn is a callable that accepts (task_id, level, message, context, source, metadata).",
|
|
"POST": "TaskLogger is ready to log messages.",
|
|
"PARAM": "source (str) - Default source for logs (default: \"plugin\")."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "with_source",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 51,
|
|
"end_line": 64,
|
|
"tags": {
|
|
"PURPOSE": "Create a sub-logger with a different default source.",
|
|
"PRE": "source is a non-empty string.",
|
|
"POST": "Returns new TaskLogger with the same task_id but different source.",
|
|
"PARAM": "source (str) - New default source.",
|
|
"RETURN": "TaskLogger - New logger instance."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "_log",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 66,
|
|
"end_line": 89,
|
|
"tags": {
|
|
"PURPOSE": "Internal method to log a message at a given level.",
|
|
"PRE": "level is a valid log level string.",
|
|
"POST": "Log entry added via add_log_fn.",
|
|
"PARAM": "metadata (Optional[Dict]) - Additional structured data."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "debug",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 91,
|
|
"end_line": 103,
|
|
"tags": {
|
|
"PURPOSE": "Log a DEBUG level message.",
|
|
"PARAM": "metadata (Optional[Dict]) - Additional data."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 91
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 91
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 91
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 91
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 91
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 91
|
|
}
|
|
],
|
|
"score": 0.26666666666666655
|
|
}
|
|
},
|
|
{
|
|
"name": "info",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 105,
|
|
"end_line": 117,
|
|
"tags": {
|
|
"PURPOSE": "Log an INFO level message.",
|
|
"PARAM": "metadata (Optional[Dict]) - Additional data."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 105
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 105
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 105
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 105
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 105
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 105
|
|
}
|
|
],
|
|
"score": 0.26666666666666655
|
|
}
|
|
},
|
|
{
|
|
"name": "warning",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 119,
|
|
"end_line": 131,
|
|
"tags": {
|
|
"PURPOSE": "Log a WARNING level message.",
|
|
"PARAM": "metadata (Optional[Dict]) - Additional data."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 119
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 119
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 119
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 119
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 119
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 119
|
|
}
|
|
],
|
|
"score": 0.26666666666666655
|
|
}
|
|
},
|
|
{
|
|
"name": "error",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 133,
|
|
"end_line": 145,
|
|
"tags": {
|
|
"PURPOSE": "Log an ERROR level message.",
|
|
"PARAM": "metadata (Optional[Dict]) - Additional data."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 133
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 133
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 133
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 133
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 133
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 133
|
|
}
|
|
],
|
|
"score": 0.26666666666666655
|
|
}
|
|
},
|
|
{
|
|
"name": "progress",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 147,
|
|
"end_line": 163,
|
|
"tags": {
|
|
"PURPOSE": "Log a progress update with percentage.",
|
|
"PRE": "percent is between 0 and 100.",
|
|
"POST": "Log entry with progress metadata added.",
|
|
"PARAM": "source (Optional[str]) - Override source."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "TaskPersistenceModule",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 384,
|
|
"tags": {
|
|
"SEMANTICS": "persistence, sqlite, sqlalchemy, task, storage",
|
|
"PURPOSE": "Handles the persistence of tasks using SQLAlchemy and the tasks.db database.",
|
|
"LAYER": "Core",
|
|
"RELATION": "Used by TaskManager to save and load tasks.",
|
|
"INVARIANT": "Database schema must match the TaskRecord model structure."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "TaskPersistenceService",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 20,
|
|
"end_line": 172,
|
|
"tags": {
|
|
"SEMANTICS": "persistence, service, database, sqlalchemy",
|
|
"PURPOSE": "Provides methods to save and load tasks from the tasks.db database using SQLAlchemy."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "__init__",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 24,
|
|
"end_line": 32,
|
|
"tags": {
|
|
"PURPOSE": "Initializes the persistence service.",
|
|
"PRE": "None.",
|
|
"POST": "Service is ready."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "persist_task",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 34,
|
|
"end_line": 92,
|
|
"tags": {
|
|
"PURPOSE": "Persists or updates a single task in the database.",
|
|
"PRE": "isinstance(task, Task)",
|
|
"POST": "Task record created or updated in database.",
|
|
"PARAM": "task (Task) - The task object to persist.",
|
|
"SIDE_EFFECT": "Writes to task_records table in tasks.db"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "persist_tasks",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 94,
|
|
"end_line": 103,
|
|
"tags": {
|
|
"PURPOSE": "Persists multiple tasks.",
|
|
"PRE": "isinstance(tasks, list)",
|
|
"POST": "All tasks in list are persisted.",
|
|
"PARAM": "tasks (List[Task]) - The list of tasks to persist."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "load_tasks",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 105,
|
|
"end_line": 150,
|
|
"tags": {
|
|
"PURPOSE": "Loads tasks from the database.",
|
|
"PRE": "limit is an integer.",
|
|
"POST": "Returns list of Task objects.",
|
|
"PARAM": "status (Optional[TaskStatus]) - Filter by status.",
|
|
"RETURN": "List[Task] - The loaded tasks."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "delete_tasks",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 152,
|
|
"end_line": 170,
|
|
"tags": {
|
|
"PURPOSE": "Deletes specific tasks from the database.",
|
|
"PRE": "task_ids is a list of strings.",
|
|
"POST": "Specified task records deleted from database.",
|
|
"PARAM": "task_ids (List[str]) - List of task IDs to delete."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 20
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 20
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
},
|
|
{
|
|
"name": "TaskLogPersistenceService",
|
|
"type": "Class",
|
|
"tier": "CRITICAL",
|
|
"start_line": 174,
|
|
"end_line": 383,
|
|
"tags": {
|
|
"SEMANTICS": "persistence, service, database, log, sqlalchemy",
|
|
"PURPOSE": "Provides methods to save and query task logs from the task_logs table.",
|
|
"TIER": "CRITICAL",
|
|
"INVARIANT": "Log entries are batch-inserted for performance."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "TaskLogRecord"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "__init__",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 186,
|
|
"end_line": 191,
|
|
"tags": {
|
|
"PURPOSE": "Initialize the log persistence service.",
|
|
"POST": "Service is ready."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 186
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 186
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 186
|
|
}
|
|
],
|
|
"score": 0.6333333333333333
|
|
}
|
|
},
|
|
{
|
|
"name": "add_logs",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 193,
|
|
"end_line": 222,
|
|
"tags": {
|
|
"PURPOSE": "Batch insert log entries for a task.",
|
|
"PRE": "logs is a list of LogEntry objects.",
|
|
"POST": "All logs inserted into task_logs table.",
|
|
"PARAM": "logs (List[LogEntry]) - Log entries to insert.",
|
|
"SIDE_EFFECT": "Writes to task_logs table."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_logs",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 224,
|
|
"end_line": 274,
|
|
"tags": {
|
|
"PURPOSE": "Query logs for a task with filtering and pagination.",
|
|
"PRE": "task_id is a valid task ID.",
|
|
"POST": "Returns list of TaskLog objects matching filters.",
|
|
"PARAM": "log_filter (LogFilter) - Filter parameters.",
|
|
"RETURN": "List[TaskLog] - Filtered log entries."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_log_stats",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 276,
|
|
"end_line": 319,
|
|
"tags": {
|
|
"PURPOSE": "Get statistics about logs for a task.",
|
|
"PRE": "task_id is a valid task ID.",
|
|
"POST": "Returns LogStats with counts by level and source.",
|
|
"PARAM": "task_id (str) - The task ID.",
|
|
"RETURN": "LogStats - Statistics about task logs."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_sources",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 321,
|
|
"end_line": 338,
|
|
"tags": {
|
|
"PURPOSE": "Get unique sources for a task's logs.",
|
|
"PRE": "task_id is a valid task ID.",
|
|
"POST": "Returns list of unique source strings.",
|
|
"PARAM": "task_id (str) - The task ID.",
|
|
"RETURN": "List[str] - Unique source names."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "delete_logs_for_task",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 340,
|
|
"end_line": 359,
|
|
"tags": {
|
|
"PURPOSE": "Delete all logs for a specific task.",
|
|
"PRE": "task_id is a valid task ID.",
|
|
"POST": "All logs for the task are deleted.",
|
|
"PARAM": "task_id (str) - The task ID.",
|
|
"SIDE_EFFECT": "Deletes from task_logs table."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "delete_logs_for_tasks",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 361,
|
|
"end_line": 381,
|
|
"tags": {
|
|
"PURPOSE": "Delete all logs for multiple tasks.",
|
|
"PRE": "task_ids is a list of task IDs.",
|
|
"POST": "All logs for the tasks are deleted.",
|
|
"PARAM": "task_ids (List[str]) - List of task IDs."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "json_serializable",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 56,
|
|
"end_line": 56,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
}
|
|
},
|
|
{
|
|
"name": "TaskManagerModule",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 571,
|
|
"tags": {
|
|
"SEMANTICS": "task, manager, lifecycle, execution, state",
|
|
"PURPOSE": "Manages the lifecycle of tasks, including their creation, execution, and state tracking. It uses a thread pool to run plugins asynchronously.",
|
|
"LAYER": "Core",
|
|
"RELATION": "Depends on PluginLoader to get plugin instances. It is used by the API layer to create and query tasks.",
|
|
"INVARIANT": "Task IDs are unique.",
|
|
"CONSTRAINT": "Must use belief_scope for logging."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "TaskManager",
|
|
"type": "Class",
|
|
"tier": "CRITICAL",
|
|
"start_line": 23,
|
|
"end_line": 570,
|
|
"tags": {
|
|
"SEMANTICS": "task, manager, lifecycle, execution, state",
|
|
"PURPOSE": "Manages the lifecycle of tasks, including their creation, execution, and state tracking.",
|
|
"TIER": "CRITICAL",
|
|
"INVARIANT": "Log entries are never deleted after being added to a task."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "__init__",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 38,
|
|
"end_line": 69,
|
|
"tags": {
|
|
"PURPOSE": "Initialize the TaskManager with dependencies.",
|
|
"PRE": "plugin_loader is initialized.",
|
|
"POST": "TaskManager is ready to accept tasks.",
|
|
"PARAM": "plugin_loader - The plugin loader instance."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "_flusher_loop",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 71,
|
|
"end_line": 80,
|
|
"tags": {
|
|
"PURPOSE": "Background thread that periodically flushes log buffer to database.",
|
|
"PRE": "TaskManager is initialized.",
|
|
"POST": "Logs are batch-written to database every LOG_FLUSH_INTERVAL seconds."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 71
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 71
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 71
|
|
}
|
|
],
|
|
"score": 0.7
|
|
}
|
|
},
|
|
{
|
|
"name": "_flush_logs",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 82,
|
|
"end_line": 105,
|
|
"tags": {
|
|
"PURPOSE": "Flush all buffered logs to the database.",
|
|
"PRE": "None.",
|
|
"POST": "All buffered logs are written to task_logs table."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 82
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 82
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 82
|
|
}
|
|
],
|
|
"score": 0.7
|
|
}
|
|
},
|
|
{
|
|
"name": "_flush_task_logs",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 107,
|
|
"end_line": 122,
|
|
"tags": {
|
|
"PURPOSE": "Flush logs for a specific task immediately.",
|
|
"PRE": "task_id exists.",
|
|
"POST": "Task's buffered logs are written to database.",
|
|
"PARAM": "task_id (str) - The task ID."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 107
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 107
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 107
|
|
}
|
|
],
|
|
"score": 0.7
|
|
}
|
|
},
|
|
{
|
|
"name": "create_task",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 124,
|
|
"end_line": 151,
|
|
"tags": {
|
|
"PURPOSE": "Creates and queues a new task for execution.",
|
|
"PRE": "Plugin with plugin_id exists. Params are valid.",
|
|
"POST": "Task is created, added to registry, and scheduled for execution.",
|
|
"PARAM": "user_id (Optional[str]) - ID of the user requesting the task.",
|
|
"RETURN": "Task - The created task instance.",
|
|
"THROWS": "ValueError if plugin not found or params invalid."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "_run_task",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 153,
|
|
"end_line": 217,
|
|
"tags": {
|
|
"PURPOSE": "Internal method to execute a task with TaskContext support.",
|
|
"PRE": "Task exists in registry.",
|
|
"POST": "Task is executed, status updated to SUCCESS or FAILED.",
|
|
"PARAM": "task_id (str) - The ID of the task to run."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "resolve_task",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 219,
|
|
"end_line": 241,
|
|
"tags": {
|
|
"PURPOSE": "Resumes a task that is awaiting mapping.",
|
|
"PRE": "Task exists and is in AWAITING_MAPPING state.",
|
|
"POST": "Task status updated to RUNNING, params updated, execution resumed.",
|
|
"PARAM": "resolution_params (Dict[str, Any]) - Params to resolve the wait.",
|
|
"THROWS": "ValueError if task not found or not awaiting mapping."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "wait_for_resolution",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 243,
|
|
"end_line": 263,
|
|
"tags": {
|
|
"PURPOSE": "Pauses execution and waits for a resolution signal.",
|
|
"PRE": "Task exists.",
|
|
"POST": "Execution pauses until future is set.",
|
|
"PARAM": "task_id (str) - The ID of the task."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "wait_for_input",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 265,
|
|
"end_line": 284,
|
|
"tags": {
|
|
"PURPOSE": "Pauses execution and waits for user input.",
|
|
"PRE": "Task exists.",
|
|
"POST": "Execution pauses until future is set via resume_task_with_password.",
|
|
"PARAM": "task_id (str) - The ID of the task."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_task",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 286,
|
|
"end_line": 295,
|
|
"tags": {
|
|
"PURPOSE": "Retrieves a task by its ID.",
|
|
"PRE": "task_id is a string.",
|
|
"POST": "Returns Task object or None.",
|
|
"PARAM": "task_id (str) - ID of the task.",
|
|
"RETURN": "Optional[Task] - The task or None."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_all_tasks",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 297,
|
|
"end_line": 305,
|
|
"tags": {
|
|
"PURPOSE": "Retrieves all registered tasks.",
|
|
"PRE": "None.",
|
|
"POST": "Returns list of all Task objects.",
|
|
"RETURN": "List[Task] - All tasks."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_tasks",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 307,
|
|
"end_line": 323,
|
|
"tags": {
|
|
"PURPOSE": "Retrieves tasks with pagination and optional status filter.",
|
|
"PRE": "limit and offset are non-negative integers.",
|
|
"POST": "Returns a list of tasks sorted by start_time descending.",
|
|
"PARAM": "status (Optional[TaskStatus]) - Filter by task status.",
|
|
"RETURN": "List[Task] - List of tasks matching criteria."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_task_logs",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 325,
|
|
"end_line": 355,
|
|
"tags": {
|
|
"PURPOSE": "Retrieves logs for a specific task (from memory for running, persistence for completed).",
|
|
"PRE": "task_id is a string.",
|
|
"POST": "Returns list of LogEntry or TaskLog objects.",
|
|
"PARAM": "log_filter (Optional[LogFilter]) - Filter parameters.",
|
|
"RETURN": "List[LogEntry] - List of log entries."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_task_log_stats",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 357,
|
|
"end_line": 366,
|
|
"tags": {
|
|
"PURPOSE": "Get statistics about logs for a task.",
|
|
"PRE": "task_id is a valid task ID.",
|
|
"POST": "Returns LogStats with counts by level and source.",
|
|
"PARAM": "task_id (str) - The task ID.",
|
|
"RETURN": "LogStats - Statistics about task logs."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_task_log_sources",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 368,
|
|
"end_line": 377,
|
|
"tags": {
|
|
"PURPOSE": "Get unique sources for a task's logs.",
|
|
"PRE": "task_id is a valid task ID.",
|
|
"POST": "Returns list of unique source strings.",
|
|
"PARAM": "task_id (str) - The task ID.",
|
|
"RETURN": "List[str] - Unique source names."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "_add_log",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 379,
|
|
"end_line": 429,
|
|
"tags": {
|
|
"PURPOSE": "Adds a log entry to a task buffer and notifies subscribers.",
|
|
"PRE": "Task exists.",
|
|
"POST": "Log added to buffer and pushed to queues (if level meets task_log_level filter).",
|
|
"PARAM": "context (Optional[Dict]) - Legacy context (for backward compatibility)."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "subscribe_logs",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 431,
|
|
"end_line": 444,
|
|
"tags": {
|
|
"PURPOSE": "Subscribes to real-time logs for a task.",
|
|
"PRE": "task_id is a string.",
|
|
"POST": "Returns an asyncio.Queue for log entries.",
|
|
"PARAM": "task_id (str) - ID of the task.",
|
|
"RETURN": "asyncio.Queue - Queue for log entries."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "unsubscribe_logs",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 446,
|
|
"end_line": 459,
|
|
"tags": {
|
|
"PURPOSE": "Unsubscribes from real-time logs for a task.",
|
|
"PRE": "task_id is a string, queue is asyncio.Queue.",
|
|
"POST": "Queue removed from subscribers.",
|
|
"PARAM": "queue (asyncio.Queue) - Queue to remove."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "load_persisted_tasks",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 461,
|
|
"end_line": 471,
|
|
"tags": {
|
|
"PURPOSE": "Load persisted tasks using persistence service.",
|
|
"PRE": "None.",
|
|
"POST": "Persisted tasks loaded into self.tasks."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "await_input",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 473,
|
|
"end_line": 493,
|
|
"tags": {
|
|
"PURPOSE": "Transition a task to AWAITING_INPUT state with input request.",
|
|
"PRE": "Task exists and is in RUNNING state.",
|
|
"POST": "Task status changed to AWAITING_INPUT, input_request set, persisted.",
|
|
"PARAM": "input_request (Dict) - Details about required input.",
|
|
"THROWS": "ValueError if task not found or not RUNNING."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "resume_task_with_password",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 495,
|
|
"end_line": 522,
|
|
"tags": {
|
|
"PURPOSE": "Resume a task that is awaiting input with provided passwords.",
|
|
"PRE": "Task exists and is in AWAITING_INPUT state.",
|
|
"POST": "Task status changed to RUNNING, passwords injected, task resumed.",
|
|
"PARAM": "passwords (Dict[str, str]) - Mapping of database name to password.",
|
|
"THROWS": "ValueError if task not found, not awaiting input, or passwords invalid."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "clear_tasks",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 524,
|
|
"end_line": 568,
|
|
"tags": {
|
|
"PURPOSE": "Clears tasks based on status filter (also deletes associated logs).",
|
|
"PRE": "status is Optional[TaskStatus].",
|
|
"POST": "Tasks matching filter (or all non-active) cleared from registry and database.",
|
|
"PARAM": "status (Optional[TaskStatus]) - Filter by task status.",
|
|
"RETURN": "int - Number of tasks cleared."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
}
|
|
},
|
|
{
|
|
"name": "TaskManagerModels",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 126,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"SEMANTICS": "task, models, pydantic, enum, state",
|
|
"PURPOSE": "Defines the data models and enumerations used by the Task Manager.",
|
|
"LAYER": "Core",
|
|
"RELATION": "Used by TaskManager and API routes.",
|
|
"INVARIANT": "Task IDs are immutable once created.",
|
|
"CONSTRAINT": "Must use Pydantic for data validation."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "TaskStatus",
|
|
"type": "Enum",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 19,
|
|
"end_line": 30,
|
|
"tags": {
|
|
"TIER": "TRIVIAL",
|
|
"SEMANTICS": "task, status, state, enum",
|
|
"PURPOSE": "Defines the possible states a task can be in during its lifecycle."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "LogLevel",
|
|
"type": "Enum",
|
|
"tier": "STANDARD",
|
|
"start_line": 32,
|
|
"end_line": 41,
|
|
"tags": {
|
|
"SEMANTICS": "log, level, severity, enum",
|
|
"PURPOSE": "Defines the possible log levels for task logging.",
|
|
"TIER": "STANDARD"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "LogEntry",
|
|
"type": "Class",
|
|
"tier": "CRITICAL",
|
|
"start_line": 43,
|
|
"end_line": 55,
|
|
"tags": {
|
|
"SEMANTICS": "log, entry, record, pydantic",
|
|
"PURPOSE": "A Pydantic model representing a single, structured log entry associated with a task.",
|
|
"TIER": "CRITICAL",
|
|
"INVARIANT": "Each log entry has a unique timestamp and source."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "TaskLog",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 57,
|
|
"end_line": 73,
|
|
"tags": {
|
|
"SEMANTICS": "task, log, persistent, pydantic",
|
|
"PURPOSE": "A Pydantic model representing a persisted log entry from the database.",
|
|
"TIER": "STANDARD"
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "MAPS_TO",
|
|
"target": "TaskLogRecord"
|
|
}
|
|
],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "LogFilter",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 75,
|
|
"end_line": 85,
|
|
"tags": {
|
|
"SEMANTICS": "log, filter, query, pydantic",
|
|
"PURPOSE": "Filter parameters for querying task logs.",
|
|
"TIER": "STANDARD"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "LogStats",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 87,
|
|
"end_line": 95,
|
|
"tags": {
|
|
"SEMANTICS": "log, stats, aggregation, pydantic",
|
|
"PURPOSE": "Statistics about log entries for a task.",
|
|
"TIER": "STANDARD"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "Task",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 97,
|
|
"end_line": 124,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"SEMANTICS": "task, job, execution, state, pydantic",
|
|
"PURPOSE": "A Pydantic model representing a single execution instance of a plugin, including its status, parameters, and logs."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "__init__",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 114,
|
|
"end_line": 123,
|
|
"tags": {
|
|
"PURPOSE": "Initializes the Task model and validates input_request for AWAITING_INPUT status.",
|
|
"PRE": "If status is AWAITING_INPUT, input_request must be provided.",
|
|
"POST": "Task instance is created or ValueError is raised.",
|
|
"PARAM": "**data - Keyword arguments for model initialization."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "TaskCleanupModule",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 75,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"SEMANTICS": "task, cleanup, retention, logs",
|
|
"PURPOSE": "Implements task cleanup and retention policies, including associated logs.",
|
|
"LAYER": "Core",
|
|
"RELATION": "Uses TaskPersistenceService and TaskLogPersistenceService to delete old tasks and logs."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "TaskCleanupService",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 13,
|
|
"end_line": 74,
|
|
"tags": {
|
|
"PURPOSE": "Provides methods to clean up old task records and their associated logs.",
|
|
"TIER": "STANDARD"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "__init__",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 17,
|
|
"end_line": 30,
|
|
"tags": {
|
|
"PURPOSE": "Initializes the cleanup service with dependencies.",
|
|
"PRE": "persistence_service and config_manager are valid.",
|
|
"POST": "Cleanup service is ready."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "run_cleanup",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 32,
|
|
"end_line": 55,
|
|
"tags": {
|
|
"PURPOSE": "Deletes tasks older than the configured retention period and their logs.",
|
|
"PRE": "Config manager has valid settings.",
|
|
"POST": "Old tasks and their logs are deleted from persistence."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "delete_task_with_logs",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 57,
|
|
"end_line": 72,
|
|
"tags": {
|
|
"PURPOSE": "Delete a single task and all its associated logs.",
|
|
"PRE": "task_id is a valid task ID.",
|
|
"POST": "Task and all its logs are deleted.",
|
|
"PARAM": "task_id (str) - The task ID to delete."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "TaskManagerPackage",
|
|
"type": "Module",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 1,
|
|
"end_line": 13,
|
|
"tags": {
|
|
"TIER": "TRIVIAL",
|
|
"SEMANTICS": "task, manager, package, exports",
|
|
"PURPOSE": "Exports the public API of the task manager package.",
|
|
"LAYER": "Core",
|
|
"RELATION": "Aggregates models and manager."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "TaskContextModule",
|
|
"type": "Module",
|
|
"tier": "CRITICAL",
|
|
"start_line": 1,
|
|
"end_line": 115,
|
|
"tags": {
|
|
"SEMANTICS": "task, context, plugin, execution, logger",
|
|
"PURPOSE": "Provides execution context passed to plugins during task execution.",
|
|
"LAYER": "Core",
|
|
"TIER": "CRITICAL",
|
|
"INVARIANT": "Each TaskContext is bound to a single task execution."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "TaskLogger, USED_BY -> plugins"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "TaskContext",
|
|
"type": "Class",
|
|
"tier": "CRITICAL",
|
|
"start_line": 14,
|
|
"end_line": 113,
|
|
"tags": {
|
|
"SEMANTICS": "context, task, execution, plugin",
|
|
"PURPOSE": "A container passed to plugin.execute() providing the logger and other task-specific utilities.",
|
|
"TIER": "CRITICAL",
|
|
"INVARIANT": "logger is always a valid TaskLogger instance.",
|
|
"UX_STATE": "Idle -> Active -> Complete"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "__init__",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 32,
|
|
"end_line": 54,
|
|
"tags": {
|
|
"PURPOSE": "Initialize the TaskContext with task-specific resources.",
|
|
"PRE": "task_id is a valid task identifier, add_log_fn is callable.",
|
|
"POST": "TaskContext is ready to be passed to plugin.execute().",
|
|
"PARAM": "default_source (str) - Default source for logs (default: \"plugin\")."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "task_id",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 56,
|
|
"end_line": 64,
|
|
"tags": {
|
|
"PURPOSE": "Get the task ID.",
|
|
"PRE": "TaskContext must be initialized.",
|
|
"POST": "Returns the task ID string.",
|
|
"RETURN": "str - The task ID."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 56
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 56
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 56
|
|
}
|
|
],
|
|
"score": 0.7
|
|
}
|
|
},
|
|
{
|
|
"name": "logger",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 66,
|
|
"end_line": 74,
|
|
"tags": {
|
|
"PURPOSE": "Get the TaskLogger instance for this context.",
|
|
"PRE": "TaskContext must be initialized.",
|
|
"POST": "Returns the TaskLogger instance.",
|
|
"RETURN": "TaskLogger - The logger instance."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 66
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 66
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 66
|
|
}
|
|
],
|
|
"score": 0.7
|
|
}
|
|
},
|
|
{
|
|
"name": "params",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 76,
|
|
"end_line": 84,
|
|
"tags": {
|
|
"PURPOSE": "Get the task parameters.",
|
|
"PRE": "TaskContext must be initialized.",
|
|
"POST": "Returns the parameters dictionary.",
|
|
"RETURN": "Dict[str, Any] - The task parameters."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 76
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 76
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 76
|
|
}
|
|
],
|
|
"score": 0.7
|
|
}
|
|
},
|
|
{
|
|
"name": "get_param",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 86,
|
|
"end_line": 95,
|
|
"tags": {
|
|
"PURPOSE": "Get a specific parameter value with optional default.",
|
|
"PRE": "TaskContext must be initialized.",
|
|
"POST": "Returns parameter value or default.",
|
|
"PARAM": "default (Any) - Default value if key not found.",
|
|
"RETURN": "Any - Parameter value or default."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 86
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 86
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 86
|
|
}
|
|
],
|
|
"score": 0.7
|
|
}
|
|
},
|
|
{
|
|
"name": "create_sub_context",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 97,
|
|
"end_line": 111,
|
|
"tags": {
|
|
"PURPOSE": "Create a sub-context with a different default source.",
|
|
"PRE": "source is a non-empty string.",
|
|
"POST": "Returns new TaskContext with different logger source.",
|
|
"PARAM": "source (str) - New default source for logging.",
|
|
"RETURN": "TaskContext - New context with different source."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 97
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 97
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 97
|
|
}
|
|
],
|
|
"score": 0.7
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "execute",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 25,
|
|
"end_line": 25,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "backend.src.api.auth",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 118,
|
|
"tags": {
|
|
"SEMANTICS": "api, auth, routes, login, logout",
|
|
"PURPOSE": "Authentication API endpoints.",
|
|
"LAYER": "API",
|
|
"INVARIANT": "All auth endpoints must return consistent error codes."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "USES",
|
|
"target": "backend.src.services.auth_service.AuthService"
|
|
},
|
|
{
|
|
"type": "USES",
|
|
"target": "backend.src.core.database.get_auth_db"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "router",
|
|
"type": "Variable",
|
|
"tier": "STANDARD",
|
|
"start_line": 25,
|
|
"end_line": 28,
|
|
"tags": {
|
|
"PURPOSE": "APIRouter instance for authentication routes."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "login_for_access_token",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 30,
|
|
"end_line": 55,
|
|
"tags": {
|
|
"PURPOSE": "Authenticates a user and returns a JWT access token.",
|
|
"PRE": "form_data contains username and password.",
|
|
"POST": "Returns a Token object on success.",
|
|
"THROW": "HTTPException 401 if authentication fails.",
|
|
"PARAM": "db (Session) - Auth database session.",
|
|
"RETURN": "Token - The generated JWT token."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "read_users_me",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 57,
|
|
"end_line": 67,
|
|
"tags": {
|
|
"PURPOSE": "Retrieves the profile of the currently authenticated user.",
|
|
"PRE": "Valid JWT token provided.",
|
|
"POST": "Returns the current user's data.",
|
|
"PARAM": "current_user (UserSchema) - The user extracted from the token.",
|
|
"RETURN": "UserSchema - The current user profile."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "logout",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 69,
|
|
"end_line": 80,
|
|
"tags": {
|
|
"PURPOSE": "Logs out the current user (placeholder for session revocation).",
|
|
"PRE": "Valid JWT token provided.",
|
|
"POST": "Returns success message."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "login_adfs",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 82,
|
|
"end_line": 95,
|
|
"tags": {
|
|
"PURPOSE": "Initiates the ADFS OIDC login flow.",
|
|
"POST": "Redirects the user to ADFS."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 82
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 82
|
|
}
|
|
],
|
|
"score": 0.7333333333333334
|
|
}
|
|
},
|
|
{
|
|
"name": "auth_callback_adfs",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 97,
|
|
"end_line": 116,
|
|
"tags": {
|
|
"PURPOSE": "Handles the callback from ADFS after successful authentication.",
|
|
"POST": "Provisions user JIT and returns session token."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 97
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 97
|
|
}
|
|
],
|
|
"score": 0.7333333333333334
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
}
|
|
},
|
|
{
|
|
"name": "router",
|
|
"type": "Global",
|
|
"tier": "STANDARD",
|
|
"start_line": 17,
|
|
"end_line": 20,
|
|
"tags": {
|
|
"PURPOSE": "APIRouter instance for LLM routes."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_providers",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 22,
|
|
"end_line": 48,
|
|
"tags": {
|
|
"PURPOSE": "Retrieve all LLM provider configurations.",
|
|
"PRE": "User is authenticated.",
|
|
"POST": "Returns list of LLMProviderConfig."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 22
|
|
}
|
|
],
|
|
"score": 0.9
|
|
}
|
|
},
|
|
{
|
|
"name": "create_provider",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 50,
|
|
"end_line": 74,
|
|
"tags": {
|
|
"PURPOSE": "Create a new LLM provider configuration.",
|
|
"PRE": "User is authenticated and has admin permissions.",
|
|
"POST": "Returns the created LLMProviderConfig."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 50
|
|
}
|
|
],
|
|
"score": 0.9
|
|
}
|
|
},
|
|
{
|
|
"name": "update_provider",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 76,
|
|
"end_line": 104,
|
|
"tags": {
|
|
"PURPOSE": "Update an existing LLM provider configuration.",
|
|
"PRE": "User is authenticated and has admin permissions.",
|
|
"POST": "Returns the updated LLMProviderConfig."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 76
|
|
}
|
|
],
|
|
"score": 0.9
|
|
}
|
|
},
|
|
{
|
|
"name": "delete_provider",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 106,
|
|
"end_line": 123,
|
|
"tags": {
|
|
"PURPOSE": "Delete an LLM provider configuration.",
|
|
"PRE": "User is authenticated and has admin permissions.",
|
|
"POST": "Returns success status."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 106
|
|
}
|
|
],
|
|
"score": 0.9
|
|
}
|
|
},
|
|
{
|
|
"name": "test_connection",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 125,
|
|
"end_line": 168,
|
|
"tags": {
|
|
"PURPOSE": "Test connection to an LLM provider.",
|
|
"PRE": "User is authenticated.",
|
|
"POST": "Returns success status and message."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 125
|
|
}
|
|
],
|
|
"score": 0.9
|
|
}
|
|
},
|
|
{
|
|
"name": "test_provider_config",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 170,
|
|
"end_line": 205,
|
|
"tags": {
|
|
"PURPOSE": "Test connection with a provided configuration (not yet saved).",
|
|
"PRE": "User is authenticated.",
|
|
"POST": "Returns success status and message."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 170
|
|
}
|
|
],
|
|
"score": 0.9
|
|
}
|
|
},
|
|
{
|
|
"name": "backend.src.api.routes.datasets",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 395,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"SEMANTICS": "api, datasets, resources, hub",
|
|
"PURPOSE": "API endpoints for the Dataset Hub - listing datasets with mapping progress",
|
|
"LAYER": "API",
|
|
"INVARIANT": "All dataset responses include last_task metadata"
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "backend.src.dependencies"
|
|
},
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "backend.src.services.resource_service"
|
|
},
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "backend.src.core.superset_client"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "MappedFields",
|
|
"type": "DataClass",
|
|
"tier": "STANDARD",
|
|
"start_line": 24,
|
|
"end_line": 28,
|
|
"tags": {},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "LastTask",
|
|
"type": "DataClass",
|
|
"tier": "STANDARD",
|
|
"start_line": 30,
|
|
"end_line": 34,
|
|
"tags": {},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "DatasetItem",
|
|
"type": "DataClass",
|
|
"tier": "STANDARD",
|
|
"start_line": 36,
|
|
"end_line": 44,
|
|
"tags": {},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "LinkedDashboard",
|
|
"type": "DataClass",
|
|
"tier": "STANDARD",
|
|
"start_line": 46,
|
|
"end_line": 51,
|
|
"tags": {},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "DatasetColumn",
|
|
"type": "DataClass",
|
|
"tier": "STANDARD",
|
|
"start_line": 53,
|
|
"end_line": 61,
|
|
"tags": {},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "DatasetDetailResponse",
|
|
"type": "DataClass",
|
|
"tier": "STANDARD",
|
|
"start_line": 63,
|
|
"end_line": 78,
|
|
"tags": {},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "DatasetsResponse",
|
|
"type": "DataClass",
|
|
"tier": "STANDARD",
|
|
"start_line": 80,
|
|
"end_line": 87,
|
|
"tags": {},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "TaskResponse",
|
|
"type": "DataClass",
|
|
"tier": "STANDARD",
|
|
"start_line": 89,
|
|
"end_line": 92,
|
|
"tags": {},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_dataset_ids",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 94,
|
|
"end_line": 143,
|
|
"tags": {
|
|
"PURPOSE": "Fetch list of all dataset IDs from a specific environment (without pagination)",
|
|
"PRE": "env_id must be a valid environment ID",
|
|
"POST": "Returns a list of all dataset IDs",
|
|
"PARAM": "search (Optional[str]) - Filter by table name",
|
|
"RETURN": "List[int] - List of dataset IDs"
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "CALLS",
|
|
"target": "ResourceService.get_datasets_with_status"
|
|
}
|
|
],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_datasets",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 145,
|
|
"end_line": 222,
|
|
"tags": {
|
|
"PURPOSE": "Fetch list of datasets from a specific environment with mapping progress",
|
|
"PRE": "page_size must be between 1 and 100 if provided",
|
|
"POST": "Response includes pagination metadata (page, page_size, total, total_pages)",
|
|
"PARAM": "page_size (Optional[int]) - Items per page (default: 10, max: 100)",
|
|
"RETURN": "DatasetsResponse - List of datasets with status metadata"
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "CALLS",
|
|
"target": "ResourceService.get_datasets_with_status"
|
|
}
|
|
],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "MapColumnsRequest",
|
|
"type": "DataClass",
|
|
"tier": "STANDARD",
|
|
"start_line": 224,
|
|
"end_line": 231,
|
|
"tags": {},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "map_columns",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 233,
|
|
"end_line": 292,
|
|
"tags": {
|
|
"PURPOSE": "Trigger bulk column mapping for datasets",
|
|
"PRE": "dataset_ids is a non-empty list",
|
|
"POST": "Task is created and queued for execution",
|
|
"PARAM": "request (MapColumnsRequest) - Mapping request with environment and dataset IDs",
|
|
"RETURN": "TaskResponse - Task ID for tracking"
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "DISPATCHES",
|
|
"target": "MapperPlugin"
|
|
},
|
|
{
|
|
"type": "CALLS",
|
|
"target": "task_manager.create_task"
|
|
}
|
|
],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "GenerateDocsRequest",
|
|
"type": "DataClass",
|
|
"tier": "STANDARD",
|
|
"start_line": 294,
|
|
"end_line": 300,
|
|
"tags": {},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "generate_docs",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 302,
|
|
"end_line": 355,
|
|
"tags": {
|
|
"PURPOSE": "Trigger bulk documentation generation for datasets",
|
|
"PRE": "dataset_ids is a non-empty list",
|
|
"POST": "Task is created and queued for execution",
|
|
"PARAM": "request (GenerateDocsRequest) - Documentation generation request",
|
|
"RETURN": "TaskResponse - Task ID for tracking"
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "DISPATCHES",
|
|
"target": "LLMAnalysisPlugin"
|
|
},
|
|
{
|
|
"type": "CALLS",
|
|
"target": "task_manager.create_task"
|
|
}
|
|
],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_dataset_detail",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 357,
|
|
"end_line": 393,
|
|
"tags": {
|
|
"PURPOSE": "Get detailed dataset information including columns and linked dashboards",
|
|
"PRE": "dataset_id is a valid dataset ID",
|
|
"POST": "Returns detailed dataset info with columns and linked dashboards",
|
|
"PARAM": "dataset_id (int) - The dataset ID",
|
|
"RETURN": "DatasetDetailResponse - Detailed dataset information"
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "CALLS",
|
|
"target": "SupersetClient.get_dataset_detail"
|
|
}
|
|
],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "backend.src.api.routes.git",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 456,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"SEMANTICS": "git, routes, api, fastapi, repository, deployment",
|
|
"PURPOSE": "Provides FastAPI endpoints for Git integration operations.",
|
|
"LAYER": "API",
|
|
"INVARIANT": "All Git operations must be routed through GitService."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "USES",
|
|
"target": "src.services.git_service.GitService"
|
|
},
|
|
{
|
|
"type": "USES",
|
|
"target": "src.api.routes.git_schemas"
|
|
},
|
|
{
|
|
"type": "USES",
|
|
"target": "src.models.git"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "get_git_configs",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 32,
|
|
"end_line": 44,
|
|
"tags": {
|
|
"PURPOSE": "List all configured Git servers.",
|
|
"PRE": "Database session `db` is available.",
|
|
"POST": "Returns a list of all GitServerConfig objects from the database.",
|
|
"RETURN": "List[GitServerConfigSchema]"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "create_git_config",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 46,
|
|
"end_line": 64,
|
|
"tags": {
|
|
"PURPOSE": "Register a new Git server configuration.",
|
|
"PRE": "`config` contains valid GitServerConfigCreate data.",
|
|
"POST": "A new GitServerConfig record is created in the database.",
|
|
"PARAM": "config (GitServerConfigCreate)",
|
|
"RETURN": "GitServerConfigSchema"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "delete_git_config",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 66,
|
|
"end_line": 85,
|
|
"tags": {
|
|
"PURPOSE": "Remove a Git server configuration.",
|
|
"PRE": "`config_id` corresponds to an existing configuration.",
|
|
"POST": "The configuration record is removed from the database.",
|
|
"PARAM": "config_id (str)"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_git_config",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 87,
|
|
"end_line": 103,
|
|
"tags": {
|
|
"PURPOSE": "Validate connection to a Git server using provided credentials.",
|
|
"PRE": "`config` contains provider, url, and pat.",
|
|
"POST": "Returns success if the connection is validated via GitService.",
|
|
"PARAM": "config (GitServerConfigCreate)"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "init_repository",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 105,
|
|
"end_line": 152,
|
|
"tags": {
|
|
"PURPOSE": "Link a dashboard to a Git repository and perform initial clone/init.",
|
|
"PRE": "`dashboard_id` exists and `init_data` contains valid config_id and remote_url.",
|
|
"POST": "Repository is initialized on disk and a GitRepository record is saved in DB.",
|
|
"PARAM": "init_data (RepoInitRequest)"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_branches",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 154,
|
|
"end_line": 170,
|
|
"tags": {
|
|
"PURPOSE": "List all branches for a dashboard's repository.",
|
|
"PRE": "Repository for `dashboard_id` is initialized.",
|
|
"POST": "Returns a list of branches from the local repository.",
|
|
"PARAM": "dashboard_id (int)",
|
|
"RETURN": "List[BranchSchema]"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "create_branch",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 172,
|
|
"end_line": 190,
|
|
"tags": {
|
|
"PURPOSE": "Create a new branch in the dashboard's repository.",
|
|
"PRE": "`dashboard_id` repository exists and `branch_data` has name and from_branch.",
|
|
"POST": "A new branch is created in the local repository.",
|
|
"PARAM": "branch_data (BranchCreate)"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "checkout_branch",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 192,
|
|
"end_line": 210,
|
|
"tags": {
|
|
"PURPOSE": "Switch the dashboard's repository to a specific branch.",
|
|
"PRE": "`dashboard_id` repository exists and branch `checkout_data.name` exists.",
|
|
"POST": "The local repository HEAD is moved to the specified branch.",
|
|
"PARAM": "checkout_data (BranchCheckout)"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "commit_changes",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 212,
|
|
"end_line": 230,
|
|
"tags": {
|
|
"PURPOSE": "Stage and commit changes in the dashboard's repository.",
|
|
"PRE": "`dashboard_id` repository exists and `commit_data` has message and files.",
|
|
"POST": "Specified files are staged and a new commit is created.",
|
|
"PARAM": "commit_data (CommitCreate)"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "push_changes",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 232,
|
|
"end_line": 248,
|
|
"tags": {
|
|
"PURPOSE": "Push local commits to the remote repository.",
|
|
"PRE": "`dashboard_id` repository exists and has a remote configured.",
|
|
"POST": "Local commits are pushed to the remote repository.",
|
|
"PARAM": "dashboard_id (int)"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "pull_changes",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 250,
|
|
"end_line": 266,
|
|
"tags": {
|
|
"PURPOSE": "Pull changes from the remote repository.",
|
|
"PRE": "`dashboard_id` repository exists and has a remote configured.",
|
|
"POST": "Remote changes are fetched and merged into the local branch.",
|
|
"PARAM": "dashboard_id (int)"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "sync_dashboard",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 268,
|
|
"end_line": 291,
|
|
"tags": {
|
|
"PURPOSE": "Sync dashboard state from Superset to Git using the GitPlugin.",
|
|
"PRE": "`dashboard_id` is valid; GitPlugin is available.",
|
|
"POST": "Dashboard YAMLs are exported from Superset and committed to Git.",
|
|
"PARAM": "source_env_id (Optional[str])"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_environments",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 293,
|
|
"end_line": 313,
|
|
"tags": {
|
|
"PURPOSE": "List all deployment environments.",
|
|
"PRE": "Config manager is accessible.",
|
|
"POST": "Returns a list of DeploymentEnvironmentSchema objects.",
|
|
"RETURN": "List[DeploymentEnvironmentSchema]"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "deploy_dashboard",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 315,
|
|
"end_line": 338,
|
|
"tags": {
|
|
"PURPOSE": "Deploy dashboard from Git to a target environment.",
|
|
"PRE": "`dashboard_id` and `deploy_data.environment_id` are valid.",
|
|
"POST": "Dashboard YAMLs are read from Git and imported into the target Superset.",
|
|
"PARAM": "deploy_data (DeployRequest)"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_history",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 340,
|
|
"end_line": 358,
|
|
"tags": {
|
|
"PURPOSE": "View commit history for a dashboard's repository.",
|
|
"PRE": "`dashboard_id` repository exists.",
|
|
"POST": "Returns a list of recent commits from the repository.",
|
|
"PARAM": "limit (int)",
|
|
"RETURN": "List[CommitSchema]"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_repository_status",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 360,
|
|
"end_line": 376,
|
|
"tags": {
|
|
"PURPOSE": "Get current Git status for a dashboard repository.",
|
|
"PRE": "`dashboard_id` repository exists.",
|
|
"POST": "Returns the status of the working directory (staged, unstaged, untracked).",
|
|
"PARAM": "dashboard_id (int)",
|
|
"RETURN": "dict"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_repository_diff",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 378,
|
|
"end_line": 399,
|
|
"tags": {
|
|
"PURPOSE": "Get Git diff for a dashboard repository.",
|
|
"PRE": "`dashboard_id` repository exists.",
|
|
"POST": "Returns the diff text for the specified file or all changes.",
|
|
"PARAM": "staged (bool)",
|
|
"RETURN": "str"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "generate_commit_message",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 401,
|
|
"end_line": 454,
|
|
"tags": {
|
|
"PURPOSE": "Generate a suggested commit message using LLM.",
|
|
"PRE": "Repository for `dashboard_id` is initialized.",
|
|
"POST": "Returns a suggested commit message string."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "ConnectionsRouter",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 100,
|
|
"tags": {
|
|
"SEMANTICS": "api, router, connections, database",
|
|
"PURPOSE": "Defines the FastAPI router for managing external database connections.",
|
|
"LAYER": "UI (API)",
|
|
"RELATION": "Depends on SQLAlchemy session.",
|
|
"CONSTRAINT": "Must use belief_scope for logging."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "ConnectionSchema",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 21,
|
|
"end_line": 35,
|
|
"tags": {
|
|
"PURPOSE": "Pydantic model for connection response."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 21
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 21
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
},
|
|
{
|
|
"name": "ConnectionCreate",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 37,
|
|
"end_line": 47,
|
|
"tags": {
|
|
"PURPOSE": "Pydantic model for creating a connection."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 37
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 37
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
},
|
|
{
|
|
"name": "list_connections",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 49,
|
|
"end_line": 60,
|
|
"tags": {
|
|
"PURPOSE": "Lists all saved connections.",
|
|
"PRE": "Database session is active.",
|
|
"POST": "Returns list of connection configs.",
|
|
"PARAM": "db (Session) - Database session.",
|
|
"RETURN": "List[ConnectionSchema] - List of connections."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "create_connection",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 62,
|
|
"end_line": 78,
|
|
"tags": {
|
|
"PURPOSE": "Creates a new connection configuration.",
|
|
"PRE": "Connection name is unique.",
|
|
"POST": "Connection is saved to DB.",
|
|
"PARAM": "db (Session) - Database session.",
|
|
"RETURN": "ConnectionSchema - Created connection."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "delete_connection",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 80,
|
|
"end_line": 98,
|
|
"tags": {
|
|
"PURPOSE": "Deletes a connection configuration.",
|
|
"PRE": "Connection ID exists.",
|
|
"POST": "Connection is removed from DB.",
|
|
"PARAM": "db (Session) - Database session.",
|
|
"RETURN": "None."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
}
|
|
},
|
|
{
|
|
"name": "backend.src.api.routes.environments",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 136,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"SEMANTICS": "api, environments, superset, databases",
|
|
"PURPOSE": "API endpoints for listing environments and their databases.",
|
|
"LAYER": "API",
|
|
"INVARIANT": "Environment IDs must exist in the configuration."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "backend.src.dependencies"
|
|
},
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "backend.src.core.superset_client"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "ScheduleSchema",
|
|
"type": "DataClass",
|
|
"tier": "STANDARD",
|
|
"start_line": 23,
|
|
"end_line": 27,
|
|
"tags": {},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "EnvironmentResponse",
|
|
"type": "DataClass",
|
|
"tier": "STANDARD",
|
|
"start_line": 29,
|
|
"end_line": 35,
|
|
"tags": {},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "DatabaseResponse",
|
|
"type": "DataClass",
|
|
"tier": "STANDARD",
|
|
"start_line": 37,
|
|
"end_line": 42,
|
|
"tags": {},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_environments",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 44,
|
|
"end_line": 72,
|
|
"tags": {
|
|
"PURPOSE": "List all configured environments.",
|
|
"LAYER": "API",
|
|
"SEMANTICS": "list, environments, config",
|
|
"PRE": "config_manager is injected via Depends.",
|
|
"POST": "Returns a list of EnvironmentResponse objects.",
|
|
"RETURN": "List[EnvironmentResponse]"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "update_environment_schedule",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 74,
|
|
"end_line": 106,
|
|
"tags": {
|
|
"PURPOSE": "Update backup schedule for an environment.",
|
|
"LAYER": "API",
|
|
"SEMANTICS": "update, schedule, backup, environment",
|
|
"PRE": "Environment id exists, schedule is valid ScheduleSchema.",
|
|
"POST": "Backup schedule updated and scheduler reloaded.",
|
|
"PARAM": "schedule (ScheduleSchema) - The new schedule."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_environment_databases",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 108,
|
|
"end_line": 134,
|
|
"tags": {
|
|
"PURPOSE": "Fetch the list of databases from a specific environment.",
|
|
"LAYER": "API",
|
|
"SEMANTICS": "fetch, databases, superset, environment",
|
|
"PRE": "Environment id exists.",
|
|
"POST": "Returns a list of database summaries from the environment.",
|
|
"PARAM": "id (str) - The environment ID.",
|
|
"RETURN": "List[Dict] - List of databases."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "backend.src.api.routes.migration",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 81,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"SEMANTICS": "api, migration, dashboards",
|
|
"PURPOSE": "API endpoints for migration operations.",
|
|
"LAYER": "API"
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "backend.src.dependencies"
|
|
},
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "backend.src.models.dashboard"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "get_dashboards",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 18,
|
|
"end_line": 39,
|
|
"tags": {
|
|
"PURPOSE": "Fetch all dashboards from the specified environment for the grid.",
|
|
"PRE": "Environment ID must be valid.",
|
|
"POST": "Returns a list of dashboard metadata.",
|
|
"PARAM": "env_id (str) - The ID of the environment to fetch from.",
|
|
"RETURN": "List[DashboardMetadata]"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "execute_migration",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 41,
|
|
"end_line": 79,
|
|
"tags": {
|
|
"PURPOSE": "Execute the migration of selected dashboards.",
|
|
"PRE": "Selection must be valid and environments must exist.",
|
|
"POST": "Starts the migration task and returns the task ID.",
|
|
"PARAM": "selection (DashboardSelection) - The dashboards to migrate.",
|
|
"RETURN": "Dict - {\"task_id\": str, \"message\": str}"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "PluginsRouter",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 32,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"SEMANTICS": "api, router, plugins, list",
|
|
"PURPOSE": "Defines the FastAPI router for plugin-related endpoints, allowing clients to list available plugins.",
|
|
"LAYER": "UI (API)",
|
|
"RELATION": "Depends on the PluginLoader and PluginConfig. It is included by the main app."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "list_plugins",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 16,
|
|
"end_line": 31,
|
|
"tags": {
|
|
"PURPOSE": "Retrieve a list of all available plugins.",
|
|
"PRE": "plugin_loader is injected via Depends.",
|
|
"POST": "Returns a list of PluginConfig objects.",
|
|
"RETURN": "List[PluginConfig] - List of registered plugins."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "backend.src.api.routes.mappings",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 130,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"SEMANTICS": "api, mappings, database, fuzzy-matching",
|
|
"PURPOSE": "API endpoints for managing database mappings and getting suggestions.",
|
|
"LAYER": "API",
|
|
"INVARIANT": "Mappings are persisted in the SQLite database."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "backend.src.dependencies"
|
|
},
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "backend.src.core.database"
|
|
},
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "backend.src.services.mapping_service"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "MappingCreate",
|
|
"type": "DataClass",
|
|
"tier": "STANDARD",
|
|
"start_line": 26,
|
|
"end_line": 35,
|
|
"tags": {},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "MappingResponse",
|
|
"type": "DataClass",
|
|
"tier": "STANDARD",
|
|
"start_line": 37,
|
|
"end_line": 50,
|
|
"tags": {},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "SuggestRequest",
|
|
"type": "DataClass",
|
|
"tier": "STANDARD",
|
|
"start_line": 52,
|
|
"end_line": 56,
|
|
"tags": {},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_mappings",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 58,
|
|
"end_line": 76,
|
|
"tags": {
|
|
"PURPOSE": "List all saved database mappings.",
|
|
"PRE": "db session is injected.",
|
|
"POST": "Returns filtered list of DatabaseMapping records."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "create_mapping",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 78,
|
|
"end_line": 109,
|
|
"tags": {
|
|
"PURPOSE": "Create or update a database mapping.",
|
|
"PRE": "mapping is valid MappingCreate, db session is injected.",
|
|
"POST": "DatabaseMapping created or updated in database."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "suggest_mappings_api",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 111,
|
|
"end_line": 128,
|
|
"tags": {
|
|
"PURPOSE": "Get suggested mappings based on fuzzy matching.",
|
|
"PRE": "request is valid SuggestRequest, config_manager is injected.",
|
|
"POST": "Returns mapping suggestions."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "SettingsRouter",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 376,
|
|
"tags": {
|
|
"SEMANTICS": "settings, api, router, fastapi",
|
|
"PURPOSE": "Provides API endpoints for managing application settings and Superset environments.",
|
|
"LAYER": "UI (API)",
|
|
"INVARIANT": "All settings changes must be persisted via ConfigManager.",
|
|
"PUBLIC_API": "router"
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "ConfigManager"
|
|
},
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "ConfigModels"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "LoggingConfigResponse",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 24,
|
|
"end_line": 31,
|
|
"tags": {
|
|
"PURPOSE": "Response model for logging configuration with current task log level.",
|
|
"SEMANTICS": "logging, config, response"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 24
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 24
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
},
|
|
{
|
|
"name": "get_settings",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 35,
|
|
"end_line": 53,
|
|
"tags": {
|
|
"PURPOSE": "Retrieves all application settings.",
|
|
"PRE": "Config manager is available.",
|
|
"POST": "Returns masked AppConfig.",
|
|
"RETURN": "AppConfig - The current configuration."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "update_global_settings",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 55,
|
|
"end_line": 72,
|
|
"tags": {
|
|
"PURPOSE": "Updates global application settings.",
|
|
"PRE": "New settings are provided.",
|
|
"POST": "Global settings are updated.",
|
|
"PARAM": "settings (GlobalSettings) - The new global settings.",
|
|
"RETURN": "GlobalSettings - The updated settings."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_storage_settings",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 74,
|
|
"end_line": 84,
|
|
"tags": {
|
|
"PURPOSE": "Retrieves storage-specific settings.",
|
|
"RETURN": "StorageConfig - The storage configuration."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 74
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 74
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 74
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 74
|
|
}
|
|
],
|
|
"score": 0.4666666666666666
|
|
}
|
|
},
|
|
{
|
|
"name": "update_storage_settings",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 86,
|
|
"end_line": 106,
|
|
"tags": {
|
|
"PURPOSE": "Updates storage-specific settings.",
|
|
"PARAM": "storage (StorageConfig) - The new storage settings.",
|
|
"POST": "Storage settings are updated and saved.",
|
|
"RETURN": "StorageConfig - The updated storage settings."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 86
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 86
|
|
}
|
|
],
|
|
"score": 0.7333333333333334
|
|
}
|
|
},
|
|
{
|
|
"name": "get_environments",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 108,
|
|
"end_line": 121,
|
|
"tags": {
|
|
"PURPOSE": "Lists all configured Superset environments.",
|
|
"PRE": "Config manager is available.",
|
|
"POST": "Returns list of environments.",
|
|
"RETURN": "List[Environment] - List of environments."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "add_environment",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 123,
|
|
"end_line": 148,
|
|
"tags": {
|
|
"PURPOSE": "Adds a new Superset environment.",
|
|
"PRE": "Environment data is valid and reachable.",
|
|
"POST": "Environment is added to config.",
|
|
"PARAM": "env (Environment) - The environment to add.",
|
|
"RETURN": "Environment - The added environment."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "update_environment",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 150,
|
|
"end_line": 184,
|
|
"tags": {
|
|
"PURPOSE": "Updates an existing Superset environment.",
|
|
"PRE": "ID and valid environment data are provided.",
|
|
"POST": "Environment is updated in config.",
|
|
"PARAM": "env (Environment) - The updated environment data.",
|
|
"RETURN": "Environment - The updated environment."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "delete_environment",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 186,
|
|
"end_line": 200,
|
|
"tags": {
|
|
"PURPOSE": "Deletes a Superset environment.",
|
|
"PRE": "ID is provided.",
|
|
"POST": "Environment is removed from config.",
|
|
"PARAM": "id (str) - The ID of the environment to delete."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_environment_connection",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 202,
|
|
"end_line": 233,
|
|
"tags": {
|
|
"PURPOSE": "Tests the connection to a Superset environment.",
|
|
"PRE": "ID is provided.",
|
|
"POST": "Returns success or error status.",
|
|
"PARAM": "id (str) - The ID of the environment to test.",
|
|
"RETURN": "dict - Success message or error."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_logging_config",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 235,
|
|
"end_line": 252,
|
|
"tags": {
|
|
"PURPOSE": "Retrieves current logging configuration.",
|
|
"PRE": "Config manager is available.",
|
|
"POST": "Returns logging configuration.",
|
|
"RETURN": "LoggingConfigResponse - The current logging config."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "update_logging_config",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 254,
|
|
"end_line": 279,
|
|
"tags": {
|
|
"PURPOSE": "Updates logging configuration.",
|
|
"PRE": "New logging config is provided.",
|
|
"POST": "Logging configuration is updated and saved.",
|
|
"PARAM": "config (LoggingConfig) - The new logging configuration.",
|
|
"RETURN": "LoggingConfigResponse - The updated logging config."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "ConsolidatedSettingsResponse",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 281,
|
|
"end_line": 289,
|
|
"tags": {},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 281
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 281
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 281
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 281
|
|
}
|
|
],
|
|
"score": 0.39999999999999997
|
|
}
|
|
},
|
|
{
|
|
"name": "get_consolidated_settings",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 291,
|
|
"end_line": 334,
|
|
"tags": {
|
|
"PURPOSE": "Retrieves all settings categories in a single call",
|
|
"PRE": "Config manager is available.",
|
|
"POST": "Returns all consolidated settings.",
|
|
"RETURN": "ConsolidatedSettingsResponse - All settings categories."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "update_consolidated_settings",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 336,
|
|
"end_line": 374,
|
|
"tags": {
|
|
"PURPOSE": "Bulk update application settings from the consolidated view.",
|
|
"PRE": "User has admin permissions, config is valid.",
|
|
"POST": "Settings are updated and saved via ConfigManager."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
}
|
|
},
|
|
{
|
|
"name": "backend.src.api.routes.admin",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 310,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"SEMANTICS": "api, admin, users, roles, permissions",
|
|
"PURPOSE": "Admin API endpoints for user and role management.",
|
|
"LAYER": "API",
|
|
"INVARIANT": "All endpoints in this module require 'Admin' role or 'admin' scope."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "USES",
|
|
"target": "backend.src.core.auth.repository.AuthRepository"
|
|
},
|
|
{
|
|
"type": "USES",
|
|
"target": "backend.src.dependencies.has_permission"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "router",
|
|
"type": "Variable",
|
|
"tier": "STANDARD",
|
|
"start_line": 29,
|
|
"end_line": 32,
|
|
"tags": {
|
|
"PURPOSE": "APIRouter instance for admin routes."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "list_users",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 34,
|
|
"end_line": 48,
|
|
"tags": {
|
|
"PURPOSE": "Lists all registered users.",
|
|
"PRE": "Current user has 'Admin' role.",
|
|
"POST": "Returns a list of UserSchema objects.",
|
|
"PARAM": "db (Session) - Auth database session.",
|
|
"RETURN": "List[UserSchema] - List of users."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "create_user",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 50,
|
|
"end_line": 85,
|
|
"tags": {
|
|
"PURPOSE": "Creates a new local user.",
|
|
"PRE": "Current user has 'Admin' role.",
|
|
"POST": "New user is created in the database.",
|
|
"PARAM": "db (Session) - Auth database session.",
|
|
"RETURN": "UserSchema - The created user."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "update_user",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 87,
|
|
"end_line": 119,
|
|
"tags": {
|
|
"PURPOSE": "Updates an existing user."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 87
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 87
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 87
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 87
|
|
}
|
|
],
|
|
"score": 0.4666666666666666
|
|
}
|
|
},
|
|
{
|
|
"name": "delete_user",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 121,
|
|
"end_line": 142,
|
|
"tags": {
|
|
"PURPOSE": "Deletes a user."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 121
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 121
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 121
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 121
|
|
}
|
|
],
|
|
"score": 0.4666666666666666
|
|
}
|
|
},
|
|
{
|
|
"name": "list_roles",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 144,
|
|
"end_line": 155,
|
|
"tags": {
|
|
"PURPOSE": "Lists all available roles.",
|
|
"RETURN": "List[RoleSchema] - List of roles."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "CALLS",
|
|
"target": "backend.src.models.auth.Role"
|
|
}
|
|
],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 144
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 144
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 144
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 144
|
|
}
|
|
],
|
|
"score": 0.4666666666666666
|
|
}
|
|
},
|
|
{
|
|
"name": "create_role",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 157,
|
|
"end_line": 192,
|
|
"tags": {
|
|
"PURPOSE": "Creates a new system role with associated permissions.",
|
|
"PRE": "Role name must be unique.",
|
|
"POST": "New Role record is created in auth.db.",
|
|
"PARAM": "db (Session) - Auth database session.",
|
|
"RETURN": "RoleSchema - The created role.",
|
|
"SIDE_EFFECT": "Commits new role and associations to auth.db."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "CALLS",
|
|
"target": "backend.src.core.auth.repository.AuthRepository.get_permission_by_id"
|
|
}
|
|
],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "update_role",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 194,
|
|
"end_line": 236,
|
|
"tags": {
|
|
"PURPOSE": "Updates an existing role's metadata and permissions.",
|
|
"PRE": "role_id must be a valid existing role UUID.",
|
|
"POST": "Role record is updated in auth.db.",
|
|
"PARAM": "db (Session) - Auth database session.",
|
|
"RETURN": "RoleSchema - The updated role.",
|
|
"SIDE_EFFECT": "Commits updates to auth.db."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "CALLS",
|
|
"target": "backend.src.core.auth.repository.AuthRepository.get_role_by_id"
|
|
}
|
|
],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "delete_role",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 238,
|
|
"end_line": 262,
|
|
"tags": {
|
|
"PURPOSE": "Removes a role from the system.",
|
|
"PRE": "role_id must be a valid existing role UUID.",
|
|
"POST": "Role record is removed from auth.db.",
|
|
"PARAM": "db (Session) - Auth database session.",
|
|
"RETURN": "None",
|
|
"SIDE_EFFECT": "Deletes record from auth.db and commits."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "CALLS",
|
|
"target": "backend.src.core.auth.repository.AuthRepository.get_role_by_id"
|
|
}
|
|
],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "list_permissions",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 264,
|
|
"end_line": 278,
|
|
"tags": {
|
|
"PURPOSE": "Lists all available system permissions for assignment.",
|
|
"POST": "Returns a list of all PermissionSchema objects.",
|
|
"PARAM": "db (Session) - Auth database session.",
|
|
"RETURN": "List[PermissionSchema] - List of permissions."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "CALLS",
|
|
"target": "backend.src.core.auth.repository.AuthRepository.list_permissions"
|
|
}
|
|
],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 264
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 264
|
|
}
|
|
],
|
|
"score": 0.7333333333333334
|
|
}
|
|
},
|
|
{
|
|
"name": "list_ad_mappings",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 280,
|
|
"end_line": 289,
|
|
"tags": {
|
|
"PURPOSE": "Lists all AD Group to Role mappings."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 280
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 280
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 280
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 280
|
|
}
|
|
],
|
|
"score": 0.4666666666666666
|
|
}
|
|
},
|
|
{
|
|
"name": "create_ad_mapping",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 291,
|
|
"end_line": 308,
|
|
"tags": {
|
|
"PURPOSE": "Creates a new AD Group mapping."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 291
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 291
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 291
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 291
|
|
}
|
|
],
|
|
"score": 0.4666666666666666
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "backend.src.api.routes.git_schemas",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 144,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"SEMANTICS": "git, schemas, pydantic, api, contracts",
|
|
"PURPOSE": "Defines Pydantic models for the Git integration API layer.",
|
|
"LAYER": "API",
|
|
"INVARIANT": "All schemas must be compatible with the FastAPI router."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "backend.src.models.git"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "GitServerConfigBase",
|
|
"type": "Class",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 16,
|
|
"end_line": 25,
|
|
"tags": {
|
|
"TIER": "TRIVIAL",
|
|
"PURPOSE": "Base schema for Git server configuration attributes."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "GitServerConfigCreate",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 27,
|
|
"end_line": 32,
|
|
"tags": {
|
|
"PURPOSE": "Schema for creating a new Git server configuration."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 27
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 27
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
},
|
|
{
|
|
"name": "GitServerConfigSchema",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 34,
|
|
"end_line": 44,
|
|
"tags": {
|
|
"PURPOSE": "Schema for representing a Git server configuration with metadata."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 34
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 34
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
},
|
|
{
|
|
"name": "GitRepositorySchema",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 46,
|
|
"end_line": 60,
|
|
"tags": {
|
|
"PURPOSE": "Schema for tracking a local Git repository linked to a dashboard."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 46
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 46
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
},
|
|
{
|
|
"name": "BranchSchema",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 62,
|
|
"end_line": 70,
|
|
"tags": {
|
|
"PURPOSE": "Schema for representing a Git branch metadata."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 62
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 62
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
},
|
|
{
|
|
"name": "CommitSchema",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 72,
|
|
"end_line": 82,
|
|
"tags": {
|
|
"PURPOSE": "Schema for representing Git commit details."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 72
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 72
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
},
|
|
{
|
|
"name": "BranchCreate",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 84,
|
|
"end_line": 90,
|
|
"tags": {
|
|
"PURPOSE": "Schema for branch creation requests."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 84
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 84
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
},
|
|
{
|
|
"name": "BranchCheckout",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 92,
|
|
"end_line": 97,
|
|
"tags": {
|
|
"PURPOSE": "Schema for branch checkout requests."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 92
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 92
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
},
|
|
{
|
|
"name": "CommitCreate",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 99,
|
|
"end_line": 105,
|
|
"tags": {
|
|
"PURPOSE": "Schema for staging and committing changes."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 99
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 99
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
},
|
|
{
|
|
"name": "ConflictResolution",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 107,
|
|
"end_line": 114,
|
|
"tags": {
|
|
"PURPOSE": "Schema for resolving merge conflicts."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 107
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 107
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
},
|
|
{
|
|
"name": "DeploymentEnvironmentSchema",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 116,
|
|
"end_line": 127,
|
|
"tags": {
|
|
"PURPOSE": "Schema for representing a target deployment environment."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 116
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 116
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
},
|
|
{
|
|
"name": "DeployRequest",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 129,
|
|
"end_line": 134,
|
|
"tags": {
|
|
"PURPOSE": "Schema for dashboard deployment requests."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 129
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 129
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
},
|
|
{
|
|
"name": "RepoInitRequest",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 136,
|
|
"end_line": 142,
|
|
"tags": {
|
|
"PURPOSE": "Schema for repository initialization requests."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 136
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 136
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "storage_routes",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 146,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"SEMANTICS": "storage, files, upload, download, backup, repository",
|
|
"PURPOSE": "API endpoints for file storage management (backups and repositories).",
|
|
"LAYER": "API",
|
|
"INVARIANT": "All paths must be validated against path traversal."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "backend.src.models.storage"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "list_files",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 24,
|
|
"end_line": 47,
|
|
"tags": {
|
|
"PURPOSE": "List all files and directories in the storage system.",
|
|
"PRE": "None.",
|
|
"POST": "Returns a list of StoredFile objects.",
|
|
"PARAM": "path (Optional[str]) - Subpath within the category.",
|
|
"RETURN": "List[StoredFile] - List of files/directories."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "CALLS",
|
|
"target": "StoragePlugin.list_files"
|
|
}
|
|
],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "upload_file",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 49,
|
|
"end_line": 80,
|
|
"tags": {
|
|
"PURPOSE": "Upload a file to the storage system.",
|
|
"PRE": "file must be a valid UploadFile.",
|
|
"POST": "Returns the StoredFile object of the uploaded file.",
|
|
"PARAM": "file (UploadFile) - The file content.",
|
|
"RETURN": "StoredFile - Metadata of the uploaded file.",
|
|
"SIDE_EFFECT": "Writes file to the filesystem."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "CALLS",
|
|
"target": "StoragePlugin.save_file"
|
|
}
|
|
],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "delete_file",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 82,
|
|
"end_line": 112,
|
|
"tags": {
|
|
"PURPOSE": "Delete a specific file or directory.",
|
|
"PRE": "category must be a valid FileCategory.",
|
|
"POST": "Item is removed from storage.",
|
|
"PARAM": "path (str) - Relative path of the item.",
|
|
"RETURN": "None",
|
|
"SIDE_EFFECT": "Deletes item from the filesystem."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "CALLS",
|
|
"target": "StoragePlugin.delete_file"
|
|
}
|
|
],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "download_file",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 114,
|
|
"end_line": 144,
|
|
"tags": {
|
|
"PURPOSE": "Retrieve a file for download.",
|
|
"PRE": "category must be a valid FileCategory.",
|
|
"POST": "Returns a FileResponse.",
|
|
"PARAM": "path (str) - Relative path of the file.",
|
|
"RETURN": "FileResponse - The file content."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "CALLS",
|
|
"target": "StoragePlugin.get_file_path"
|
|
}
|
|
],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "__init__",
|
|
"type": "Module",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 1,
|
|
"end_line": 10,
|
|
"tags": {
|
|
"PURPOSE": "Auto-generated module for backend/src/api/routes/__init__.py",
|
|
"TIER": "TRIVIAL",
|
|
"LAYER": "Unknown"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "__getattr__",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 6,
|
|
"end_line": 6,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "TasksRouter",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 279,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"SEMANTICS": "api, router, tasks, create, list, get, logs",
|
|
"PURPOSE": "Defines the FastAPI router for task-related endpoints, allowing clients to create, list, and get the status of tasks.",
|
|
"LAYER": "UI (API)",
|
|
"RELATION": "Depends on the TaskManager. It is included by the main app."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "create_task",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 29,
|
|
"end_line": 70,
|
|
"tags": {
|
|
"PURPOSE": "Create and start a new task for a given plugin.",
|
|
"PARAM": "task_manager (TaskManager) - The task manager instance.",
|
|
"PRE": "plugin_id must exist and params must be valid for that plugin.",
|
|
"POST": "A new task is created and started.",
|
|
"RETURN": "Task - The created task instance."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "list_tasks",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 73,
|
|
"end_line": 94,
|
|
"tags": {
|
|
"PURPOSE": "Retrieve a list of tasks with pagination and optional status filter.",
|
|
"PARAM": "task_manager (TaskManager) - The task manager instance.",
|
|
"PRE": "task_manager must be available.",
|
|
"POST": "Returns a list of tasks.",
|
|
"RETURN": "List[Task] - List of tasks."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_task",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 97,
|
|
"end_line": 117,
|
|
"tags": {
|
|
"PURPOSE": "Retrieve the details of a specific task.",
|
|
"PARAM": "task_manager (TaskManager) - The task manager instance.",
|
|
"PRE": "task_id must exist.",
|
|
"POST": "Returns task details or raises 404.",
|
|
"RETURN": "Task - The task details."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_task_logs",
|
|
"type": "Function",
|
|
"tier": "CRITICAL",
|
|
"start_line": 120,
|
|
"end_line": 160,
|
|
"tags": {
|
|
"PURPOSE": "Retrieve logs for a specific task with optional filtering.",
|
|
"PARAM": "task_manager (TaskManager) - The task manager instance.",
|
|
"PRE": "task_id must exist.",
|
|
"POST": "Returns a list of log entries or raises 404.",
|
|
"RETURN": "List[LogEntry] - List of log entries.",
|
|
"TIER": "CRITICAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_task_log_stats",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 163,
|
|
"end_line": 183,
|
|
"tags": {
|
|
"PURPOSE": "Get statistics about logs for a task (counts by level and source).",
|
|
"PARAM": "task_manager (TaskManager) - The task manager instance.",
|
|
"PRE": "task_id must exist.",
|
|
"POST": "Returns log statistics or raises 404.",
|
|
"RETURN": "LogStats - Statistics about task logs."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_task_log_sources",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 186,
|
|
"end_line": 206,
|
|
"tags": {
|
|
"PURPOSE": "Get unique sources for a task's logs.",
|
|
"PARAM": "task_manager (TaskManager) - The task manager instance.",
|
|
"PRE": "task_id must exist.",
|
|
"POST": "Returns list of unique source names or raises 404.",
|
|
"RETURN": "List[str] - Unique source names."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "resolve_task",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 209,
|
|
"end_line": 232,
|
|
"tags": {
|
|
"PURPOSE": "Resolve a task that is awaiting mapping.",
|
|
"PARAM": "task_manager (TaskManager) - The task manager instance.",
|
|
"PRE": "task must be in AWAITING_MAPPING status.",
|
|
"POST": "Task is resolved and resumes execution.",
|
|
"RETURN": "Task - The updated task object."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "resume_task",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 235,
|
|
"end_line": 258,
|
|
"tags": {
|
|
"PURPOSE": "Resume a task that is awaiting input (e.g., passwords).",
|
|
"PARAM": "task_manager (TaskManager) - The task manager instance.",
|
|
"PRE": "task must be in AWAITING_INPUT status.",
|
|
"POST": "Task resumes execution with provided input.",
|
|
"RETURN": "Task - The updated task object."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "clear_tasks",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 261,
|
|
"end_line": 278,
|
|
"tags": {
|
|
"PURPOSE": "Clear tasks matching the status filter.",
|
|
"PARAM": "task_manager (TaskManager) - The task manager instance.",
|
|
"PRE": "task_manager is available.",
|
|
"POST": "Tasks are removed from memory/persistence."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "backend.src.api.routes.dashboards",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 327,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"SEMANTICS": "api, dashboards, resources, hub",
|
|
"PURPOSE": "API endpoints for the Dashboard Hub - listing dashboards with Git and task status",
|
|
"LAYER": "API",
|
|
"INVARIANT": "All dashboard responses include git_status and last_task metadata"
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "backend.src.dependencies"
|
|
},
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "backend.src.services.resource_service"
|
|
},
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "backend.src.core.superset_client"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "GitStatus",
|
|
"type": "DataClass",
|
|
"tier": "STANDARD",
|
|
"start_line": 23,
|
|
"end_line": 27,
|
|
"tags": {},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "LastTask",
|
|
"type": "DataClass",
|
|
"tier": "STANDARD",
|
|
"start_line": 29,
|
|
"end_line": 33,
|
|
"tags": {},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "DashboardItem",
|
|
"type": "DataClass",
|
|
"tier": "STANDARD",
|
|
"start_line": 35,
|
|
"end_line": 44,
|
|
"tags": {},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "DashboardsResponse",
|
|
"type": "DataClass",
|
|
"tier": "STANDARD",
|
|
"start_line": 46,
|
|
"end_line": 53,
|
|
"tags": {},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_dashboards",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 55,
|
|
"end_line": 133,
|
|
"tags": {
|
|
"PURPOSE": "Fetch list of dashboards from a specific environment with Git status and last task status",
|
|
"PRE": "page_size must be between 1 and 100 if provided",
|
|
"POST": "Response includes pagination metadata (page, page_size, total, total_pages)",
|
|
"PARAM": "page_size (Optional[int]) - Items per page (default: 10, max: 100)",
|
|
"RETURN": "DashboardsResponse - List of dashboards with status metadata"
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "CALLS",
|
|
"target": "ResourceService.get_dashboards_with_status"
|
|
}
|
|
],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "MigrateRequest",
|
|
"type": "DataClass",
|
|
"tier": "STANDARD",
|
|
"start_line": 135,
|
|
"end_line": 142,
|
|
"tags": {},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "TaskResponse",
|
|
"type": "DataClass",
|
|
"tier": "STANDARD",
|
|
"start_line": 144,
|
|
"end_line": 147,
|
|
"tags": {},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "migrate_dashboards",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 149,
|
|
"end_line": 207,
|
|
"tags": {
|
|
"PURPOSE": "Trigger bulk migration of dashboards from source to target environment",
|
|
"PRE": "dashboard_ids is a non-empty list",
|
|
"POST": "Task is created and queued for execution",
|
|
"PARAM": "request (MigrateRequest) - Migration request with source, target, and dashboard IDs",
|
|
"RETURN": "TaskResponse - Task ID for tracking"
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "DISPATCHES",
|
|
"target": "MigrationPlugin"
|
|
},
|
|
{
|
|
"type": "CALLS",
|
|
"target": "task_manager.create_task"
|
|
}
|
|
],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "BackupRequest",
|
|
"type": "DataClass",
|
|
"tier": "STANDARD",
|
|
"start_line": 209,
|
|
"end_line": 214,
|
|
"tags": {},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "backup_dashboards",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 216,
|
|
"end_line": 269,
|
|
"tags": {
|
|
"PURPOSE": "Trigger bulk backup of dashboards with optional cron schedule",
|
|
"PRE": "dashboard_ids is a non-empty list",
|
|
"POST": "If schedule is provided, a scheduled task is created",
|
|
"PARAM": "request (BackupRequest) - Backup request with environment and dashboard IDs",
|
|
"RETURN": "TaskResponse - Task ID for tracking"
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "DISPATCHES",
|
|
"target": "BackupPlugin"
|
|
},
|
|
{
|
|
"type": "CALLS",
|
|
"target": "task_manager.create_task"
|
|
}
|
|
],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "DatabaseMapping",
|
|
"type": "DataClass",
|
|
"tier": "STANDARD",
|
|
"start_line": 271,
|
|
"end_line": 278,
|
|
"tags": {},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "DatabaseMappingsResponse",
|
|
"type": "DataClass",
|
|
"tier": "STANDARD",
|
|
"start_line": 280,
|
|
"end_line": 283,
|
|
"tags": {},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_database_mappings",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 285,
|
|
"end_line": 325,
|
|
"tags": {
|
|
"PURPOSE": "Get database mapping suggestions between source and target environments",
|
|
"PRE": "source_env_id and target_env_id are valid environment IDs",
|
|
"POST": "Returns list of suggested database mappings with confidence scores",
|
|
"PARAM": "target_env_id (str) - Target environment ID",
|
|
"RETURN": "DatabaseMappingsResponse - List of suggested mappings"
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "CALLS",
|
|
"target": "MappingService.get_suggestions"
|
|
}
|
|
],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "backend.src.api.routes.__tests__.test_dashboards",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 286,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"PURPOSE": "Unit tests for Dashboards API endpoints",
|
|
"LAYER": "API"
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "TESTS",
|
|
"target": "backend.src.api.routes.dashboards"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "test_get_dashboards_success",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 16,
|
|
"end_line": 61,
|
|
"tags": {
|
|
"TEST": "GET /api/dashboards returns 200 and valid schema",
|
|
"PRE": "env_id exists",
|
|
"POST": "Response matches DashboardsResponse schema"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 16
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 16
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 16
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 16
|
|
}
|
|
],
|
|
"score": 0.5333333333333333
|
|
}
|
|
},
|
|
{
|
|
"name": "test_get_dashboards_with_search",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 64,
|
|
"end_line": 99,
|
|
"tags": {
|
|
"TEST": "GET /api/dashboards filters by search term",
|
|
"PRE": "search parameter provided",
|
|
"POST": "Only matching dashboards returned"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 64
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 64
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 64
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 64
|
|
}
|
|
],
|
|
"score": 0.5333333333333333
|
|
}
|
|
},
|
|
{
|
|
"name": "test_get_dashboards_env_not_found",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 102,
|
|
"end_line": 119,
|
|
"tags": {
|
|
"TEST": "GET /api/dashboards returns 404 if env_id missing",
|
|
"PRE": "env_id does not exist",
|
|
"POST": "Returns 404 error"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 102
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 102
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 102
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 102
|
|
}
|
|
],
|
|
"score": 0.5333333333333333
|
|
}
|
|
},
|
|
{
|
|
"name": "test_get_dashboards_invalid_pagination",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 122,
|
|
"end_line": 146,
|
|
"tags": {
|
|
"TEST": "GET /api/dashboards returns 400 for invalid page/page_size",
|
|
"PRE": "page < 1 or page_size > 100",
|
|
"POST": "Returns 400 error"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 122
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 122
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 122
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 122
|
|
}
|
|
],
|
|
"score": 0.5333333333333333
|
|
}
|
|
},
|
|
{
|
|
"name": "test_migrate_dashboards_success",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 149,
|
|
"end_line": 188,
|
|
"tags": {
|
|
"TEST": "POST /api/dashboards/migrate creates migration task",
|
|
"PRE": "Valid source_env_id, target_env_id, dashboard_ids",
|
|
"POST": "Returns task_id"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 149
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 149
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 149
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 149
|
|
}
|
|
],
|
|
"score": 0.5333333333333333
|
|
}
|
|
},
|
|
{
|
|
"name": "test_migrate_dashboards_no_ids",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 191,
|
|
"end_line": 212,
|
|
"tags": {
|
|
"TEST": "POST /api/dashboards/migrate returns 400 for empty dashboard_ids",
|
|
"PRE": "dashboard_ids is empty",
|
|
"POST": "Returns 400 error"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 191
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 191
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 191
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 191
|
|
}
|
|
],
|
|
"score": 0.5333333333333333
|
|
}
|
|
},
|
|
{
|
|
"name": "test_backup_dashboards_success",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 215,
|
|
"end_line": 251,
|
|
"tags": {
|
|
"TEST": "POST /api/dashboards/backup creates backup task",
|
|
"PRE": "Valid env_id, dashboard_ids",
|
|
"POST": "Returns task_id"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 215
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 215
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 215
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 215
|
|
}
|
|
],
|
|
"score": 0.5333333333333333
|
|
}
|
|
},
|
|
{
|
|
"name": "test_get_database_mappings_success",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 254,
|
|
"end_line": 283,
|
|
"tags": {
|
|
"TEST": "GET /api/dashboards/db-mappings returns mapping suggestions",
|
|
"PRE": "Valid source_env_id, target_env_id",
|
|
"POST": "Returns list of database mappings"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 254
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 254
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 254
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 254
|
|
}
|
|
],
|
|
"score": 0.5333333333333333
|
|
}
|
|
},
|
|
{
|
|
"name": "mock_get_dashboards",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 35,
|
|
"end_line": 35,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "mock_get_dashboards",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 81,
|
|
"end_line": 81,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @SEMANTICS (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
}
|
|
},
|
|
{
|
|
"name": "backend.src.api.routes.__tests__.test_datasets",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 209,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"PURPOSE": "Unit tests for Datasets API endpoints",
|
|
"LAYER": "API"
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "TESTS",
|
|
"target": "backend.src.api.routes.datasets"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "test_get_datasets_success",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 16,
|
|
"end_line": 57,
|
|
"tags": {
|
|
"TEST": "GET /api/datasets returns 200 and valid schema",
|
|
"PRE": "env_id exists",
|
|
"POST": "Response matches DatasetsResponse schema"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 16
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 16
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 16
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 16
|
|
}
|
|
],
|
|
"score": 0.5333333333333333
|
|
}
|
|
},
|
|
{
|
|
"name": "test_get_datasets_env_not_found",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 60,
|
|
"end_line": 77,
|
|
"tags": {
|
|
"TEST": "GET /api/datasets returns 404 if env_id missing",
|
|
"PRE": "env_id does not exist",
|
|
"POST": "Returns 404 error"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 60
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 60
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 60
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 60
|
|
}
|
|
],
|
|
"score": 0.5333333333333333
|
|
}
|
|
},
|
|
{
|
|
"name": "test_get_datasets_invalid_pagination",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 80,
|
|
"end_line": 104,
|
|
"tags": {
|
|
"TEST": "GET /api/datasets returns 400 for invalid page/page_size",
|
|
"PRE": "page < 1 or page_size > 100",
|
|
"POST": "Returns 400 error"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 80
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 80
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 80
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 80
|
|
}
|
|
],
|
|
"score": 0.5333333333333333
|
|
}
|
|
},
|
|
{
|
|
"name": "test_map_columns_success",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 107,
|
|
"end_line": 143,
|
|
"tags": {
|
|
"TEST": "POST /api/datasets/map-columns creates mapping task",
|
|
"PRE": "Valid env_id, dataset_ids, source_type",
|
|
"POST": "Returns task_id"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 107
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 107
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 107
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 107
|
|
}
|
|
],
|
|
"score": 0.5333333333333333
|
|
}
|
|
},
|
|
{
|
|
"name": "test_map_columns_invalid_source_type",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 146,
|
|
"end_line": 167,
|
|
"tags": {
|
|
"TEST": "POST /api/datasets/map-columns returns 400 for invalid source_type",
|
|
"PRE": "source_type is not 'postgresql' or 'xlsx'",
|
|
"POST": "Returns 400 error"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 146
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 146
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 146
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 146
|
|
}
|
|
],
|
|
"score": 0.5333333333333333
|
|
}
|
|
},
|
|
{
|
|
"name": "test_generate_docs_success",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 170,
|
|
"end_line": 206,
|
|
"tags": {
|
|
"TEST": "POST /api/datasets/generate-docs creates doc generation task",
|
|
"PRE": "Valid env_id, dataset_ids, llm_provider",
|
|
"POST": "Returns task_id"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 170
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 170
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 170
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 170
|
|
}
|
|
],
|
|
"score": 0.5333333333333333
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @SEMANTICS (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
}
|
|
},
|
|
{
|
|
"name": "backend.src.models.llm",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 46,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"SEMANTICS": "llm, models, sqlalchemy, persistence",
|
|
"PURPOSE": "SQLAlchemy models for LLM provider configuration and validation results.",
|
|
"LAYER": "Domain"
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "INHERITS_FROM",
|
|
"target": "backend.src.models.mapping.Base"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "LLMProvider",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 16,
|
|
"end_line": 29,
|
|
"tags": {
|
|
"PURPOSE": "SQLAlchemy model for LLM provider configuration."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 16
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 16
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
},
|
|
{
|
|
"name": "ValidationRecord",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 31,
|
|
"end_line": 44,
|
|
"tags": {
|
|
"PURPOSE": "SQLAlchemy model for dashboard validation history."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 31
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 31
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
},
|
|
{
|
|
"name": "generate_uuid",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 13,
|
|
"end_line": 13,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "GitModels",
|
|
"type": "Module",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 1,
|
|
"end_line": 73,
|
|
"tags": {
|
|
"TIER": "TRIVIAL",
|
|
"SEMANTICS": "git, models, sqlalchemy, database, schema",
|
|
"PURPOSE": "Git-specific SQLAlchemy models for configuration and repository tracking.",
|
|
"LAYER": "Model",
|
|
"RELATION": "specs/011-git-integration-dashboard/data-model.md"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "GitServerConfig",
|
|
"type": "Class",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 29,
|
|
"end_line": 43,
|
|
"tags": {
|
|
"TIER": "TRIVIAL",
|
|
"PURPOSE": "Configuration for a Git server connection."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "GitRepository",
|
|
"type": "Class",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 45,
|
|
"end_line": 58,
|
|
"tags": {
|
|
"TIER": "TRIVIAL",
|
|
"PURPOSE": "Tracking for a local Git repository linked to a dashboard."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "DeploymentEnvironment",
|
|
"type": "Class",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 60,
|
|
"end_line": 71,
|
|
"tags": {
|
|
"TIER": "TRIVIAL",
|
|
"PURPOSE": "Target Superset environments for dashboard deployment."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "backend.src.models.task",
|
|
"type": "Module",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 1,
|
|
"end_line": 61,
|
|
"tags": {
|
|
"TIER": "TRIVIAL",
|
|
"SEMANTICS": "database, task, record, sqlalchemy, sqlite",
|
|
"PURPOSE": "Defines the database schema for task execution records.",
|
|
"LAYER": "Domain",
|
|
"INVARIANT": "All primary keys are UUID strings."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "sqlalchemy"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "TaskRecord",
|
|
"type": "Class",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 18,
|
|
"end_line": 35,
|
|
"tags": {
|
|
"TIER": "TRIVIAL",
|
|
"PURPOSE": "Represents a persistent record of a task execution."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "TaskLogRecord",
|
|
"type": "Class",
|
|
"tier": "CRITICAL",
|
|
"start_line": 37,
|
|
"end_line": 59,
|
|
"tags": {
|
|
"PURPOSE": "Represents a single persistent log entry for a task.",
|
|
"TIER": "CRITICAL",
|
|
"INVARIANT": "Each log entry belongs to exactly one task."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "TaskRecord"
|
|
}
|
|
],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "backend.src.models.connection",
|
|
"type": "Module",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 1,
|
|
"end_line": 36,
|
|
"tags": {
|
|
"TIER": "TRIVIAL",
|
|
"SEMANTICS": "database, connection, configuration, sqlalchemy, sqlite",
|
|
"PURPOSE": "Defines the database schema for external database connection configurations.",
|
|
"LAYER": "Domain",
|
|
"INVARIANT": "All primary keys are UUID strings."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "sqlalchemy"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "ConnectionConfig",
|
|
"type": "Class",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 18,
|
|
"end_line": 34,
|
|
"tags": {
|
|
"TIER": "TRIVIAL",
|
|
"PURPOSE": "Stores credentials for external databases used for column mapping."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "backend.src.models.mapping",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 75,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"SEMANTICS": "database, mapping, environment, migration, sqlalchemy, sqlite",
|
|
"PURPOSE": "Defines the database schema for environment metadata and database mappings using SQLAlchemy.",
|
|
"LAYER": "Domain",
|
|
"INVARIANT": "All primary keys are UUID strings.",
|
|
"CONSTRAINT": "source_env_id and target_env_id must be valid environment IDs."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "sqlalchemy"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "MigrationStatus",
|
|
"type": "Class",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 22,
|
|
"end_line": 31,
|
|
"tags": {
|
|
"TIER": "TRIVIAL",
|
|
"PURPOSE": "Enumeration of possible migration job statuses."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "Environment",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 33,
|
|
"end_line": 43,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"PURPOSE": "Represents a Superset instance environment."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "DatabaseMapping",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 45,
|
|
"end_line": 59,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"PURPOSE": "Represents a mapping between source and target databases."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "MigrationJob",
|
|
"type": "Class",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 61,
|
|
"end_line": 73,
|
|
"tags": {
|
|
"TIER": "TRIVIAL",
|
|
"PURPOSE": "Represents a single migration execution job."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "backend.src.models.storage",
|
|
"type": "Module",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 1,
|
|
"end_line": 44,
|
|
"tags": {
|
|
"TIER": "TRIVIAL",
|
|
"SEMANTICS": "storage, file, model, pydantic",
|
|
"PURPOSE": "Data models for the storage system.",
|
|
"LAYER": "Domain"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "FileCategory",
|
|
"type": "Class",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 12,
|
|
"end_line": 18,
|
|
"tags": {
|
|
"TIER": "TRIVIAL",
|
|
"PURPOSE": "Enumeration of supported file categories in the storage system."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "StorageConfig",
|
|
"type": "Class",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 20,
|
|
"end_line": 30,
|
|
"tags": {
|
|
"TIER": "TRIVIAL",
|
|
"PURPOSE": "Configuration model for the storage system, defining paths and naming patterns."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "StoredFile",
|
|
"type": "Class",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 32,
|
|
"end_line": 42,
|
|
"tags": {
|
|
"TIER": "TRIVIAL",
|
|
"PURPOSE": "Data model representing metadata for a file stored in the system."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "backend.src.models.dashboard",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 31,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"SEMANTICS": "dashboard, model, metadata, migration",
|
|
"PURPOSE": "Defines data models for dashboard metadata and selection.",
|
|
"LAYER": "Model"
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "USED_BY",
|
|
"target": "backend.src.api.routes.migration"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "DashboardMetadata",
|
|
"type": "Class",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 11,
|
|
"end_line": 19,
|
|
"tags": {
|
|
"TIER": "TRIVIAL",
|
|
"PURPOSE": "Represents a dashboard available for migration."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "DashboardSelection",
|
|
"type": "Class",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 21,
|
|
"end_line": 29,
|
|
"tags": {
|
|
"TIER": "TRIVIAL",
|
|
"PURPOSE": "Represents the user's selection of dashboards to migrate."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "backend.src.models.auth",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 105,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"SEMANTICS": "auth, models, user, role, permission, sqlalchemy",
|
|
"PURPOSE": "SQLAlchemy models for multi-user authentication and authorization.",
|
|
"LAYER": "Domain",
|
|
"INVARIANT": "Usernames and emails must be unique."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "INHERITS_FROM",
|
|
"target": "backend.src.models.mapping.Base"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "generate_uuid",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 19,
|
|
"end_line": 24,
|
|
"tags": {
|
|
"PURPOSE": "Generates a unique UUID string.",
|
|
"POST": "Returns a string representation of a new UUID."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 19
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 19
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 19
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 19
|
|
}
|
|
],
|
|
"score": 0.5333333333333333
|
|
}
|
|
},
|
|
{
|
|
"name": "user_roles",
|
|
"type": "Table",
|
|
"tier": "STANDARD",
|
|
"start_line": 26,
|
|
"end_line": 34,
|
|
"tags": {
|
|
"PURPOSE": "Association table for many-to-many relationship between Users and Roles."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "role_permissions",
|
|
"type": "Table",
|
|
"tier": "STANDARD",
|
|
"start_line": 36,
|
|
"end_line": 44,
|
|
"tags": {
|
|
"PURPOSE": "Association table for many-to-many relationship between Roles and Permissions."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "User",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 46,
|
|
"end_line": 62,
|
|
"tags": {
|
|
"PURPOSE": "Represents an identity that can authenticate to the system."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "HAS_MANY",
|
|
"target": "Role (via user_roles)"
|
|
}
|
|
],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 46
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 46
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
},
|
|
{
|
|
"name": "Role",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 64,
|
|
"end_line": 77,
|
|
"tags": {
|
|
"PURPOSE": "Represents a collection of permissions."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "HAS_MANY",
|
|
"target": "User (via user_roles)"
|
|
},
|
|
{
|
|
"type": "HAS_MANY",
|
|
"target": "Permission (via role_permissions)"
|
|
}
|
|
],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 64
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 64
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
},
|
|
{
|
|
"name": "Permission",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 79,
|
|
"end_line": 90,
|
|
"tags": {
|
|
"PURPOSE": "Represents a specific capability within the system."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "HAS_MANY",
|
|
"target": "Role (via role_permissions)"
|
|
}
|
|
],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 79
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 79
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
},
|
|
{
|
|
"name": "ADGroupMapping",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 92,
|
|
"end_line": 103,
|
|
"tags": {
|
|
"PURPOSE": "Maps an Active Directory group to a local System Role."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "Role"
|
|
}
|
|
],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 92
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 92
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_models",
|
|
"type": "Module",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 1,
|
|
"end_line": 36,
|
|
"tags": {
|
|
"TIER": "TRIVIAL",
|
|
"PURPOSE": "Unit tests for data models",
|
|
"LAYER": "Domain"
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "VERIFIES",
|
|
"target": "src.models"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "test_environment_model",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 17,
|
|
"end_line": 33,
|
|
"tags": {
|
|
"PURPOSE": "Tests that Environment model correctly stores values.",
|
|
"PRE": "Environment class is available.",
|
|
"POST": "Values are verified."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "backend.src.services.resource_service",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 251,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"SEMANTICS": "service, resources, dashboards, datasets, tasks, git",
|
|
"PURPOSE": "Shared service for fetching resource data with Git status and task status",
|
|
"LAYER": "Service",
|
|
"INVARIANT": "All resources include metadata about their current state"
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "backend.src.core.superset_client"
|
|
},
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "backend.src.core.task_manager"
|
|
},
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "backend.src.services.git_service"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "ResourceService",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 19,
|
|
"end_line": 250,
|
|
"tags": {
|
|
"PURPOSE": "Provides centralized access to resource data with enhanced metadata"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "__init__",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 23,
|
|
"end_line": 31,
|
|
"tags": {
|
|
"PURPOSE": "Initialize the resource service with dependencies",
|
|
"PRE": "None",
|
|
"POST": "ResourceService is ready to fetch resources"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_dashboards_with_status",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 33,
|
|
"end_line": 74,
|
|
"tags": {
|
|
"PURPOSE": "Fetch dashboards from environment with Git status and last task status",
|
|
"PRE": "env is a valid Environment object",
|
|
"POST": "Returns list of dashboards with enhanced metadata",
|
|
"PARAM": "tasks (List[Task]) - List of tasks to check for status",
|
|
"RETURN": "List[Dict] - Dashboards with git_status and last_task fields"
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "CALLS",
|
|
"target": "SupersetClient.get_dashboards_summary"
|
|
},
|
|
{
|
|
"type": "CALLS",
|
|
"target": "self._get_git_status_for_dashboard"
|
|
},
|
|
{
|
|
"type": "CALLS",
|
|
"target": "self._get_last_task_for_resource"
|
|
}
|
|
],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_datasets_with_status",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 76,
|
|
"end_line": 112,
|
|
"tags": {
|
|
"PURPOSE": "Fetch datasets from environment with mapping progress and last task status",
|
|
"PRE": "env is a valid Environment object",
|
|
"POST": "Returns list of datasets with enhanced metadata",
|
|
"PARAM": "tasks (List[Task]) - List of tasks to check for status",
|
|
"RETURN": "List[Dict] - Datasets with mapped_fields and last_task fields"
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "CALLS",
|
|
"target": "SupersetClient.get_datasets_summary"
|
|
},
|
|
{
|
|
"type": "CALLS",
|
|
"target": "self._get_last_task_for_resource"
|
|
}
|
|
],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_activity_summary",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 114,
|
|
"end_line": 151,
|
|
"tags": {
|
|
"PURPOSE": "Get summary of active and recent tasks for the activity indicator",
|
|
"PRE": "tasks is a list of Task objects",
|
|
"POST": "Returns summary with active_count and recent_tasks",
|
|
"PARAM": "tasks (List[Task]) - List of tasks to summarize",
|
|
"RETURN": "Dict - Activity summary"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "_get_git_status_for_dashboard",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 153,
|
|
"end_line": 192,
|
|
"tags": {
|
|
"PURPOSE": "Get Git sync status for a dashboard",
|
|
"PRE": "dashboard_id is a valid integer",
|
|
"POST": "Returns git status or None if no repo exists",
|
|
"PARAM": "dashboard_id (int) - The dashboard ID",
|
|
"RETURN": "Optional[Dict] - Git status with branch and sync_status"
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "CALLS",
|
|
"target": "GitService.get_repo"
|
|
}
|
|
],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 153
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 153
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 153
|
|
}
|
|
],
|
|
"score": 0.7
|
|
}
|
|
},
|
|
{
|
|
"name": "_get_last_task_for_resource",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 194,
|
|
"end_line": 226,
|
|
"tags": {
|
|
"PURPOSE": "Get the most recent task for a specific resource",
|
|
"PRE": "resource_id is a valid string",
|
|
"POST": "Returns task summary or None if no tasks found",
|
|
"PARAM": "tasks (Optional[List[Task]]) - List of tasks to search",
|
|
"RETURN": "Optional[Dict] - Task summary with task_id and status"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 194
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 194
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 194
|
|
}
|
|
],
|
|
"score": 0.7
|
|
}
|
|
},
|
|
{
|
|
"name": "_extract_resource_name_from_task",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 228,
|
|
"end_line": 237,
|
|
"tags": {
|
|
"PURPOSE": "Extract resource name from task params",
|
|
"PRE": "task is a valid Task object",
|
|
"POST": "Returns resource name or task ID",
|
|
"PARAM": "task (Task) - The task to extract from",
|
|
"RETURN": "str - Resource name or fallback"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 228
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 228
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 228
|
|
}
|
|
],
|
|
"score": 0.7
|
|
}
|
|
},
|
|
{
|
|
"name": "_extract_resource_type_from_task",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 239,
|
|
"end_line": 248,
|
|
"tags": {
|
|
"PURPOSE": "Extract resource type from task params",
|
|
"PRE": "task is a valid Task object",
|
|
"POST": "Returns resource type or 'unknown'",
|
|
"PARAM": "task (Task) - The task to extract from",
|
|
"RETURN": "str - Resource type"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 239
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 239
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 239
|
|
}
|
|
],
|
|
"score": 0.7
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 19
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 19
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "backend.src.services.llm_provider",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 169,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"SEMANTICS": "service, llm, provider, encryption",
|
|
"PURPOSE": "Service for managing LLM provider configurations with encrypted API keys.",
|
|
"LAYER": "Domain"
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "backend.src.core.database"
|
|
},
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "backend.src.models.llm"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "EncryptionManager",
|
|
"type": "Class",
|
|
"tier": "CRITICAL",
|
|
"start_line": 17,
|
|
"end_line": 46,
|
|
"tags": {
|
|
"TIER": "CRITICAL",
|
|
"PURPOSE": "Handles encryption and decryption of sensitive data like API keys.",
|
|
"INVARIANT": "Uses a secret key from environment or a default one (fallback only for dev)."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "EncryptionManager.__init__",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 22,
|
|
"end_line": 29,
|
|
"tags": {
|
|
"PURPOSE": "Initialize the encryption manager with a Fernet key.",
|
|
"PRE": "ENCRYPTION_KEY env var must be set or use default dev key.",
|
|
"POST": "Fernet instance ready for encryption/decryption."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "EncryptionManager.encrypt",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 31,
|
|
"end_line": 37,
|
|
"tags": {
|
|
"PURPOSE": "Encrypt a plaintext string.",
|
|
"PRE": "data must be a non-empty string.",
|
|
"POST": "Returns encrypted string."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 31
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 31
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 31
|
|
}
|
|
],
|
|
"score": 0.7
|
|
}
|
|
},
|
|
{
|
|
"name": "EncryptionManager.decrypt",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 39,
|
|
"end_line": 45,
|
|
"tags": {
|
|
"PURPOSE": "Decrypt an encrypted string.",
|
|
"PRE": "encrypted_data must be a valid Fernet-encrypted string.",
|
|
"POST": "Returns original plaintext string."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 39
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 39
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 39
|
|
}
|
|
],
|
|
"score": 0.7
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "LLMProviderService",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 48,
|
|
"end_line": 167,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"PURPOSE": "Service to manage LLM provider lifecycle."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "LLMProviderService.__init__",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 52,
|
|
"end_line": 59,
|
|
"tags": {
|
|
"PURPOSE": "Initialize the service with database session.",
|
|
"PRE": "db must be a valid SQLAlchemy Session.",
|
|
"POST": "Service ready for provider operations."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_all_providers",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 61,
|
|
"end_line": 69,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"PURPOSE": "Returns all configured LLM providers.",
|
|
"PRE": "Database connection must be active.",
|
|
"POST": "Returns list of all LLMProvider records."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_provider",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 71,
|
|
"end_line": 79,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"PURPOSE": "Returns a single LLM provider by ID.",
|
|
"PRE": "provider_id must be a valid string.",
|
|
"POST": "Returns LLMProvider or None if not found."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "create_provider",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 81,
|
|
"end_line": 101,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"PURPOSE": "Creates a new LLM provider with encrypted API key.",
|
|
"PRE": "config must contain valid provider configuration.",
|
|
"POST": "New provider created and persisted to database."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "update_provider",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 103,
|
|
"end_line": 126,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"PURPOSE": "Updates an existing LLM provider.",
|
|
"PRE": "provider_id must exist, config must be valid.",
|
|
"POST": "Provider updated and persisted to database."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "delete_provider",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 128,
|
|
"end_line": 141,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"PURPOSE": "Deletes an LLM provider.",
|
|
"PRE": "provider_id must exist.",
|
|
"POST": "Provider removed from database."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_decrypted_api_key",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 143,
|
|
"end_line": 165,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"PURPOSE": "Returns the decrypted API key for a provider.",
|
|
"PRE": "provider_id must exist with valid encrypted key.",
|
|
"POST": "Returns decrypted API key or None on failure."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "__init__",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 26,
|
|
"end_line": 26,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "encrypt",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 35,
|
|
"end_line": 35,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "decrypt",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 43,
|
|
"end_line": 43,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "__init__",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 56,
|
|
"end_line": 56,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "backend.src.services",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 21,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"SEMANTICS": "services, package, init",
|
|
"PURPOSE": "Package initialization for services module",
|
|
"LAYER": "Core",
|
|
"NOTE": "GitService, AuthService, LLMProviderService have circular import issues - import directly when needed"
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "EXPORTS",
|
|
"target": "resource_service, mapping_service"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "__getattr__",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 13,
|
|
"end_line": 13,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "backend.src.services.auth_service",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 115,
|
|
"tags": {
|
|
"SEMANTICS": "auth, service, business-logic, login, jwt",
|
|
"PURPOSE": "Orchestrates authentication business logic.",
|
|
"LAYER": "Service",
|
|
"INVARIANT": "Authentication must verify both credentials and account status."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "USES",
|
|
"target": "backend.src.core.auth.repository.AuthRepository"
|
|
},
|
|
{
|
|
"type": "USES",
|
|
"target": "backend.src.core.auth.security"
|
|
},
|
|
{
|
|
"type": "USES",
|
|
"target": "backend.src.core.auth.jwt"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "AuthService",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 22,
|
|
"end_line": 113,
|
|
"tags": {
|
|
"PURPOSE": "Provides high-level authentication services."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "__init__",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 25,
|
|
"end_line": 30,
|
|
"tags": {
|
|
"PURPOSE": "Initializes the service with a database session.",
|
|
"PARAM": "db (Session) - SQLAlchemy session."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 25
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 25
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 25
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 25
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 25
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 25
|
|
}
|
|
],
|
|
"score": 0.26666666666666655
|
|
}
|
|
},
|
|
{
|
|
"name": "authenticate_user",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 32,
|
|
"end_line": 54,
|
|
"tags": {
|
|
"PURPOSE": "Authenticates a user with username and password.",
|
|
"PRE": "username and password are provided.",
|
|
"POST": "Returns User object if authentication succeeds, else None.",
|
|
"SIDE_EFFECT": "Updates last_login timestamp on success.",
|
|
"PARAM": "password (str) - The plain password.",
|
|
"RETURN": "Optional[User] - The authenticated user or None."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "create_session",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 56,
|
|
"end_line": 77,
|
|
"tags": {
|
|
"PURPOSE": "Creates a JWT session for an authenticated user.",
|
|
"PRE": "user is a valid User object.",
|
|
"POST": "Returns a dictionary with access_token and token_type.",
|
|
"PARAM": "user (User) - The authenticated user.",
|
|
"RETURN": "Dict[str, str] - Session data."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "provision_adfs_user",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 79,
|
|
"end_line": 111,
|
|
"tags": {
|
|
"PURPOSE": "Just-In-Time (JIT) provisioning for ADFS users based on group mappings.",
|
|
"PRE": "user_info contains 'upn' (username), 'email', and 'groups'.",
|
|
"POST": "User is created/updated and assigned roles based on groups.",
|
|
"PARAM": "user_info (Dict[str, Any]) - Claims from ADFS token.",
|
|
"RETURN": "User - The provisioned user."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 22
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 22
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
}
|
|
},
|
|
{
|
|
"name": "backend.src.services.git_service",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 412,
|
|
"tags": {
|
|
"SEMANTICS": "git, service, gitpython, repository, version_control",
|
|
"PURPOSE": "Core Git logic using GitPython to manage dashboard repositories.",
|
|
"LAYER": "Service",
|
|
"INVARIANT": "All Git operations must be performed on a valid local directory."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "INHERITS_FROM",
|
|
"target": "None"
|
|
},
|
|
{
|
|
"type": "USED_BY",
|
|
"target": "src.api.routes.git"
|
|
},
|
|
{
|
|
"type": "USED_BY",
|
|
"target": "src.plugins.git_plugin"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "GitService",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 21,
|
|
"end_line": 411,
|
|
"tags": {
|
|
"PURPOSE": "Wrapper for GitPython operations with semantic logging and error handling."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "__init__",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 28,
|
|
"end_line": 44,
|
|
"tags": {
|
|
"PURPOSE": "Initializes the GitService with a base path for repositories.",
|
|
"PARAM": "base_path (str) - Root directory for all Git clones.",
|
|
"PRE": "base_path is a valid string path.",
|
|
"POST": "GitService is initialized; base_path directory exists."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "_get_repo_path",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 46,
|
|
"end_line": 55,
|
|
"tags": {
|
|
"PURPOSE": "Resolves the local filesystem path for a dashboard's repository.",
|
|
"PARAM": "dashboard_id (int)",
|
|
"PRE": "dashboard_id is an integer.",
|
|
"POST": "Returns the absolute or relative path to the dashboard's repo.",
|
|
"RETURN": "str"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "init_repo",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 57,
|
|
"end_line": 82,
|
|
"tags": {
|
|
"PURPOSE": "Initialize or clone a repository for a dashboard.",
|
|
"PARAM": "pat (str) - Personal Access Token for authentication.",
|
|
"PRE": "dashboard_id is int, remote_url is valid Git URL, pat is provided.",
|
|
"POST": "Repository is cloned or opened at the local path.",
|
|
"RETURN": "Repo - GitPython Repo object."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_repo",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 84,
|
|
"end_line": 100,
|
|
"tags": {
|
|
"PURPOSE": "Get Repo object for a dashboard.",
|
|
"PRE": "Repository must exist on disk for the given dashboard_id.",
|
|
"POST": "Returns a GitPython Repo instance for the dashboard.",
|
|
"RETURN": "Repo"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "list_branches",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 102,
|
|
"end_line": 154,
|
|
"tags": {
|
|
"PURPOSE": "List all branches for a dashboard's repository.",
|
|
"PRE": "Repository for dashboard_id exists.",
|
|
"POST": "Returns a list of branch metadata dictionaries.",
|
|
"RETURN": "List[dict]"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "create_branch",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 156,
|
|
"end_line": 190,
|
|
"tags": {
|
|
"PURPOSE": "Create a new branch from an existing one.",
|
|
"PARAM": "from_branch (str) - Source branch.",
|
|
"PRE": "Repository exists; name is valid; from_branch exists or repo is empty.",
|
|
"POST": "A new branch is created in the repository."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "checkout_branch",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 192,
|
|
"end_line": 201,
|
|
"tags": {
|
|
"PURPOSE": "Switch to a specific branch.",
|
|
"PRE": "Repository exists and the specified branch name exists.",
|
|
"POST": "The repository working directory is updated to the specified branch."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "commit_changes",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 203,
|
|
"end_line": 227,
|
|
"tags": {
|
|
"PURPOSE": "Stage and commit changes.",
|
|
"PARAM": "files (List[str]) - Optional list of specific files to stage.",
|
|
"PRE": "Repository exists and has changes (dirty) or files are specified.",
|
|
"POST": "Changes are staged and a new commit is created."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "push_changes",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 229,
|
|
"end_line": 261,
|
|
"tags": {
|
|
"PURPOSE": "Push local commits to remote.",
|
|
"PRE": "Repository exists and has an 'origin' remote.",
|
|
"POST": "Local branch commits are pushed to origin."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "pull_changes",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 263,
|
|
"end_line": 284,
|
|
"tags": {
|
|
"PURPOSE": "Pull changes from remote.",
|
|
"PRE": "Repository exists and has an 'origin' remote.",
|
|
"POST": "Changes from origin are pulled and merged into the active branch."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_status",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 286,
|
|
"end_line": 310,
|
|
"tags": {
|
|
"PURPOSE": "Get current repository status (dirty files, untracked, etc.)",
|
|
"PRE": "Repository for dashboard_id exists.",
|
|
"POST": "Returns a dictionary representing the Git status.",
|
|
"RETURN": "dict"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_diff",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 312,
|
|
"end_line": 329,
|
|
"tags": {
|
|
"PURPOSE": "Generate diff for a file or the whole repository.",
|
|
"PARAM": "staged (bool) - Whether to show staged changes.",
|
|
"PRE": "Repository for dashboard_id exists.",
|
|
"POST": "Returns the diff text as a string.",
|
|
"RETURN": "str"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_commit_history",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 331,
|
|
"end_line": 359,
|
|
"tags": {
|
|
"PURPOSE": "Retrieve commit history for a repository.",
|
|
"PARAM": "limit (int) - Max number of commits to return.",
|
|
"PRE": "Repository for dashboard_id exists.",
|
|
"POST": "Returns a list of dictionaries for each commit in history.",
|
|
"RETURN": "List[dict]"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_connection",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 361,
|
|
"end_line": 409,
|
|
"tags": {
|
|
"PURPOSE": "Test connection to Git provider using PAT.",
|
|
"PARAM": "pat (str)",
|
|
"PRE": "provider is valid; url is a valid HTTP(S) URL; pat is provided.",
|
|
"POST": "Returns True if connection to the provider's API succeeds.",
|
|
"RETURN": "bool"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 21
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 21
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
}
|
|
},
|
|
{
|
|
"name": "backend.src.services.mapping_service",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 71,
|
|
"tags": {
|
|
"SEMANTICS": "service, mapping, fuzzy-matching, superset",
|
|
"PURPOSE": "Orchestrates database fetching and fuzzy matching suggestions.",
|
|
"LAYER": "Service",
|
|
"INVARIANT": "Suggestions are based on database names."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "backend.src.core.superset_client"
|
|
},
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "backend.src.core.utils.matching"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "MappingService",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 18,
|
|
"end_line": 69,
|
|
"tags": {
|
|
"PURPOSE": "Service for handling database mapping logic."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "__init__",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 22,
|
|
"end_line": 30,
|
|
"tags": {
|
|
"PURPOSE": "Initializes the mapping service with a config manager.",
|
|
"PRE": "config_manager is provided.",
|
|
"PARAM": "config_manager (ConfigManager) - The configuration manager.",
|
|
"POST": "Service is initialized."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "_get_client",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 32,
|
|
"end_line": 46,
|
|
"tags": {
|
|
"PURPOSE": "Helper to get an initialized SupersetClient for an environment.",
|
|
"PARAM": "env_id (str) - The ID of the environment.",
|
|
"PRE": "environment must exist in config.",
|
|
"POST": "Returns an initialized SupersetClient.",
|
|
"RETURN": "SupersetClient - Initialized client."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_suggestions",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 48,
|
|
"end_line": 67,
|
|
"tags": {
|
|
"PURPOSE": "Fetches databases from both environments and returns fuzzy matching suggestions.",
|
|
"PARAM": "target_env_id (str) - Target environment ID.",
|
|
"PRE": "Both environments must be accessible.",
|
|
"POST": "Returns fuzzy-matched database suggestions.",
|
|
"RETURN": "List[Dict] - Suggested mappings."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 18
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 18
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
}
|
|
},
|
|
{
|
|
"name": "backend.src.services.__tests__.test_resource_service",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 212,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"PURPOSE": "Unit tests for ResourceService",
|
|
"LAYER": "Service"
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "TESTS",
|
|
"target": "backend.src.services.resource_service"
|
|
},
|
|
{
|
|
"type": "VERIFIES",
|
|
"target": "ResourceService"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "test_get_dashboards_with_status",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 13,
|
|
"end_line": 51,
|
|
"tags": {
|
|
"TEST": "get_dashboards_with_status returns dashboards with git and task status",
|
|
"PRE": "SupersetClient returns dashboard list",
|
|
"POST": "Each dashboard has git_status and last_task fields"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 13
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 13
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 13
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 13
|
|
}
|
|
],
|
|
"score": 0.5333333333333333
|
|
}
|
|
},
|
|
{
|
|
"name": "test_get_datasets_with_status",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 54,
|
|
"end_line": 91,
|
|
"tags": {
|
|
"TEST": "get_datasets_with_status returns datasets with task status",
|
|
"PRE": "SupersetClient returns dataset list",
|
|
"POST": "Each dataset has last_task field"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 54
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 54
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 54
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 54
|
|
}
|
|
],
|
|
"score": 0.5333333333333333
|
|
}
|
|
},
|
|
{
|
|
"name": "test_get_activity_summary",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 94,
|
|
"end_line": 128,
|
|
"tags": {
|
|
"TEST": "get_activity_summary returns active count and recent tasks",
|
|
"PRE": "tasks list provided",
|
|
"POST": "Returns dict with active_count and recent_tasks"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 94
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 94
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 94
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 94
|
|
}
|
|
],
|
|
"score": 0.5333333333333333
|
|
}
|
|
},
|
|
{
|
|
"name": "test_get_git_status_for_dashboard_no_repo",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 131,
|
|
"end_line": 148,
|
|
"tags": {
|
|
"TEST": "_get_git_status_for_dashboard returns None when no repo exists",
|
|
"PRE": "GitService returns None for repo",
|
|
"POST": "Returns None"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 131
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 131
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 131
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 131
|
|
}
|
|
],
|
|
"score": 0.5333333333333333
|
|
}
|
|
},
|
|
{
|
|
"name": "test_get_last_task_for_resource",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 151,
|
|
"end_line": 180,
|
|
"tags": {
|
|
"TEST": "_get_last_task_for_resource returns most recent task for resource",
|
|
"PRE": "tasks list with matching resource_id",
|
|
"POST": "Returns task summary with task_id and status"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 151
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 151
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 151
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 151
|
|
}
|
|
],
|
|
"score": 0.5333333333333333
|
|
}
|
|
},
|
|
{
|
|
"name": "test_extract_resource_name_from_task",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 183,
|
|
"end_line": 209,
|
|
"tags": {
|
|
"TEST": "_extract_resource_name_from_task extracts name from params",
|
|
"PRE": "task has resource_name in params",
|
|
"POST": "Returns resource name or fallback"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 183
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 183
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 183
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 183
|
|
}
|
|
],
|
|
"score": 0.5333333333333333
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @SEMANTICS (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
}
|
|
},
|
|
{
|
|
"name": "BackupPlugin",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 230,
|
|
"tags": {
|
|
"SEMANTICS": "backup, superset, automation, dashboard, plugin",
|
|
"PURPOSE": "A plugin that provides functionality to back up Superset dashboards.",
|
|
"LAYER": "App"
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "IMPLEMENTS",
|
|
"target": "PluginBase"
|
|
},
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "superset_tool.client"
|
|
},
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "superset_tool.utils"
|
|
},
|
|
{
|
|
"type": "USES",
|
|
"target": "TaskContext"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "BackupPlugin",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 29,
|
|
"end_line": 229,
|
|
"tags": {
|
|
"PURPOSE": "Implementation of the backup plugin logic."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "id",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 37,
|
|
"end_line": 45,
|
|
"tags": {
|
|
"PURPOSE": "Returns the unique identifier for the backup plugin.",
|
|
"PRE": "Plugin instance exists.",
|
|
"POST": "Returns string ID.",
|
|
"RETURN": "str - \"superset-backup\""
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "name",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 48,
|
|
"end_line": 56,
|
|
"tags": {
|
|
"PURPOSE": "Returns the human-readable name of the backup plugin.",
|
|
"PRE": "Plugin instance exists.",
|
|
"POST": "Returns string name.",
|
|
"RETURN": "str - Plugin name."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "description",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 59,
|
|
"end_line": 67,
|
|
"tags": {
|
|
"PURPOSE": "Returns a description of the backup plugin.",
|
|
"PRE": "Plugin instance exists.",
|
|
"POST": "Returns string description.",
|
|
"RETURN": "str - Plugin description."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "version",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 70,
|
|
"end_line": 78,
|
|
"tags": {
|
|
"PURPOSE": "Returns the version of the backup plugin.",
|
|
"PRE": "Plugin instance exists.",
|
|
"POST": "Returns string version.",
|
|
"RETURN": "str - \"1.0.0\""
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "ui_route",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 81,
|
|
"end_line": 87,
|
|
"tags": {
|
|
"PURPOSE": "Returns the frontend route for the backup plugin.",
|
|
"RETURN": "str - \"/tools/backups\""
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 81
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 81
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 81
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 81
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 81
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 81
|
|
}
|
|
],
|
|
"score": 0.26666666666666655
|
|
}
|
|
},
|
|
{
|
|
"name": "get_schema",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 89,
|
|
"end_line": 112,
|
|
"tags": {
|
|
"PURPOSE": "Returns the JSON schema for backup plugin parameters.",
|
|
"PRE": "Plugin instance exists.",
|
|
"POST": "Returns dictionary schema.",
|
|
"RETURN": "Dict[str, Any] - JSON schema."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "execute",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 114,
|
|
"end_line": 228,
|
|
"tags": {
|
|
"PURPOSE": "Executes the dashboard backup logic with TaskContext support.",
|
|
"PARAM": "context (Optional[TaskContext]) - Task context for logging with source attribution.",
|
|
"PRE": "Target environment must be configured. params must be a dictionary.",
|
|
"POST": "All dashboards are exported and archived."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 29
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 29
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
}
|
|
},
|
|
{
|
|
"name": "DebugPluginModule",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 216,
|
|
"tags": {
|
|
"SEMANTICS": "plugin, debug, api, database, superset",
|
|
"PURPOSE": "Implements a plugin for system diagnostics and debugging Superset API responses.",
|
|
"LAYER": "Plugins",
|
|
"RELATION": "Inherits from PluginBase. Uses SupersetClient from core.",
|
|
"CONSTRAINT": "Must use belief_scope for logging."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "USES",
|
|
"target": "TaskContext"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "DebugPlugin",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 17,
|
|
"end_line": 215,
|
|
"tags": {
|
|
"PURPOSE": "Plugin for system diagnostics and debugging."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "id",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 25,
|
|
"end_line": 33,
|
|
"tags": {
|
|
"PURPOSE": "Returns the unique identifier for the debug plugin.",
|
|
"PRE": "Plugin instance exists.",
|
|
"POST": "Returns string ID.",
|
|
"RETURN": "str - \"system-debug\""
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "name",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 36,
|
|
"end_line": 44,
|
|
"tags": {
|
|
"PURPOSE": "Returns the human-readable name of the debug plugin.",
|
|
"PRE": "Plugin instance exists.",
|
|
"POST": "Returns string name.",
|
|
"RETURN": "str - Plugin name."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "description",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 47,
|
|
"end_line": 55,
|
|
"tags": {
|
|
"PURPOSE": "Returns a description of the debug plugin.",
|
|
"PRE": "Plugin instance exists.",
|
|
"POST": "Returns string description.",
|
|
"RETURN": "str - Plugin description."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "version",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 58,
|
|
"end_line": 66,
|
|
"tags": {
|
|
"PURPOSE": "Returns the version of the debug plugin.",
|
|
"PRE": "Plugin instance exists.",
|
|
"POST": "Returns string version.",
|
|
"RETURN": "str - \"1.0.0\""
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "ui_route",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 69,
|
|
"end_line": 75,
|
|
"tags": {
|
|
"PURPOSE": "Returns the frontend route for the debug plugin.",
|
|
"RETURN": "str - \"/tools/debug\""
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 69
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 69
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 69
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 69
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 69
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 69
|
|
}
|
|
],
|
|
"score": 0.26666666666666655
|
|
}
|
|
},
|
|
{
|
|
"name": "get_schema",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 77,
|
|
"end_line": 116,
|
|
"tags": {
|
|
"PURPOSE": "Returns the JSON schema for the debug plugin parameters.",
|
|
"PRE": "Plugin instance exists.",
|
|
"POST": "Returns dictionary schema.",
|
|
"RETURN": "Dict[str, Any] - JSON schema."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "execute",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 118,
|
|
"end_line": 143,
|
|
"tags": {
|
|
"PURPOSE": "Executes the debug logic with TaskContext support.",
|
|
"PARAM": "context (Optional[TaskContext]) - Task context for logging with source attribution.",
|
|
"PRE": "action must be provided in params.",
|
|
"POST": "Debug action is executed and results returned.",
|
|
"RETURN": "Dict[str, Any] - Execution results."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "_test_db_api",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 145,
|
|
"end_line": 181,
|
|
"tags": {
|
|
"PURPOSE": "Tests database API connectivity for source and target environments.",
|
|
"PRE": "source_env and target_env params exist in params.",
|
|
"POST": "Returns DB counts for both envs.",
|
|
"PARAM": "log - Logger instance for superset_api source.",
|
|
"RETURN": "Dict - Comparison results."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "_get_dataset_structure",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 183,
|
|
"end_line": 213,
|
|
"tags": {
|
|
"PURPOSE": "Retrieves the structure of a dataset.",
|
|
"PRE": "env and dataset_id params exist in params.",
|
|
"POST": "Returns dataset JSON structure.",
|
|
"PARAM": "log - Logger instance for superset_api source.",
|
|
"RETURN": "Dict - Dataset structure."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 17
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 17
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
}
|
|
},
|
|
{
|
|
"name": "SearchPluginModule",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 221,
|
|
"tags": {
|
|
"SEMANTICS": "plugin, search, datasets, regex, superset",
|
|
"PURPOSE": "Implements a plugin for searching text patterns across all datasets in a specific Superset environment.",
|
|
"LAYER": "Plugins",
|
|
"RELATION": "Inherits from PluginBase. Uses SupersetClient from core.",
|
|
"CONSTRAINT": "Must use belief_scope for logging."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "USES",
|
|
"target": "TaskContext"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "SearchPlugin",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 18,
|
|
"end_line": 220,
|
|
"tags": {
|
|
"PURPOSE": "Plugin for searching text patterns in Superset datasets."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "id",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 26,
|
|
"end_line": 34,
|
|
"tags": {
|
|
"PURPOSE": "Returns the unique identifier for the search plugin.",
|
|
"PRE": "Plugin instance exists.",
|
|
"POST": "Returns string ID.",
|
|
"RETURN": "str - \"search-datasets\""
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "name",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 37,
|
|
"end_line": 45,
|
|
"tags": {
|
|
"PURPOSE": "Returns the human-readable name of the search plugin.",
|
|
"PRE": "Plugin instance exists.",
|
|
"POST": "Returns string name.",
|
|
"RETURN": "str - Plugin name."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "description",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 48,
|
|
"end_line": 56,
|
|
"tags": {
|
|
"PURPOSE": "Returns a description of the search plugin.",
|
|
"PRE": "Plugin instance exists.",
|
|
"POST": "Returns string description.",
|
|
"RETURN": "str - Plugin description."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "version",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 59,
|
|
"end_line": 67,
|
|
"tags": {
|
|
"PURPOSE": "Returns the version of the search plugin.",
|
|
"PRE": "Plugin instance exists.",
|
|
"POST": "Returns string version.",
|
|
"RETURN": "str - \"1.0.0\""
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "ui_route",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 70,
|
|
"end_line": 76,
|
|
"tags": {
|
|
"PURPOSE": "Returns the frontend route for the search plugin.",
|
|
"RETURN": "str - \"/tools/search\""
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 70
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 70
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 70
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 70
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 70
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 70
|
|
}
|
|
],
|
|
"score": 0.26666666666666655
|
|
}
|
|
},
|
|
{
|
|
"name": "get_schema",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 78,
|
|
"end_line": 101,
|
|
"tags": {
|
|
"PURPOSE": "Returns the JSON schema for the search plugin parameters.",
|
|
"PRE": "Plugin instance exists.",
|
|
"POST": "Returns dictionary schema.",
|
|
"RETURN": "Dict[str, Any] - JSON schema."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "execute",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 103,
|
|
"end_line": 180,
|
|
"tags": {
|
|
"PURPOSE": "Executes the dataset search logic with TaskContext support.",
|
|
"PARAM": "context (Optional[TaskContext]) - Task context for logging with source attribution.",
|
|
"PRE": "Params contain valid 'env' and 'query'.",
|
|
"POST": "Returns a dictionary with count and results list.",
|
|
"RETURN": "Dict[str, Any] - Search results."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "_get_context",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 182,
|
|
"end_line": 218,
|
|
"tags": {
|
|
"PURPOSE": "Extracts a small context around the match for display.",
|
|
"PARAM": "context_lines (int) - Number of lines of context to include.",
|
|
"PRE": "text and match_text must be strings.",
|
|
"POST": "Returns context string.",
|
|
"RETURN": "str - Extracted context."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 18
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 18
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
}
|
|
},
|
|
{
|
|
"name": "MapperPluginModule",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 215,
|
|
"tags": {
|
|
"SEMANTICS": "plugin, mapper, datasets, postgresql, excel",
|
|
"PURPOSE": "Implements a plugin for mapping dataset columns using external database connections or Excel files.",
|
|
"LAYER": "Plugins",
|
|
"RELATION": "Inherits from PluginBase. Uses DatasetMapper from superset_tool.",
|
|
"CONSTRAINT": "Must use belief_scope for logging."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "USES",
|
|
"target": "TaskContext"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "MapperPlugin",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 20,
|
|
"end_line": 214,
|
|
"tags": {
|
|
"PURPOSE": "Plugin for mapping dataset columns verbose names."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "id",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 28,
|
|
"end_line": 36,
|
|
"tags": {
|
|
"PURPOSE": "Returns the unique identifier for the mapper plugin.",
|
|
"PRE": "Plugin instance exists.",
|
|
"POST": "Returns string ID.",
|
|
"RETURN": "str - \"dataset-mapper\""
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "name",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 39,
|
|
"end_line": 47,
|
|
"tags": {
|
|
"PURPOSE": "Returns the human-readable name of the mapper plugin.",
|
|
"PRE": "Plugin instance exists.",
|
|
"POST": "Returns string name.",
|
|
"RETURN": "str - Plugin name."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "description",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 50,
|
|
"end_line": 58,
|
|
"tags": {
|
|
"PURPOSE": "Returns a description of the mapper plugin.",
|
|
"PRE": "Plugin instance exists.",
|
|
"POST": "Returns string description.",
|
|
"RETURN": "str - Plugin description."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "version",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 61,
|
|
"end_line": 69,
|
|
"tags": {
|
|
"PURPOSE": "Returns the version of the mapper plugin.",
|
|
"PRE": "Plugin instance exists.",
|
|
"POST": "Returns string version.",
|
|
"RETURN": "str - \"1.0.0\""
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "ui_route",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 72,
|
|
"end_line": 78,
|
|
"tags": {
|
|
"PURPOSE": "Returns the frontend route for the mapper plugin.",
|
|
"RETURN": "str - \"/tools/mapper\""
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 72
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 72
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 72
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 72
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 72
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 72
|
|
}
|
|
],
|
|
"score": 0.26666666666666655
|
|
}
|
|
},
|
|
{
|
|
"name": "get_schema",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 80,
|
|
"end_line": 130,
|
|
"tags": {
|
|
"PURPOSE": "Returns the JSON schema for the mapper plugin parameters.",
|
|
"PRE": "Plugin instance exists.",
|
|
"POST": "Returns dictionary schema.",
|
|
"RETURN": "Dict[str, Any] - JSON schema."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "execute",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 132,
|
|
"end_line": 212,
|
|
"tags": {
|
|
"PURPOSE": "Executes the dataset mapping logic with TaskContext support.",
|
|
"PARAM": "context (Optional[TaskContext]) - Task context for logging with source attribution.",
|
|
"PRE": "Params contain valid 'env', 'dataset_id', and 'source'. params must be a dictionary.",
|
|
"POST": "Updates the dataset in Superset.",
|
|
"RETURN": "Dict[str, Any] - Execution status."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 20
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 20
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
}
|
|
},
|
|
{
|
|
"name": "backend.src.plugins.git_plugin",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 399,
|
|
"tags": {
|
|
"SEMANTICS": "git, plugin, dashboard, version_control, sync, deploy",
|
|
"PURPOSE": "\u041f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u043b\u0430\u0433\u0438\u043d \u0434\u043b\u044f \u0432\u0435\u0440\u0441\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u043e\u0432 Superset.",
|
|
"LAYER": "Plugin",
|
|
"INVARIANT": "\u0412\u0441\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0441 Git \u0434\u043e\u043b\u0436\u043d\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u0447\u0435\u0440\u0435\u0437 GitService.",
|
|
"CONSTRAINT": "\u041f\u043b\u0430\u0433\u0438\u043d \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 YAML-\u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0430\u043c\u0438 Superset."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "INHERITS_FROM",
|
|
"target": "src.core.plugin_base.PluginBase"
|
|
},
|
|
{
|
|
"type": "USES",
|
|
"target": "src.services.git_service.GitService"
|
|
},
|
|
{
|
|
"type": "USES",
|
|
"target": "src.core.superset_client.SupersetClient"
|
|
},
|
|
{
|
|
"type": "USES",
|
|
"target": "src.core.config_manager.ConfigManager"
|
|
},
|
|
{
|
|
"type": "USES",
|
|
"target": "TaskContext"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "GitPlugin",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 30,
|
|
"end_line": 398,
|
|
"tags": {
|
|
"PURPOSE": "\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u043b\u0430\u0433\u0438\u043d\u0430 Git Integration \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432\u0435\u0440\u0441\u0438\u044f\u043c\u0438 \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u043e\u0432."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "__init__",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 34,
|
|
"end_line": 62,
|
|
"tags": {
|
|
"PURPOSE": "\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u043f\u043b\u0430\u0433\u0438\u043d \u0438 \u0435\u0433\u043e \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438.",
|
|
"PRE": "config.json exists or shared config_manager is available.",
|
|
"POST": "\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u044b git_service \u0438 config_manager."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "id",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 65,
|
|
"end_line": 72,
|
|
"tags": {
|
|
"PURPOSE": "Returns the plugin identifier.",
|
|
"PRE": "GitPlugin is initialized.",
|
|
"POST": "Returns 'git-integration'."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "name",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 75,
|
|
"end_line": 82,
|
|
"tags": {
|
|
"PURPOSE": "Returns the plugin name.",
|
|
"PRE": "GitPlugin is initialized.",
|
|
"POST": "Returns the human-readable name."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "description",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 85,
|
|
"end_line": 92,
|
|
"tags": {
|
|
"PURPOSE": "Returns the plugin description.",
|
|
"PRE": "GitPlugin is initialized.",
|
|
"POST": "Returns the plugin's purpose description."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "version",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 95,
|
|
"end_line": 102,
|
|
"tags": {
|
|
"PURPOSE": "Returns the plugin version.",
|
|
"PRE": "GitPlugin is initialized.",
|
|
"POST": "Returns the version string."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "ui_route",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 105,
|
|
"end_line": 111,
|
|
"tags": {
|
|
"PURPOSE": "Returns the frontend route for the git plugin.",
|
|
"RETURN": "str - \"/git\""
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 105
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 105
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 105
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 105
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 105
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 105
|
|
}
|
|
],
|
|
"score": 0.26666666666666655
|
|
}
|
|
},
|
|
{
|
|
"name": "get_schema",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 113,
|
|
"end_line": 130,
|
|
"tags": {
|
|
"PURPOSE": "\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 JSON-\u0441\u0445\u0435\u043c\u0443 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447 \u043f\u043b\u0430\u0433\u0438\u043d\u0430.",
|
|
"PRE": "GitPlugin is initialized.",
|
|
"POST": "Returns a JSON schema dictionary.",
|
|
"RETURN": "Dict[str, Any] - \u0421\u0445\u0435\u043c\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "initialize",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 132,
|
|
"end_line": 397,
|
|
"tags": {
|
|
"PURPOSE": "\u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0443\u044e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u043f\u043b\u0430\u0433\u0438\u043d\u0430.",
|
|
"PRE": "GitPlugin is initialized.",
|
|
"POST": "\u041f\u043b\u0430\u0433\u0438\u043d \u0433\u043e\u0442\u043e\u0432 \u043a \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044e \u0437\u0430\u0434\u0430\u0447."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "execute",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 140,
|
|
"end_line": 177,
|
|
"tags": {
|
|
"PURPOSE": "\u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043c\u0435\u0442\u043e\u0434 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447 \u043f\u043b\u0430\u0433\u0438\u043d\u0430 \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 TaskContext.",
|
|
"PRE": "task_data \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 'operation' \u0438 'dashboard_id'.",
|
|
"POST": "\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438.",
|
|
"PARAM": "context (Optional[TaskContext]) - Task context for logging with source attribution.",
|
|
"RETURN": "Dict[str, Any] - \u0421\u0442\u0430\u0442\u0443\u0441 \u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "CALLS",
|
|
"target": "self._handle_sync"
|
|
},
|
|
{
|
|
"type": "CALLS",
|
|
"target": "self._handle_deploy"
|
|
}
|
|
],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "_handle_sync",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 179,
|
|
"end_line": 259,
|
|
"tags": {
|
|
"PURPOSE": "\u042d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u0442 \u0434\u0430\u0448\u0431\u043e\u0440\u0434 \u0438\u0437 Superset \u0438 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u0435\u0442 \u0432 Git-\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439.",
|
|
"PRE": "\u0420\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 \u0434\u043b\u044f \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u0430 \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c.",
|
|
"POST": "\u0424\u0430\u0439\u043b\u044b \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u044b \u0434\u043e \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0432 Superset.",
|
|
"PARAM": "source_env_id (Optional[str]) - ID \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f.",
|
|
"RETURN": "Dict[str, str] - \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438.",
|
|
"SIDE_EFFECT": "\u0418\u0437\u043c\u0435\u043d\u044f\u0435\u0442 \u0444\u0430\u0439\u043b\u044b \u0432 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0447\u0435\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "CALLS",
|
|
"target": "src.services.git_service.GitService.get_repo"
|
|
},
|
|
{
|
|
"type": "CALLS",
|
|
"target": "src.core.superset_client.SupersetClient.export_dashboard"
|
|
}
|
|
],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "_handle_deploy",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 261,
|
|
"end_line": 330,
|
|
"tags": {
|
|
"PURPOSE": "\u0423\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u0435\u0442 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 \u0432 ZIP \u0438 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u0442 \u0432 \u0446\u0435\u043b\u0435\u0432\u043e\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435 Superset.",
|
|
"PRE": "environment_id \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u043c\u0443 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044e.",
|
|
"POST": "\u0414\u0430\u0448\u0431\u043e\u0440\u0434 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d \u0432 \u0446\u0435\u043b\u0435\u0432\u043e\u0439 Superset.",
|
|
"PARAM": "superset_log - Superset API-specific logger instance.",
|
|
"RETURN": "Dict[str, Any] - \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0434\u0435\u043f\u043b\u043e\u044f.",
|
|
"SIDE_EFFECT": "\u0421\u043e\u0437\u0434\u0430\u0435\u0442 \u0438 \u0443\u0434\u0430\u043b\u044f\u0435\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 ZIP-\u0444\u0430\u0439\u043b."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "CALLS",
|
|
"target": "src.core.superset_client.SupersetClient.import_dashboard"
|
|
}
|
|
],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "_get_env",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 332,
|
|
"end_line": 395,
|
|
"tags": {
|
|
"PURPOSE": "\u0412\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f.",
|
|
"PARAM": "env_id (Optional[str]) - ID \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f.",
|
|
"PRE": "env_id is a string or None.",
|
|
"POST": "Returns an Environment object from config or DB.",
|
|
"RETURN": "Environment - \u041e\u0431\u044a\u0435\u043a\u0442 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 30
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 30
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
}
|
|
},
|
|
{
|
|
"name": "MigrationPlugin",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 345,
|
|
"tags": {
|
|
"SEMANTICS": "migration, superset, automation, dashboard, plugin",
|
|
"PURPOSE": "A plugin that provides functionality to migrate Superset dashboards between environments.",
|
|
"LAYER": "App"
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "IMPLEMENTS",
|
|
"target": "PluginBase"
|
|
},
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "superset_tool.client"
|
|
},
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "superset_tool.utils"
|
|
},
|
|
{
|
|
"type": "USES",
|
|
"target": "TaskContext"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "MigrationPlugin",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 23,
|
|
"end_line": 344,
|
|
"tags": {
|
|
"PURPOSE": "Implementation of the migration plugin logic."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "id",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 31,
|
|
"end_line": 39,
|
|
"tags": {
|
|
"PURPOSE": "Returns the unique identifier for the migration plugin.",
|
|
"PRE": "None.",
|
|
"POST": "Returns \"superset-migration\".",
|
|
"RETURN": "str - \"superset-migration\""
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "name",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 42,
|
|
"end_line": 50,
|
|
"tags": {
|
|
"PURPOSE": "Returns the human-readable name of the migration plugin.",
|
|
"PRE": "None.",
|
|
"POST": "Returns the plugin name.",
|
|
"RETURN": "str - Plugin name."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "description",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 53,
|
|
"end_line": 61,
|
|
"tags": {
|
|
"PURPOSE": "Returns a description of the migration plugin.",
|
|
"PRE": "None.",
|
|
"POST": "Returns the plugin description.",
|
|
"RETURN": "str - Plugin description."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "version",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 64,
|
|
"end_line": 72,
|
|
"tags": {
|
|
"PURPOSE": "Returns the version of the migration plugin.",
|
|
"PRE": "None.",
|
|
"POST": "Returns \"1.0.0\".",
|
|
"RETURN": "str - \"1.0.0\""
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "ui_route",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 75,
|
|
"end_line": 81,
|
|
"tags": {
|
|
"PURPOSE": "Returns the frontend route for the migration plugin.",
|
|
"RETURN": "str - \"/migration\""
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 75
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 75
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 75
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 75
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 75
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 75
|
|
}
|
|
],
|
|
"score": 0.26666666666666655
|
|
}
|
|
},
|
|
{
|
|
"name": "get_schema",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 83,
|
|
"end_line": 132,
|
|
"tags": {
|
|
"PURPOSE": "Returns the JSON schema for migration plugin parameters.",
|
|
"PRE": "Config manager is available.",
|
|
"POST": "Returns a valid JSON schema dictionary.",
|
|
"RETURN": "Dict[str, Any] - JSON schema."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "execute",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 134,
|
|
"end_line": 343,
|
|
"tags": {
|
|
"PURPOSE": "Executes the dashboard migration logic with TaskContext support.",
|
|
"PARAM": "context (Optional[TaskContext]) - Task context for logging with source attribution.",
|
|
"PRE": "Source and target environments must be configured.",
|
|
"POST": "Selected dashboards are migrated."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "MigrationPlugin.execute",
|
|
"type": "Action",
|
|
"tier": "STANDARD",
|
|
"start_line": 155,
|
|
"end_line": 342,
|
|
"tags": {
|
|
"PURPOSE": "Execute the migration logic with proper task logging."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 23
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 23
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
}
|
|
},
|
|
{
|
|
"name": "schedule_dashboard_validation",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 12,
|
|
"end_line": 42,
|
|
"tags": {
|
|
"PURPOSE": "Schedules a recurring dashboard validation task.",
|
|
"PARAM": "params (Dict[str, Any]) - Task parameters (environment_id, provider_id).",
|
|
"SIDE_EFFECT": "Adds a job to the scheduler service."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 12
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 12
|
|
}
|
|
],
|
|
"score": 0.6666666666666667
|
|
}
|
|
},
|
|
{
|
|
"name": "_parse_cron",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 44,
|
|
"end_line": 60,
|
|
"tags": {
|
|
"PURPOSE": "Basic cron parser placeholder.",
|
|
"PARAM": "cron (str) - Cron expression.",
|
|
"RETURN": "Dict[str, str] - Parsed cron parts."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 44
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 44
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 44
|
|
}
|
|
],
|
|
"score": 0.5666666666666667
|
|
}
|
|
},
|
|
{
|
|
"name": "scheduler",
|
|
"type": "Module",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 1,
|
|
"end_line": 62,
|
|
"tags": {
|
|
"PURPOSE": "Auto-generated module for backend/src/plugins/llm_analysis/scheduler.py",
|
|
"TIER": "TRIVIAL",
|
|
"LAYER": "Unknown"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "job_func",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 25,
|
|
"end_line": 25,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "LLMProviderType",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 12,
|
|
"end_line": 18,
|
|
"tags": {
|
|
"PURPOSE": "Enum for supported LLM providers."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 12
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "LLMProviderConfig",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 20,
|
|
"end_line": 30,
|
|
"tags": {
|
|
"PURPOSE": "Configuration for an LLM provider."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 20
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "ValidationStatus",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 32,
|
|
"end_line": 38,
|
|
"tags": {
|
|
"PURPOSE": "Enum for dashboard validation status."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 32
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "DetectedIssue",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 40,
|
|
"end_line": 46,
|
|
"tags": {
|
|
"PURPOSE": "Model for a single issue detected during validation."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 40
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "ValidationResult",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 48,
|
|
"end_line": 59,
|
|
"tags": {
|
|
"PURPOSE": "Model for dashboard validation result."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 48
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "DashboardValidationPlugin",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 27,
|
|
"end_line": 228,
|
|
"tags": {
|
|
"PURPOSE": "Plugin for automated dashboard health analysis using LLMs."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "IMPLEMENTS",
|
|
"target": "backend.src.core.plugin_base.PluginBase"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "DashboardValidationPlugin.execute",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 58,
|
|
"end_line": 227,
|
|
"tags": {
|
|
"PURPOSE": "Executes the dashboard validation task with TaskContext support.",
|
|
"PARAM": "context (Optional[TaskContext]) - Task context for logging with source attribution.",
|
|
"PRE": "params contains dashboard_id, environment_id, and provider_id.",
|
|
"POST": "Returns a dictionary with validation results and persists them to the database.",
|
|
"SIDE_EFFECT": "Captures a screenshot, calls LLM API, and writes to the database."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 27
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "DocumentationPlugin",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 230,
|
|
"end_line": 389,
|
|
"tags": {
|
|
"PURPOSE": "Plugin for automated dataset documentation using LLMs."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "IMPLEMENTS",
|
|
"target": "backend.src.core.plugin_base.PluginBase"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "DocumentationPlugin.execute",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 261,
|
|
"end_line": 388,
|
|
"tags": {
|
|
"PURPOSE": "Executes the dataset documentation task with TaskContext support.",
|
|
"PARAM": "context (Optional[TaskContext]) - Task context for logging with source attribution.",
|
|
"PRE": "params contains dataset_id, environment_id, and provider_id.",
|
|
"POST": "Returns generated documentation and updates the dataset in Superset.",
|
|
"SIDE_EFFECT": "Calls LLM API and updates dataset metadata in Superset."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 230
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "plugin",
|
|
"type": "Module",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 1,
|
|
"end_line": 391,
|
|
"tags": {
|
|
"PURPOSE": "Auto-generated module for backend/src/plugins/llm_analysis/plugin.py",
|
|
"TIER": "TRIVIAL",
|
|
"LAYER": "Unknown"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "id",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 32,
|
|
"end_line": 32,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "name",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 36,
|
|
"end_line": 36,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "description",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 40,
|
|
"end_line": 40,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "version",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 44,
|
|
"end_line": 44,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_schema",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 47,
|
|
"end_line": 47,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "execute",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 65,
|
|
"end_line": 65,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "id",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 235,
|
|
"end_line": 235,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "name",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 239,
|
|
"end_line": 239,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "description",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 243,
|
|
"end_line": 243,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "version",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 247,
|
|
"end_line": 247,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_schema",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 250,
|
|
"end_line": 250,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "execute",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 268,
|
|
"end_line": 268,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "ScreenshotService",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 24,
|
|
"end_line": 414,
|
|
"tags": {
|
|
"PURPOSE": "Handles capturing screenshots of Superset dashboards."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "ScreenshotService.__init__",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 27,
|
|
"end_line": 32,
|
|
"tags": {
|
|
"PURPOSE": "Initializes the ScreenshotService with environment configuration.",
|
|
"PRE": "env is a valid Environment object."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 27
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 27
|
|
}
|
|
],
|
|
"score": 0.7333333333333334
|
|
}
|
|
},
|
|
{
|
|
"name": "ScreenshotService.capture_dashboard",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 34,
|
|
"end_line": 413,
|
|
"tags": {
|
|
"PURPOSE": "Captures a full-page screenshot of a dashboard using Playwright and CDP.",
|
|
"PRE": "dashboard_id is a valid string, output_path is a writable path.",
|
|
"POST": "Returns True if screenshot is saved successfully.",
|
|
"SIDE_EFFECT": "Launches a browser, performs UI login, switches tabs, and writes a PNG file.",
|
|
"UX_STATE": "[Capturing] -> Executing CDP screenshot"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 24
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "LLMClient",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 416,
|
|
"end_line": 630,
|
|
"tags": {
|
|
"PURPOSE": "Wrapper for LLM provider APIs."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "LLMClient.__init__",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 419,
|
|
"end_line": 437,
|
|
"tags": {
|
|
"PURPOSE": "Initializes the LLMClient with provider settings.",
|
|
"PRE": "api_key, base_url, and default_model are non-empty strings."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 419
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 419
|
|
}
|
|
],
|
|
"score": 0.7333333333333334
|
|
}
|
|
},
|
|
{
|
|
"name": "LLMClient.get_json_completion",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 439,
|
|
"end_line": 544,
|
|
"tags": {
|
|
"PURPOSE": "Helper to handle LLM calls with JSON mode and fallback parsing.",
|
|
"PRE": "messages is a list of valid message dictionaries.",
|
|
"POST": "Returns a parsed JSON dictionary.",
|
|
"SIDE_EFFECT": "Calls external LLM API."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "LLMClient.analyze_dashboard",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 546,
|
|
"end_line": 629,
|
|
"tags": {
|
|
"PURPOSE": "Sends dashboard data (screenshot + logs) to LLM for health analysis.",
|
|
"PRE": "screenshot_path exists, logs is a list of strings.",
|
|
"POST": "Returns a structured analysis dictionary (status, summary, issues).",
|
|
"SIDE_EFFECT": "Reads screenshot file and calls external LLM API."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 416
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "service",
|
|
"type": "Module",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 1,
|
|
"end_line": 632,
|
|
"tags": {
|
|
"PURPOSE": "Auto-generated module for backend/src/plugins/llm_analysis/service.py",
|
|
"TIER": "TRIVIAL",
|
|
"LAYER": "Unknown"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "__init__",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 30,
|
|
"end_line": 30,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "capture_dashboard",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 43,
|
|
"end_line": 43,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "switch_tabs",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 253,
|
|
"end_line": 253,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "__init__",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 422,
|
|
"end_line": 422,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "_should_retry",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 444,
|
|
"end_line": 444,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_json_completion",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 458,
|
|
"end_line": 458,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "analyze_dashboard",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 551,
|
|
"end_line": 551,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "StoragePlugin",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 344,
|
|
"tags": {
|
|
"SEMANTICS": "storage, files, filesystem, plugin",
|
|
"PURPOSE": "Provides core filesystem operations for managing backups and repositories.",
|
|
"LAYER": "App",
|
|
"INVARIANT": "All file operations must be restricted to the configured storage root."
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "IMPLEMENTS",
|
|
"target": "PluginBase"
|
|
},
|
|
{
|
|
"type": "DEPENDS_ON",
|
|
"target": "backend.src.models.storage"
|
|
},
|
|
{
|
|
"type": "USES",
|
|
"target": "TaskContext"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "StoragePlugin",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 27,
|
|
"end_line": 343,
|
|
"tags": {
|
|
"PURPOSE": "Implementation of the storage management plugin."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "__init__",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 34,
|
|
"end_line": 41,
|
|
"tags": {
|
|
"PURPOSE": "Initializes the StoragePlugin and ensures required directories exist.",
|
|
"PRE": "Configuration manager must be accessible.",
|
|
"POST": "Storage root and category directories are created on disk."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "id",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 44,
|
|
"end_line": 52,
|
|
"tags": {
|
|
"PURPOSE": "Returns the unique identifier for the storage plugin.",
|
|
"PRE": "None.",
|
|
"POST": "Returns the plugin ID string.",
|
|
"RETURN": "str - \"storage-manager\""
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "name",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 55,
|
|
"end_line": 63,
|
|
"tags": {
|
|
"PURPOSE": "Returns the human-readable name of the storage plugin.",
|
|
"PRE": "None.",
|
|
"POST": "Returns the plugin name string.",
|
|
"RETURN": "str - \"Storage Manager\""
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "description",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 66,
|
|
"end_line": 74,
|
|
"tags": {
|
|
"PURPOSE": "Returns a description of the storage plugin.",
|
|
"PRE": "None.",
|
|
"POST": "Returns the plugin description string.",
|
|
"RETURN": "str - Plugin description."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "version",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 77,
|
|
"end_line": 85,
|
|
"tags": {
|
|
"PURPOSE": "Returns the version of the storage plugin.",
|
|
"PRE": "None.",
|
|
"POST": "Returns the version string.",
|
|
"RETURN": "str - \"1.0.0\""
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "ui_route",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 88,
|
|
"end_line": 94,
|
|
"tags": {
|
|
"PURPOSE": "Returns the frontend route for the storage plugin.",
|
|
"RETURN": "str - \"/tools/storage\""
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 88
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 88
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 88
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 88
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 88
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 88
|
|
}
|
|
],
|
|
"score": 0.26666666666666655
|
|
}
|
|
},
|
|
{
|
|
"name": "get_schema",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 96,
|
|
"end_line": 114,
|
|
"tags": {
|
|
"PURPOSE": "Returns the JSON schema for storage plugin parameters.",
|
|
"PRE": "None.",
|
|
"POST": "Returns a dictionary representing the JSON schema.",
|
|
"RETURN": "Dict[str, Any] - JSON schema."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "execute",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 116,
|
|
"end_line": 132,
|
|
"tags": {
|
|
"PURPOSE": "Executes storage-related tasks with TaskContext support.",
|
|
"PARAM": "context (Optional[TaskContext]) - Task context for logging with source attribution.",
|
|
"PRE": "params must match the plugin schema.",
|
|
"POST": "Task is executed and logged."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_storage_root",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 134,
|
|
"end_line": 154,
|
|
"tags": {
|
|
"PURPOSE": "Resolves the absolute path to the storage root.",
|
|
"PRE": "Settings must define a storage root path.",
|
|
"POST": "Returns a Path object representing the storage root."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "resolve_path",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 156,
|
|
"end_line": 178,
|
|
"tags": {
|
|
"PURPOSE": "Resolves a dynamic path pattern using provided variables.",
|
|
"PARAM": "variables (Dict[str, str]) - Variables to substitute in the pattern.",
|
|
"PRE": "pattern must be a valid format string.",
|
|
"POST": "Returns the resolved path string.",
|
|
"RETURN": "str - The resolved path."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "ensure_directories",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 180,
|
|
"end_line": 193,
|
|
"tags": {
|
|
"PURPOSE": "Creates the storage root and category subdirectories if they don't exist.",
|
|
"PRE": "Storage root must be resolvable.",
|
|
"POST": "Directories are created on the filesystem.",
|
|
"SIDE_EFFECT": "Creates directories on the filesystem."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "validate_path",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 195,
|
|
"end_line": 209,
|
|
"tags": {
|
|
"PURPOSE": "Prevents path traversal attacks by ensuring the path is within the storage root.",
|
|
"PRE": "path must be a Path object.",
|
|
"POST": "Returns the resolved absolute path if valid, otherwise raises ValueError."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "list_files",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 211,
|
|
"end_line": 260,
|
|
"tags": {
|
|
"PURPOSE": "Lists all files and directories in a specific category and subpath.",
|
|
"PARAM": "subpath (Optional[str]) - Nested path within the category.",
|
|
"PRE": "Storage root must exist.",
|
|
"POST": "Returns a list of StoredFile objects.",
|
|
"RETURN": "List[StoredFile] - List of file and directory metadata objects."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "save_file",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 262,
|
|
"end_line": 294,
|
|
"tags": {
|
|
"PURPOSE": "Saves an uploaded file to the specified category and optional subpath.",
|
|
"PARAM": "subpath (Optional[str]) - The target subpath.",
|
|
"PRE": "file must be a valid UploadFile; category must be valid.",
|
|
"POST": "File is written to disk and metadata is returned.",
|
|
"RETURN": "StoredFile - Metadata of the saved file.",
|
|
"SIDE_EFFECT": "Writes file to disk."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "delete_file",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 296,
|
|
"end_line": 320,
|
|
"tags": {
|
|
"PURPOSE": "Deletes a file or directory from the specified category and path.",
|
|
"PARAM": "path (str) - The relative path of the file or directory.",
|
|
"PRE": "path must belong to the specified category and exist on disk.",
|
|
"POST": "The file or directory is removed from disk.",
|
|
"SIDE_EFFECT": "Removes item from disk."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "get_file_path",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 322,
|
|
"end_line": 341,
|
|
"tags": {
|
|
"PURPOSE": "Returns the absolute path of a file for download.",
|
|
"PARAM": "path (str) - The relative path of the file.",
|
|
"PRE": "path must belong to the specified category and be a file.",
|
|
"POST": "Returns the absolute Path to the file.",
|
|
"RETURN": "Path - Absolute path to the file."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 27
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 27
|
|
}
|
|
],
|
|
"score": 0.7000000000000001
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 1
|
|
}
|
|
],
|
|
"score": 0.85
|
|
}
|
|
},
|
|
{
|
|
"name": "GitLLMExtension",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 13,
|
|
"end_line": 64,
|
|
"tags": {
|
|
"PURPOSE": "Provides LLM capabilities to the Git plugin."
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "suggest_commit_message",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 19,
|
|
"end_line": 63,
|
|
"tags": {
|
|
"PURPOSE": "Generates a suggested commit message based on a diff and history.",
|
|
"PARAM": "history (List[str]) - Recent commit messages for context.",
|
|
"RETURN": "str - The suggested commit message."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 19
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 19
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PRE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 19
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @POST (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 19
|
|
}
|
|
],
|
|
"score": 0.4666666666666666
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @TIER (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 13
|
|
}
|
|
],
|
|
"score": 0.8
|
|
}
|
|
},
|
|
{
|
|
"name": "llm_extension",
|
|
"type": "Module",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 1,
|
|
"end_line": 66,
|
|
"tags": {
|
|
"PURPOSE": "Auto-generated module for backend/src/plugins/git/llm_extension.py",
|
|
"TIER": "TRIVIAL",
|
|
"LAYER": "Unknown"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "__init__",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 16,
|
|
"end_line": 16,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_environment_model",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 4,
|
|
"end_line": 20,
|
|
"tags": {
|
|
"PURPOSE": "Tests that Environment model correctly stores values.",
|
|
"PRE": "Environment class is available.",
|
|
"POST": "Values are verified."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "backend.tests.test_dashboards_api",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 73,
|
|
"tags": {
|
|
"TIER": "STANDARD",
|
|
"PURPOSE": "Contract-driven tests for Dashboard Hub API",
|
|
"LAYER": "Domain (Tests)",
|
|
"SEMANTICS": "tests, dashboards, api, contract"
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "TESTS",
|
|
"target": "backend.src.api.routes.dashboards"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "test_get_dashboards_success",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 15,
|
|
"end_line": 53,
|
|
"tags": {
|
|
"TEST": "GET /api/dashboards returns 200 and valid schema",
|
|
"PRE": "env_id exists",
|
|
"POST": "Response matches DashboardsResponse schema"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 15
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 15
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 15
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 15
|
|
}
|
|
],
|
|
"score": 0.5333333333333333
|
|
}
|
|
},
|
|
{
|
|
"name": "test_get_dashboards_env_not_found",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 55,
|
|
"end_line": 71,
|
|
"tags": {
|
|
"TEST": "GET /api/dashboards returns 404 if env_id missing",
|
|
"PRE": "env_id does not exist",
|
|
"POST": "Returns 404 error"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 55
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 55
|
|
},
|
|
{
|
|
"message": "Missing Mandatory Tag: @PURPOSE (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 55
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 55
|
|
}
|
|
],
|
|
"score": 0.5333333333333333
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_dashboards_api",
|
|
"type": "Test",
|
|
"tier": "STANDARD",
|
|
"start_line": 9,
|
|
"end_line": 78,
|
|
"tags": {
|
|
"PURPOSE": "Verify GET /api/dashboards contract compliance",
|
|
"TEST": "Search filter works"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_datasets_api",
|
|
"type": "Test",
|
|
"tier": "STANDARD",
|
|
"start_line": 80,
|
|
"end_line": 123,
|
|
"tags": {
|
|
"PURPOSE": "Verify GET /api/datasets contract compliance",
|
|
"TEST": "Negative - Service failure returns 503"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_resource_hubs",
|
|
"type": "Module",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 1,
|
|
"end_line": 123,
|
|
"tags": {
|
|
"PURPOSE": "Auto-generated module for backend/tests/test_resource_hubs.py",
|
|
"TIER": "TRIVIAL",
|
|
"LAYER": "Unknown"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "mock_deps",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 16,
|
|
"end_line": 16,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_get_dashboards_success",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 58,
|
|
"end_line": 58,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_get_dashboards_not_found",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 67,
|
|
"end_line": 67,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_get_dashboards_search",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 71,
|
|
"end_line": 71,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_get_datasets_success",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 87,
|
|
"end_line": 87,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_get_datasets_not_found",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 100,
|
|
"end_line": 100,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_get_datasets_search",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 104,
|
|
"end_line": 104,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_get_datasets_service_failure",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 116,
|
|
"end_line": 116,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_task_logger",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 374,
|
|
"tags": {
|
|
"SEMANTICS": "test, task_logger, task_context, unit_test",
|
|
"PURPOSE": "Unit tests for TaskLogger and TaskContext.",
|
|
"LAYER": "Test",
|
|
"TIER": "STANDARD"
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "TESTS",
|
|
"target": "TaskLogger, TaskContext"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "TestTaskLogger",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 15,
|
|
"end_line": 219,
|
|
"tags": {
|
|
"PURPOSE": "Test suite for TaskLogger.",
|
|
"TIER": "STANDARD"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "setup_method",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 20,
|
|
"end_line": 32,
|
|
"tags": {
|
|
"PURPOSE": "Setup for each test method.",
|
|
"PRE": "None.",
|
|
"POST": "Mock add_log_fn created."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_init",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 34,
|
|
"end_line": 43,
|
|
"tags": {
|
|
"PURPOSE": "Test TaskLogger initialization.",
|
|
"PRE": "None.",
|
|
"POST": "Logger instance created with correct attributes."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_with_source",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 45,
|
|
"end_line": 56,
|
|
"tags": {
|
|
"PURPOSE": "Test creating a sub-logger with different source.",
|
|
"PRE": "Logger initialized.",
|
|
"POST": "New logger created with different source but same task_id."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_debug",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 58,
|
|
"end_line": 73,
|
|
"tags": {
|
|
"PURPOSE": "Test debug log level.",
|
|
"PRE": "Logger initialized.",
|
|
"POST": "add_log_fn called with DEBUG level."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_info",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 75,
|
|
"end_line": 90,
|
|
"tags": {
|
|
"PURPOSE": "Test info log level.",
|
|
"PRE": "Logger initialized.",
|
|
"POST": "add_log_fn called with INFO level."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_warning",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 92,
|
|
"end_line": 107,
|
|
"tags": {
|
|
"PURPOSE": "Test warning log level.",
|
|
"PRE": "Logger initialized.",
|
|
"POST": "add_log_fn called with WARNING level."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_error",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 109,
|
|
"end_line": 124,
|
|
"tags": {
|
|
"PURPOSE": "Test error log level.",
|
|
"PRE": "Logger initialized.",
|
|
"POST": "add_log_fn called with ERROR level."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_error_with_metadata",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 126,
|
|
"end_line": 142,
|
|
"tags": {
|
|
"PURPOSE": "Test error logging with metadata.",
|
|
"PRE": "Logger initialized.",
|
|
"POST": "add_log_fn called with ERROR level and metadata."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_progress",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 144,
|
|
"end_line": 160,
|
|
"tags": {
|
|
"PURPOSE": "Test progress logging.",
|
|
"PRE": "Logger initialized.",
|
|
"POST": "add_log_fn called with INFO level and progress metadata."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_progress_clamping",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 162,
|
|
"end_line": 179,
|
|
"tags": {
|
|
"PURPOSE": "Test progress value clamping (0-100).",
|
|
"PRE": "Logger initialized.",
|
|
"POST": "Progress values clamped to 0-100 range."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_source_override",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 181,
|
|
"end_line": 196,
|
|
"tags": {
|
|
"PURPOSE": "Test overriding the default source.",
|
|
"PRE": "Logger initialized.",
|
|
"POST": "add_log_fn called with overridden source."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_sub_logger_source_independence",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 198,
|
|
"end_line": 217,
|
|
"tags": {
|
|
"PURPOSE": "Test sub-logger independence from parent.",
|
|
"PRE": "Logger and sub-logger initialized.",
|
|
"POST": "Sub-logger has different source, parent unchanged."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "TestTaskContext",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 221,
|
|
"end_line": 373,
|
|
"tags": {
|
|
"PURPOSE": "Test suite for TaskContext.",
|
|
"TIER": "STANDARD"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "setup_method",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 226,
|
|
"end_line": 240,
|
|
"tags": {
|
|
"PURPOSE": "Setup for each test method.",
|
|
"PRE": "None.",
|
|
"POST": "Mock add_log_fn created."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_init",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 242,
|
|
"end_line": 252,
|
|
"tags": {
|
|
"PURPOSE": "Test TaskContext initialization.",
|
|
"PRE": "None.",
|
|
"POST": "Context instance created with correct attributes."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_task_id_property",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 254,
|
|
"end_line": 261,
|
|
"tags": {
|
|
"PURPOSE": "Test task_id property.",
|
|
"PRE": "Context initialized.",
|
|
"POST": "Returns correct task_id."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_logger_property",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 263,
|
|
"end_line": 273,
|
|
"tags": {
|
|
"PURPOSE": "Test logger property.",
|
|
"PRE": "Context initialized.",
|
|
"POST": "Returns TaskLogger instance."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_params_property",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 275,
|
|
"end_line": 282,
|
|
"tags": {
|
|
"PURPOSE": "Test params property.",
|
|
"PRE": "Context initialized.",
|
|
"POST": "Returns correct params dict."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_get_param",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 284,
|
|
"end_line": 294,
|
|
"tags": {
|
|
"PURPOSE": "Test getting a specific parameter.",
|
|
"PRE": "Context initialized with params.",
|
|
"POST": "Returns parameter value or default."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_create_sub_context",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 296,
|
|
"end_line": 308,
|
|
"tags": {
|
|
"PURPOSE": "Test creating a sub-context with different source.",
|
|
"PRE": "Context initialized.",
|
|
"POST": "New context created with different logger source."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_context_logger_delegates_to_task_logger",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 310,
|
|
"end_line": 327,
|
|
"tags": {
|
|
"PURPOSE": "Test context logger delegates to TaskLogger.",
|
|
"PRE": "Context initialized.",
|
|
"POST": "Logger calls are delegated to TaskLogger."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_sub_context_with_source",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 329,
|
|
"end_line": 348,
|
|
"tags": {
|
|
"PURPOSE": "Test sub-context logger uses new source.",
|
|
"PRE": "Context initialized.",
|
|
"POST": "Sub-context logger uses new source."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_multiple_sub_contexts",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 350,
|
|
"end_line": 371,
|
|
"tags": {
|
|
"PURPOSE": "Test creating multiple sub-contexts.",
|
|
"PRE": "Context initialized.",
|
|
"POST": "Each sub-context has independent logger source."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_belief_scope_logs_entry_action_exit_at_debug",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 12,
|
|
"end_line": 41,
|
|
"tags": {
|
|
"PURPOSE": "Test that belief_scope generates [ID][Entry], [ID][Action], and [ID][Exit] logs at DEBUG level.",
|
|
"PRE": "belief_scope is available. caplog fixture is used. Logger configured to DEBUG.",
|
|
"POST": "Logs are verified to contain Entry, Action, and Exit tags at DEBUG level."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_belief_scope_error_handling",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 44,
|
|
"end_line": 73,
|
|
"tags": {
|
|
"PURPOSE": "Test that belief_scope logs Coherence:Failed on exception.",
|
|
"PRE": "belief_scope is available. caplog fixture is used. Logger configured to DEBUG.",
|
|
"POST": "Logs are verified to contain Coherence:Failed tag."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_belief_scope_success_coherence",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 76,
|
|
"end_line": 102,
|
|
"tags": {
|
|
"PURPOSE": "Test that belief_scope logs Coherence:OK on success.",
|
|
"PRE": "belief_scope is available. caplog fixture is used. Logger configured to DEBUG.",
|
|
"POST": "Logs are verified to contain Coherence:OK tag."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_belief_scope_not_visible_at_info",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 105,
|
|
"end_line": 124,
|
|
"tags": {
|
|
"PURPOSE": "Test that belief_scope Entry/Exit/Coherence logs are NOT visible at INFO level.",
|
|
"PRE": "belief_scope is available. caplog fixture is used.",
|
|
"POST": "Entry/Exit/Coherence logs are not captured at INFO level."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_task_log_level_default",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 127,
|
|
"end_line": 135,
|
|
"tags": {
|
|
"PURPOSE": "Test that default task log level is INFO.",
|
|
"PRE": "None.",
|
|
"POST": "Default level is INFO."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_should_log_task_level",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 138,
|
|
"end_line": 149,
|
|
"tags": {
|
|
"PURPOSE": "Test that should_log_task_level correctly filters log levels.",
|
|
"PRE": "None.",
|
|
"POST": "Filtering works correctly for all level combinations."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_configure_logger_task_log_level",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 152,
|
|
"end_line": 176,
|
|
"tags": {
|
|
"PURPOSE": "Test that configure_logger updates task_log_level.",
|
|
"PRE": "LoggingConfig is available.",
|
|
"POST": "task_log_level is updated correctly."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_enable_belief_state_flag",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 179,
|
|
"end_line": 213,
|
|
"tags": {
|
|
"PURPOSE": "Test that enable_belief_state flag controls belief_scope logging.",
|
|
"PRE": "LoggingConfig is available. caplog fixture is used.",
|
|
"POST": "belief_scope logs are controlled by the flag."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_auth",
|
|
"type": "Module",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 1,
|
|
"end_line": 161,
|
|
"tags": {
|
|
"PURPOSE": "Auto-generated module for backend/tests/test_auth.py",
|
|
"TIER": "TRIVIAL",
|
|
"LAYER": "Unknown"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "db_session",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 26,
|
|
"end_line": 26,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "auth_service",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 39,
|
|
"end_line": 39,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "auth_repo",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 43,
|
|
"end_line": 43,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_create_user",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 46,
|
|
"end_line": 46,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_authenticate_user",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 64,
|
|
"end_line": 64,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_create_session",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 89,
|
|
"end_line": 89,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_role_permission_association",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 107,
|
|
"end_line": 107,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_user_role_association",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 126,
|
|
"end_line": 126,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_ad_group_mapping",
|
|
"type": "Function",
|
|
"tier": "TRIVIAL",
|
|
"start_line": 147,
|
|
"end_line": 147,
|
|
"tags": {
|
|
"PURPOSE": "Auto-detected function (orphan)",
|
|
"TIER": "TRIVIAL"
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
},
|
|
{
|
|
"name": "test_log_persistence",
|
|
"type": "Module",
|
|
"tier": "STANDARD",
|
|
"start_line": 1,
|
|
"end_line": 395,
|
|
"tags": {
|
|
"SEMANTICS": "test, log, persistence, unit_test",
|
|
"PURPOSE": "Unit tests for TaskLogPersistenceService.",
|
|
"LAYER": "Test",
|
|
"TIER": "STANDARD"
|
|
},
|
|
"relations": [
|
|
{
|
|
"type": "TESTS",
|
|
"target": "TaskLogPersistenceService"
|
|
}
|
|
],
|
|
"children": [
|
|
{
|
|
"name": "TestLogPersistence",
|
|
"type": "Class",
|
|
"tier": "STANDARD",
|
|
"start_line": 17,
|
|
"end_line": 394,
|
|
"tags": {
|
|
"PURPOSE": "Test suite for TaskLogPersistenceService.",
|
|
"TIER": "STANDARD"
|
|
},
|
|
"relations": [],
|
|
"children": [
|
|
{
|
|
"name": "setup_class",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 22,
|
|
"end_line": 32,
|
|
"tags": {
|
|
"PURPOSE": "Setup test database and service instance.",
|
|
"PRE": "None.",
|
|
"POST": "In-memory database and service instance created."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 22
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 22
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 22
|
|
}
|
|
],
|
|
"score": 0.7
|
|
}
|
|
},
|
|
{
|
|
"name": "teardown_class",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 34,
|
|
"end_line": 42,
|
|
"tags": {
|
|
"PURPOSE": "Clean up test database.",
|
|
"PRE": "None.",
|
|
"POST": "Database disposed."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 34
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 34
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 34
|
|
}
|
|
],
|
|
"score": 0.7
|
|
}
|
|
},
|
|
{
|
|
"name": "setup_method",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 44,
|
|
"end_line": 51,
|
|
"tags": {
|
|
"PURPOSE": "Setup for each test method.",
|
|
"PRE": "None.",
|
|
"POST": "Fresh database session created."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 44
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 44
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 44
|
|
}
|
|
],
|
|
"score": 0.7
|
|
}
|
|
},
|
|
{
|
|
"name": "teardown_method",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 53,
|
|
"end_line": 60,
|
|
"tags": {
|
|
"PURPOSE": "Cleanup after each test method.",
|
|
"PRE": "None.",
|
|
"POST": "Session closed and rolled back."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 53
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 53
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 53
|
|
}
|
|
],
|
|
"score": 0.7
|
|
}
|
|
},
|
|
{
|
|
"name": "test_add_log_single",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 62,
|
|
"end_line": 85,
|
|
"tags": {
|
|
"PURPOSE": "Test adding a single log entry.",
|
|
"PRE": "Service and session initialized.",
|
|
"POST": "Log entry persisted to database."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 62
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 62
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 62
|
|
}
|
|
],
|
|
"score": 0.7
|
|
}
|
|
},
|
|
{
|
|
"name": "test_add_log_batch",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 87,
|
|
"end_line": 126,
|
|
"tags": {
|
|
"PURPOSE": "Test adding multiple log entries in batch.",
|
|
"PRE": "Service and session initialized.",
|
|
"POST": "All log entries persisted to database."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 87
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 87
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 87
|
|
}
|
|
],
|
|
"score": 0.7
|
|
}
|
|
},
|
|
{
|
|
"name": "test_get_logs_by_task_id",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 128,
|
|
"end_line": 152,
|
|
"tags": {
|
|
"PURPOSE": "Test retrieving logs by task ID.",
|
|
"PRE": "Service and session initialized, logs exist.",
|
|
"POST": "Returns logs for the specified task."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 128
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 128
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 128
|
|
}
|
|
],
|
|
"score": 0.7
|
|
}
|
|
},
|
|
{
|
|
"name": "test_get_logs_with_filters",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 154,
|
|
"end_line": 199,
|
|
"tags": {
|
|
"PURPOSE": "Test retrieving logs with level and source filters.",
|
|
"PRE": "Service and session initialized, logs exist.",
|
|
"POST": "Returns filtered logs."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 154
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 154
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 154
|
|
}
|
|
],
|
|
"score": 0.7
|
|
}
|
|
},
|
|
{
|
|
"name": "test_get_logs_with_pagination",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 201,
|
|
"end_line": 227,
|
|
"tags": {
|
|
"PURPOSE": "Test retrieving logs with pagination.",
|
|
"PRE": "Service and session initialized, logs exist.",
|
|
"POST": "Returns paginated logs."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 201
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 201
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 201
|
|
}
|
|
],
|
|
"score": 0.7
|
|
}
|
|
},
|
|
{
|
|
"name": "test_get_logs_with_search",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 229,
|
|
"end_line": 270,
|
|
"tags": {
|
|
"PURPOSE": "Test retrieving logs with search query.",
|
|
"PRE": "Service and session initialized, logs exist.",
|
|
"POST": "Returns logs matching search query."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 229
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 229
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 229
|
|
}
|
|
],
|
|
"score": 0.7
|
|
}
|
|
},
|
|
{
|
|
"name": "test_get_log_stats",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 272,
|
|
"end_line": 320,
|
|
"tags": {
|
|
"PURPOSE": "Test retrieving log statistics.",
|
|
"PRE": "Service and session initialized, logs exist.",
|
|
"POST": "Returns statistics grouped by level and source."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 272
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 272
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 272
|
|
}
|
|
],
|
|
"score": 0.7
|
|
}
|
|
},
|
|
{
|
|
"name": "test_get_log_sources",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 322,
|
|
"end_line": 361,
|
|
"tags": {
|
|
"PURPOSE": "Test retrieving unique log sources.",
|
|
"PRE": "Service and session initialized, logs exist.",
|
|
"POST": "Returns list of unique sources."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 322
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 322
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 322
|
|
}
|
|
],
|
|
"score": 0.7
|
|
}
|
|
},
|
|
{
|
|
"name": "test_delete_logs_by_task_id",
|
|
"type": "Function",
|
|
"tier": "STANDARD",
|
|
"start_line": 363,
|
|
"end_line": 392,
|
|
"tags": {
|
|
"PURPOSE": "Test deleting logs by task ID.",
|
|
"PRE": "Service and session initialized, logs exist.",
|
|
"POST": "Logs for the task are deleted."
|
|
},
|
|
"relations": [],
|
|
"children": [],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 363
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 363
|
|
},
|
|
{
|
|
"message": "Missing Belief State Logging: Function should use belief_scope (required for STANDARD tier)",
|
|
"severity": "WARNING",
|
|
"line_number": 363
|
|
}
|
|
],
|
|
"score": 0.7
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
],
|
|
"compliance": {
|
|
"valid": true,
|
|
"issues": [],
|
|
"score": 1.0
|
|
}
|
|
}
|
|
]
|
|
} |