Files
metabuilder/packagerepo/backend/workflows/list_versions.json
johndoe6345789 ce435a5e1b feat(schema): add n8n workflow schema with first-class variables support
- Moved n8n workflow schema to schemas/n8n-workflow.schema.json
- Added `variables` property at workflow root level for type-safe, reusable workflow configuration
- Implemented full variable system with:
  * Type system (string, number, boolean, array, object, date, any)
  * Validation rules (min, max, pattern, enum)
  * Scope control (workflow, execution, global)
  * Required/optional with default values
- Created comprehensive N8N_VARIABLES_GUIDE.md (6,800+ words) with:
  * 5 real-world use case examples
  * Best practices and migration guide from meta to variables
  * Complete property reference and expression syntax
- Created N8N_VARIABLES_EXAMPLE.json demonstrating e-commerce order processing
- Documented schema gaps in N8N_SCHEMA_GAPS.md (10 missing enterprise features)
- Created migration infrastructure:
  * scripts/migrate-workflows-to-n8n.ts for workflow format conversion
  * npm scripts for dry-run and full migration
  * N8N_COMPLIANCE_AUDIT.md tracking 72 workflows needing migration
- Established packagerepo backend workflows with n8n schema format

Impact: Variables now first-class citizens enabling DRY principle, type safety, and enterprise-grade configuration management across workflows.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-01-22 18:38:37 +00:00

72 lines
1.6 KiB
JSON

{
"name": "List Package Versions",
"description": "List all versions of a package",
"version": "1.0.0",
"nodes": [
{
"id": "parse_path",
"type": "packagerepo.parse_path",
"parameters": {
"path": "$request.path",
"pattern": "/v1/:namespace/:name/versions",
"out": "entity"
}
},
{
"id": "normalize",
"type": "packagerepo.normalize_entity",
"parameters": {
"entity": "$entity",
"out": "normalized"
}
},
{
"id": "query_index",
"type": "packagerepo.index_query",
"parameters": {
"key": "$entity.namespace/$entity.name",
"out": "versions"
}
},
{
"id": "check_exists",
"type": "logic.if",
"parameters": {
"condition": "$versions == null",
"then": "error_not_found",
"else": "enrich_versions"
}
},
{
"id": "enrich_versions",
"type": "packagerepo.enrich_version_list",
"parameters": {
"namespace": "$entity.namespace",
"name": "$entity.name",
"versions": "$versions",
"out": "enriched"
}
},
{
"id": "respond_json",
"type": "packagerepo.respond_json",
"parameters": {
"body": {
"namespace": "$entity.namespace",
"name": "$entity.name",
"versions": "$enriched"
},
"status": 200
}
},
{
"id": "error_not_found",
"type": "packagerepo.respond_error",
"parameters": {
"message": "Package not found",
"status": 404
}
}
]
}