193 lines
5.8 KiB
YAML
193 lines
5.8 KiB
YAML
# Register Packs Action
|
|
# Validates pack structure and loads components into database
|
|
|
|
name: register_packs
|
|
ref: core.register_packs
|
|
description: "Register packs by validating schemas, loading components into database, and copying to permanent storage"
|
|
enabled: true
|
|
runner_type: shell
|
|
entry_point: register_packs.sh
|
|
|
|
# Parameter delivery: stdin for secure parameter passing (no env vars)
|
|
parameter_delivery: stdin
|
|
parameter_format: json
|
|
|
|
# Output format: json (structured data parsing enabled)
|
|
output_format: json
|
|
|
|
# Action parameters schema
|
|
parameters:
|
|
type: object
|
|
properties:
|
|
pack_paths:
|
|
type: array
|
|
description: "List of pack directory paths to register"
|
|
items:
|
|
type: string
|
|
minItems: 1
|
|
packs_base_dir:
|
|
type: string
|
|
description: "Base directory where packs are permanently stored"
|
|
default: "/opt/attune/packs"
|
|
skip_validation:
|
|
type: boolean
|
|
description: "Skip schema validation of pack components"
|
|
default: false
|
|
skip_tests:
|
|
type: boolean
|
|
description: "Skip running pack tests before registration"
|
|
default: false
|
|
force:
|
|
type: boolean
|
|
description: "Force registration even if pack already exists (will replace)"
|
|
default: false
|
|
api_url:
|
|
type: string
|
|
description: "Attune API URL for registration calls"
|
|
default: "http://localhost:8080"
|
|
api_token:
|
|
type: string
|
|
description: "API authentication token"
|
|
secret: true
|
|
required:
|
|
- pack_paths
|
|
|
|
# Output schema: describes the JSON structure written to stdout
|
|
# Note: stdout/stderr/exit_code are captured automatically by the execution system
|
|
output_schema:
|
|
type: object
|
|
properties:
|
|
registered_packs:
|
|
type: array
|
|
description: "List of successfully registered packs"
|
|
items:
|
|
type: object
|
|
properties:
|
|
pack_ref:
|
|
type: string
|
|
description: "Pack reference"
|
|
pack_id:
|
|
type: integer
|
|
description: "Database ID of registered pack"
|
|
pack_version:
|
|
type: string
|
|
description: "Pack version"
|
|
storage_path:
|
|
type: string
|
|
description: "Permanent storage path"
|
|
components_registered:
|
|
type: object
|
|
description: "Count of registered components by type"
|
|
properties:
|
|
actions:
|
|
type: integer
|
|
description: "Number of actions registered"
|
|
sensors:
|
|
type: integer
|
|
description: "Number of sensors registered"
|
|
triggers:
|
|
type: integer
|
|
description: "Number of triggers registered"
|
|
rules:
|
|
type: integer
|
|
description: "Number of rules registered"
|
|
workflows:
|
|
type: integer
|
|
description: "Number of workflows registered"
|
|
policies:
|
|
type: integer
|
|
description: "Number of policies registered"
|
|
test_result:
|
|
type: object
|
|
description: "Pack test results (if tests were run)"
|
|
properties:
|
|
status:
|
|
type: string
|
|
description: "Test status"
|
|
enum:
|
|
- passed
|
|
- failed
|
|
- skipped
|
|
total_tests:
|
|
type: integer
|
|
description: "Total number of tests"
|
|
passed:
|
|
type: integer
|
|
description: "Number of passed tests"
|
|
failed:
|
|
type: integer
|
|
description: "Number of failed tests"
|
|
validation_results:
|
|
type: object
|
|
description: "Component validation results"
|
|
properties:
|
|
valid:
|
|
type: boolean
|
|
description: "Whether all components are valid"
|
|
errors:
|
|
type: array
|
|
description: "Validation errors found"
|
|
items:
|
|
type: object
|
|
properties:
|
|
component_type:
|
|
type: string
|
|
description: "Type of component"
|
|
component_file:
|
|
type: string
|
|
description: "File with validation error"
|
|
error:
|
|
type: string
|
|
description: "Error message"
|
|
failed_packs:
|
|
type: array
|
|
description: "List of packs that failed to register"
|
|
items:
|
|
type: object
|
|
properties:
|
|
pack_ref:
|
|
type: string
|
|
description: "Pack reference"
|
|
pack_path:
|
|
type: string
|
|
description: "Pack directory path"
|
|
error:
|
|
type: string
|
|
description: "Error message"
|
|
error_stage:
|
|
type: string
|
|
description: "Stage where error occurred"
|
|
enum:
|
|
- validation
|
|
- testing
|
|
- database_registration
|
|
- file_copy
|
|
- api_call
|
|
summary:
|
|
type: object
|
|
description: "Summary of registration process"
|
|
properties:
|
|
total_packs:
|
|
type: integer
|
|
description: "Total number of packs processed"
|
|
success_count:
|
|
type: integer
|
|
description: "Number of successfully registered packs"
|
|
failure_count:
|
|
type: integer
|
|
description: "Number of failed registrations"
|
|
total_components:
|
|
type: integer
|
|
description: "Total number of components registered"
|
|
duration_ms:
|
|
type: integer
|
|
description: "Total registration time in milliseconds"
|
|
|
|
# Tags for categorization
|
|
tags:
|
|
- pack
|
|
- registration
|
|
- validation
|
|
- installation
|
|
- database
|