katalyst-forge 3.0.1__tar.gz → 4.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/.gitignore +7 -0
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/PKG-INFO +2 -2
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/pyproject.toml +2 -2
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/bundle.py +7 -10
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/relationships.py +30 -0
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/wings/agentic.py +0 -2
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/wings/delivery.py +0 -2
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/wings/design.py +110 -8
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/wings/org.py +0 -6
- katalyst_forge-4.0.0/src/katalyst_forge/wings/pipeline.py +51 -0
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/wings/practices.py +0 -4
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/wings/system.py +0 -6
- katalyst_forge-3.0.1/src/katalyst_forge/wings/dx.py +0 -157
- katalyst_forge-3.0.1/src/katalyst_forge/wings/pipeline.py +0 -134
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/__init__.py +0 -0
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/py.typed +0 -0
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/templates/creation/_base.yaml.j2 +0 -0
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/templates/creation/layer.yaml.j2 +0 -0
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/templates/creation/project.yaml.j2 +0 -0
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/templates/creation/stack.yaml.j2 +0 -0
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/templates/creation/system.yaml.j2 +0 -0
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/templates/creation/team.yaml.j2 +0 -0
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/templates/creation/team_member.yaml.j2 +0 -0
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/templates/scaffolds/app-docker/.dockerignore +0 -0
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/templates/scaffolds/app-docker/.env.example +0 -0
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/templates/scaffolds/app-docker/README.md +0 -0
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/templates/scaffolds/app-docker/base/Dockerfile +0 -0
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/templates/scaffolds/app-docker/docker-compose.yaml +0 -0
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/templates/scaffolds/app-docker/env-template/Dockerfile +0 -0
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/templates/scaffolds/app-docker/env-template/docker-compose.override.yaml +0 -0
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/templates/scaffolds/app-docker/env-template/environment.yaml +0 -0
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/templates/scaffolds/app-docker/layer.yaml +0 -0
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/templates/scaffolds/iac-terragrunt/README.md +0 -0
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/templates/scaffolds/iac-terragrunt/composite/terraform/main.tf +0 -0
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/templates/scaffolds/iac-terragrunt/composite/terraform/outputs.tf +0 -0
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/templates/scaffolds/iac-terragrunt/composite/terraform/variables.tf +0 -0
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/templates/scaffolds/iac-terragrunt/env-template/environment.yaml +0 -0
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/templates/scaffolds/iac-terragrunt/env-template/terragrunt.hcl +0 -0
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/templates/scaffolds/iac-terragrunt/global/iac/context.hcl +0 -0
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/templates/scaffolds/iac-terragrunt/global/iac/dev.yaml +0 -0
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/templates/scaffolds/iac-terragrunt/global/iac/prod.yaml +0 -0
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/templates/scaffolds/iac-terragrunt/global/iac/staging.yaml +0 -0
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/templates/scaffolds/iac-terragrunt/layer.yaml +0 -0
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/templates/scaffolds/iac-terragrunt/version.yaml +0 -0
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/templates/scaffolds/k8s-argocd/README.md +0 -0
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/templates/scaffolds/k8s-argocd/base/app/argocd-application.yaml +0 -0
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/templates/scaffolds/k8s-argocd/base/kustomization.yaml +0 -0
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/templates/scaffolds/k8s-argocd/base/namespace.yaml +0 -0
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/templates/scaffolds/k8s-argocd/environment-template/argocd-application.yaml +0 -0
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/templates/scaffolds/k8s-argocd/environment-template/kustomization.yaml +0 -0
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/templates/scaffolds/k8s-argocd/environment-template/patch-argocd-application.yaml +0 -0
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/templates/scaffolds/k8s-argocd/layer.yaml +0 -0
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/templates/scaffolds/k8s-kustomize/README.md +0 -0
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/templates/scaffolds/k8s-kustomize/base/deployment.yaml +0 -0
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/templates/scaffolds/k8s-kustomize/base/kustomization.yaml +0 -0
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/templates/scaffolds/k8s-kustomize/base/namespace.yaml +0 -0
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/templates/scaffolds/k8s-kustomize/base/service.yaml +0 -0
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/templates/scaffolds/k8s-kustomize/environment-template/kustomization.yaml +0 -0
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/templates/scaffolds/k8s-kustomize/environment-template/patch-deployment.yaml +0 -0
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/templates/scaffolds/k8s-kustomize/global/k8s/base/kustomization.yaml +0 -0
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/templates/scaffolds/k8s-kustomize/global/k8s/base/namespace.yaml +0 -0
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/templates/scaffolds/k8s-kustomize/global/k8s/kustomization.yaml +0 -0
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/templates/scaffolds/k8s-kustomize/layer.yaml +0 -0
- {katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/wings/__init__.py +0 -0
|
@@ -103,3 +103,10 @@ stack-tests/test-results/
|
|
|
103
103
|
# Generated artifacts (rebuild with `just generate-schemas`)
|
|
104
104
|
taxonomy/src/katalyst_taxonomy/engine/generated/
|
|
105
105
|
.worktrees/
|
|
106
|
+
.plan-74-75-76-77.md
|
|
107
|
+
.HANDOFF-scaffolding-wiring.md
|
|
108
|
+
.HANDOFF-2-cicd-migration.md
|
|
109
|
+
.HANDOFF-action-execution-fixes.md
|
|
110
|
+
.HANDOFF-bdd-coverage.md
|
|
111
|
+
.HANDOFF-*.md
|
|
112
|
+
docs/superpowers/
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: katalyst-forge
|
|
3
|
-
Version:
|
|
3
|
+
Version: 4.0.0
|
|
4
4
|
Summary: The Forge bundle — 31 node-type definitions for software delivery taxonomy
|
|
5
5
|
Author: eSimplicity
|
|
6
6
|
License: Proprietary
|
|
7
7
|
Requires-Python: >=3.12
|
|
8
|
-
Requires-Dist: katalyst-engine<4
|
|
8
|
+
Requires-Dist: katalyst-engine<5,>=4.0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "katalyst-forge"
|
|
3
|
-
version = "
|
|
3
|
+
version = "4.0.0"
|
|
4
4
|
description = "The Forge bundle — 31 node-type definitions for software delivery taxonomy"
|
|
5
5
|
license = { text = "Proprietary" }
|
|
6
6
|
requires-python = ">=3.12"
|
|
@@ -8,7 +8,7 @@ authors = [
|
|
|
8
8
|
{ name = "eSimplicity" }
|
|
9
9
|
]
|
|
10
10
|
dependencies = [
|
|
11
|
-
"katalyst-engine>=
|
|
11
|
+
"katalyst-engine>=4.0,<5",
|
|
12
12
|
]
|
|
13
13
|
|
|
14
14
|
[project.entry-points."katalyst_engine.bundles"]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"""Forge bundle — the pre-installed taxonomy for software delivery.
|
|
2
2
|
|
|
3
|
-
Assembles
|
|
3
|
+
Assembles 34 node types across 8 wings from the wing modules into
|
|
4
4
|
a single ``ForgeBundle`` that implements the engine's ``Bundle``
|
|
5
5
|
protocol. Discovered via the ``katalyst_engine.bundles`` entry point.
|
|
6
6
|
|
|
@@ -10,9 +10,9 @@ Wing modules:
|
|
|
10
10
|
- ``wings/system.py`` — system, environment, stack, layer, library, capability
|
|
11
11
|
- ``wings/org.py`` — organization, program, project, team, team_member, role
|
|
12
12
|
- ``wings/practices.py`` — practice_area, competency, skill, tool
|
|
13
|
-
- ``wings/design.py`` — business_domain_model, user_type, user_need, adr, nfr, specification, assertion
|
|
13
|
+
- ``wings/design.py`` — business_domain_model, user_type, user_need, design_spec, adr, nfr, specification, assertion
|
|
14
14
|
- ``wings/delivery.py`` — work_item, change_entry
|
|
15
|
-
- ``wings/
|
|
15
|
+
- ``wings/pipeline.py`` — cicd_stage
|
|
16
16
|
- ``wings/pipeline.py`` — cicd_stage, cicd_job_template, cicd_workflow_template
|
|
17
17
|
- ``wings/agentic.py`` — agent, agent_skill
|
|
18
18
|
"""
|
|
@@ -36,7 +36,6 @@ from katalyst_forge.relationships import ALL_RELATIONSHIP_DEFINITIONS
|
|
|
36
36
|
from katalyst_forge.wings.agentic import AGENTIC_WING, AGENTIC_WING_NODES
|
|
37
37
|
from katalyst_forge.wings.delivery import DELIVERY_WING, DELIVERY_WING_NODES
|
|
38
38
|
from katalyst_forge.wings.design import DESIGN_WING, DESIGN_WING_NODES
|
|
39
|
-
from katalyst_forge.wings.dx import DX_WING, DX_WING_NODES
|
|
40
39
|
from katalyst_forge.wings.org import ORG_WING, ORG_WING_NODES
|
|
41
40
|
from katalyst_forge.wings.pipeline import PIPELINE_WING, PIPELINE_WING_NODES
|
|
42
41
|
from katalyst_forge.wings.practices import PRACTICES_WING, PRACTICES_WING_NODES
|
|
@@ -52,7 +51,6 @@ ALL_NODE_DEFINITIONS: list[NodeDefinition] = [
|
|
|
52
51
|
*PRACTICES_WING_NODES,
|
|
53
52
|
*DESIGN_WING_NODES,
|
|
54
53
|
*DELIVERY_WING_NODES,
|
|
55
|
-
*DX_WING_NODES,
|
|
56
54
|
*PIPELINE_WING_NODES,
|
|
57
55
|
*AGENTIC_WING_NODES,
|
|
58
56
|
]
|
|
@@ -65,7 +63,6 @@ ALL_WING_DEFINITIONS: list[WingDefinition] = [
|
|
|
65
63
|
DESIGN_WING,
|
|
66
64
|
DELIVERY_WING,
|
|
67
65
|
PRACTICES_WING,
|
|
68
|
-
DX_WING,
|
|
69
66
|
PIPELINE_WING,
|
|
70
67
|
AGENTIC_WING,
|
|
71
68
|
]
|
|
@@ -79,7 +76,7 @@ ALL_WING_NAMES: frozenset[str] = frozenset(wd.identity.name for wd in ALL_WING_D
|
|
|
79
76
|
|
|
80
77
|
|
|
81
78
|
class ForgeBundle:
|
|
82
|
-
"""The Forge bundle —
|
|
79
|
+
"""The Forge bundle — 34 node types across 8 wings.
|
|
83
80
|
|
|
84
81
|
This is the pre-installed taxonomy bundle that ships with
|
|
85
82
|
Katalyst Taxonomy. It models software delivery organizations
|
|
@@ -92,10 +89,10 @@ class ForgeBundle:
|
|
|
92
89
|
def manifest(self) -> BundleManifest:
|
|
93
90
|
return BundleManifest(
|
|
94
91
|
identity=Identity(kind="bundle", name="forge"),
|
|
95
|
-
version=Version(major=
|
|
92
|
+
version=Version(major=4, minor=0),
|
|
96
93
|
provided_kinds=ALL_KINDS,
|
|
97
94
|
wing_names=ALL_WING_NAMES,
|
|
98
|
-
description="Forge taxonomy —
|
|
95
|
+
description="Forge taxonomy — 29 node types for modeling software delivery organizations",
|
|
99
96
|
)
|
|
100
97
|
|
|
101
98
|
def node_definitions(self) -> list[NodeDefinition]:
|
|
@@ -112,7 +109,7 @@ class ForgeBundle:
|
|
|
112
109
|
identity=Identity(kind="schema", name="forge"),
|
|
113
110
|
describes_kind="taxonomy",
|
|
114
111
|
api_version="v2alpha",
|
|
115
|
-
schema_version=Version(major=
|
|
112
|
+
schema_version=Version(major=4),
|
|
116
113
|
node_definitions=tuple(nd.identity for nd in ALL_NODE_DEFINITIONS),
|
|
117
114
|
wing_definitions=tuple(wd.identity for wd in ALL_WING_DEFINITIONS),
|
|
118
115
|
)
|
|
@@ -104,6 +104,15 @@ TESTS_CAPABILITY_REL = RelationshipDefinition(
|
|
|
104
104
|
cardinality=Cardinality.MANY_TO_MANY,
|
|
105
105
|
)
|
|
106
106
|
|
|
107
|
+
DESIGNS_CAPABILITY_REL = RelationshipDefinition(
|
|
108
|
+
identity=_rel_id("designs_capability"),
|
|
109
|
+
describes_kind="designs_capability",
|
|
110
|
+
description="Design spec shapes how a capability manifests in the UI",
|
|
111
|
+
wing="capability",
|
|
112
|
+
display_order=145,
|
|
113
|
+
cardinality=Cardinality.MANY_TO_MANY,
|
|
114
|
+
)
|
|
115
|
+
|
|
107
116
|
# ── Organizational wing ──────────────────────────────────────────────
|
|
108
117
|
|
|
109
118
|
FILLED_BY_REL = RelationshipDefinition(
|
|
@@ -171,6 +180,24 @@ CAPTURES_STORY_REL = RelationshipDefinition(
|
|
|
171
180
|
cardinality=Cardinality.MANY_TO_MANY,
|
|
172
181
|
)
|
|
173
182
|
|
|
183
|
+
DESIGNS_FOR_NEED_REL = RelationshipDefinition(
|
|
184
|
+
identity=_rel_id("designs_for_need"),
|
|
185
|
+
describes_kind="designs_for_need",
|
|
186
|
+
description="Design spec addresses user needs visually and interactionally",
|
|
187
|
+
wing="verification",
|
|
188
|
+
display_order=325,
|
|
189
|
+
cardinality=Cardinality.MANY_TO_MANY,
|
|
190
|
+
)
|
|
191
|
+
|
|
192
|
+
IMPLEMENTS_DESIGN_REL = RelationshipDefinition(
|
|
193
|
+
identity=_rel_id("implements_design"),
|
|
194
|
+
describes_kind="implements_design",
|
|
195
|
+
description="Specification formalizes a design spec into executable BDD tests",
|
|
196
|
+
wing="verification",
|
|
197
|
+
display_order=330,
|
|
198
|
+
cardinality=Cardinality.MANY_TO_MANY,
|
|
199
|
+
)
|
|
200
|
+
|
|
174
201
|
# ── Workflow wing ─────────────────────────────────────────────────────
|
|
175
202
|
|
|
176
203
|
BLOCKS_REL = RelationshipDefinition(
|
|
@@ -243,6 +270,7 @@ ALL_RELATIONSHIP_DEFINITIONS: list[RelationshipDefinition] = [
|
|
|
243
270
|
DEPENDS_ON_CAPABILITY_REL,
|
|
244
271
|
SPECIFIES_CAPABILITY_REL,
|
|
245
272
|
TESTS_CAPABILITY_REL,
|
|
273
|
+
DESIGNS_CAPABILITY_REL,
|
|
246
274
|
# organizational
|
|
247
275
|
FILLED_BY_REL,
|
|
248
276
|
DEVELOPS_COMPETENCY_REL,
|
|
@@ -252,6 +280,8 @@ ALL_RELATIONSHIP_DEFINITIONS: list[RelationshipDefinition] = [
|
|
|
252
280
|
VERIFIED_BY_REL,
|
|
253
281
|
TESTS_SPECIFICATION_REL,
|
|
254
282
|
CAPTURES_STORY_REL,
|
|
283
|
+
DESIGNS_FOR_NEED_REL,
|
|
284
|
+
IMPLEMENTS_DESIGN_REL,
|
|
255
285
|
# workflow
|
|
256
286
|
BLOCKS_REL,
|
|
257
287
|
BLOCKED_BY_REL,
|
|
@@ -18,7 +18,6 @@ AGENT: NodeDefinition = NodeDefinition(
|
|
|
18
18
|
is_root=True,
|
|
19
19
|
is_leaf=True,
|
|
20
20
|
is_extension=False,
|
|
21
|
-
scaffoldable=False,
|
|
22
21
|
clonable=False,
|
|
23
22
|
display_label="Agent",
|
|
24
23
|
display_label_plural="Agents",
|
|
@@ -92,7 +91,6 @@ SKILL: NodeDefinition = NodeDefinition(
|
|
|
92
91
|
is_root=True,
|
|
93
92
|
is_leaf=True,
|
|
94
93
|
is_extension=False,
|
|
95
|
-
scaffoldable=False,
|
|
96
94
|
clonable=False,
|
|
97
95
|
display_label="Agent Skill",
|
|
98
96
|
display_label_plural="Agent Skills",
|
|
@@ -20,7 +20,6 @@ WORK_ITEM: NodeDefinition = NodeDefinition(
|
|
|
20
20
|
is_root=True,
|
|
21
21
|
is_leaf=False,
|
|
22
22
|
is_extension=False,
|
|
23
|
-
scaffoldable=False,
|
|
24
23
|
clonable=False,
|
|
25
24
|
display_label="Work Item",
|
|
26
25
|
display_label_plural="Work Items",
|
|
@@ -99,7 +98,6 @@ CHANGE_ENTRY: NodeDefinition = NodeDefinition(
|
|
|
99
98
|
is_root=False,
|
|
100
99
|
is_leaf=True,
|
|
101
100
|
is_extension=False,
|
|
102
|
-
scaffoldable=False,
|
|
103
101
|
clonable=False,
|
|
104
102
|
display_label="Change Entry",
|
|
105
103
|
display_label_plural="Change Entries",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"""Design wing — business_domain_model, user_type, user_need, adr, nfr, specification, assertion."""
|
|
1
|
+
"""Design wing — business_domain_model, user_type, user_need, design_spec, adr, nfr, specification, assertion."""
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
@@ -20,7 +20,6 @@ BUSINESS_DOMAIN_MODEL: NodeDefinition = NodeDefinition(
|
|
|
20
20
|
is_root=True,
|
|
21
21
|
is_leaf=True,
|
|
22
22
|
is_extension=False,
|
|
23
|
-
scaffoldable=False,
|
|
24
23
|
clonable=False,
|
|
25
24
|
display_label="Business Domain Model",
|
|
26
25
|
display_label_plural="Business Domain Models",
|
|
@@ -70,7 +69,6 @@ USER_TYPE: NodeDefinition = NodeDefinition(
|
|
|
70
69
|
is_root=True,
|
|
71
70
|
is_leaf=False,
|
|
72
71
|
is_extension=False,
|
|
73
|
-
scaffoldable=False,
|
|
74
72
|
clonable=False,
|
|
75
73
|
display_label="User Type",
|
|
76
74
|
display_label_plural="User Types",
|
|
@@ -132,7 +130,6 @@ USER_NEED: NodeDefinition = NodeDefinition(
|
|
|
132
130
|
is_root=False,
|
|
133
131
|
is_leaf=True,
|
|
134
132
|
is_extension=False,
|
|
135
|
-
scaffoldable=False,
|
|
136
133
|
clonable=False,
|
|
137
134
|
display_label="User Need",
|
|
138
135
|
display_label_plural="User Needs",
|
|
@@ -203,6 +200,102 @@ USER_NEED: NodeDefinition = NodeDefinition(
|
|
|
203
200
|
),
|
|
204
201
|
)
|
|
205
202
|
|
|
203
|
+
DESIGN_SPEC: NodeDefinition = NodeDefinition(
|
|
204
|
+
identity=Identity(kind="node_definition", name="design_spec"),
|
|
205
|
+
describes_kind="design_spec",
|
|
206
|
+
wing="design",
|
|
207
|
+
display_order=365,
|
|
208
|
+
directory_name="design_specs",
|
|
209
|
+
is_root=True,
|
|
210
|
+
is_leaf=False,
|
|
211
|
+
is_extension=False,
|
|
212
|
+
clonable=False,
|
|
213
|
+
display_label="Design Spec",
|
|
214
|
+
display_label_plural="Design Specs",
|
|
215
|
+
extends_kinds=(),
|
|
216
|
+
parent_rules=(),
|
|
217
|
+
fields=(
|
|
218
|
+
FieldSpec(
|
|
219
|
+
name="title",
|
|
220
|
+
field_type="string",
|
|
221
|
+
required=False,
|
|
222
|
+
description="Human-readable name",
|
|
223
|
+
),
|
|
224
|
+
FieldSpec(
|
|
225
|
+
name="layout_type",
|
|
226
|
+
field_type="string",
|
|
227
|
+
required=False,
|
|
228
|
+
description="High-level layout pattern (dashboard, wizard, form, list, detail, modal)",
|
|
229
|
+
),
|
|
230
|
+
FieldSpec(
|
|
231
|
+
name="components",
|
|
232
|
+
field_type="list",
|
|
233
|
+
required=False,
|
|
234
|
+
description="Key UI components involved",
|
|
235
|
+
),
|
|
236
|
+
FieldSpec(
|
|
237
|
+
name="states",
|
|
238
|
+
field_type="list",
|
|
239
|
+
required=False,
|
|
240
|
+
description="View/interaction states (loading, empty, error, populated)",
|
|
241
|
+
),
|
|
242
|
+
FieldSpec(
|
|
243
|
+
name="flows",
|
|
244
|
+
field_type="list",
|
|
245
|
+
required=False,
|
|
246
|
+
description="Interaction sequences and state transitions",
|
|
247
|
+
),
|
|
248
|
+
FieldSpec(
|
|
249
|
+
name="constraints",
|
|
250
|
+
field_type="list",
|
|
251
|
+
required=False,
|
|
252
|
+
description="Testable design constraints (responsive, a11y, max items, keyboard nav)",
|
|
253
|
+
),
|
|
254
|
+
FieldSpec(
|
|
255
|
+
name="stories",
|
|
256
|
+
field_type="list",
|
|
257
|
+
required=False,
|
|
258
|
+
description="Referenced user stories this design addresses",
|
|
259
|
+
),
|
|
260
|
+
FieldSpec(
|
|
261
|
+
name="capabilities",
|
|
262
|
+
field_type="list",
|
|
263
|
+
required=False,
|
|
264
|
+
description="Referenced capabilities this design shapes",
|
|
265
|
+
),
|
|
266
|
+
FieldSpec(
|
|
267
|
+
name="design_file",
|
|
268
|
+
field_type="string",
|
|
269
|
+
required=False,
|
|
270
|
+
description="Path to external design document",
|
|
271
|
+
),
|
|
272
|
+
FieldSpec(
|
|
273
|
+
name="notes",
|
|
274
|
+
field_type="string",
|
|
275
|
+
required=False,
|
|
276
|
+
description="Freeform context or rationale summary",
|
|
277
|
+
),
|
|
278
|
+
FieldSpec(
|
|
279
|
+
name="status",
|
|
280
|
+
field_type="string",
|
|
281
|
+
required=False,
|
|
282
|
+
description="Lifecycle status",
|
|
283
|
+
),
|
|
284
|
+
),
|
|
285
|
+
cross_references=(
|
|
286
|
+
FieldRef(
|
|
287
|
+
field_name="user_needs",
|
|
288
|
+
target_kind="user_need",
|
|
289
|
+
rel_type="DESIGNS_FOR_NEED",
|
|
290
|
+
),
|
|
291
|
+
FieldRef(
|
|
292
|
+
field_name="capabilities",
|
|
293
|
+
target_kind="capability",
|
|
294
|
+
rel_type="DESIGNS_CAPABILITY",
|
|
295
|
+
),
|
|
296
|
+
),
|
|
297
|
+
)
|
|
298
|
+
|
|
206
299
|
ADR: NodeDefinition = NodeDefinition(
|
|
207
300
|
identity=Identity(kind="node_definition", name="adr"),
|
|
208
301
|
describes_kind="adr",
|
|
@@ -212,7 +305,6 @@ ADR: NodeDefinition = NodeDefinition(
|
|
|
212
305
|
is_root=True,
|
|
213
306
|
is_leaf=True,
|
|
214
307
|
is_extension=False,
|
|
215
|
-
scaffoldable=False,
|
|
216
308
|
clonable=False,
|
|
217
309
|
display_label="ADR",
|
|
218
310
|
display_label_plural="ADRs",
|
|
@@ -268,7 +360,6 @@ NFR: NodeDefinition = NodeDefinition(
|
|
|
268
360
|
is_root=True,
|
|
269
361
|
is_leaf=True,
|
|
270
362
|
is_extension=False,
|
|
271
|
-
scaffoldable=False,
|
|
272
363
|
clonable=False,
|
|
273
364
|
display_label="NFR",
|
|
274
365
|
display_label_plural="NFRs",
|
|
@@ -324,7 +415,6 @@ SPECIFICATION: NodeDefinition = NodeDefinition(
|
|
|
324
415
|
is_root=True,
|
|
325
416
|
is_leaf=False,
|
|
326
417
|
is_extension=False,
|
|
327
|
-
scaffoldable=False,
|
|
328
418
|
clonable=False,
|
|
329
419
|
display_label="Specification",
|
|
330
420
|
display_label_plural="Specifications",
|
|
@@ -355,6 +445,12 @@ SPECIFICATION: NodeDefinition = NodeDefinition(
|
|
|
355
445
|
required=False,
|
|
356
446
|
description="",
|
|
357
447
|
),
|
|
448
|
+
FieldSpec(
|
|
449
|
+
name="design_specs",
|
|
450
|
+
field_type="list",
|
|
451
|
+
required=False,
|
|
452
|
+
description="Referenced design specs this specification formalizes",
|
|
453
|
+
),
|
|
358
454
|
FieldSpec(
|
|
359
455
|
name="status",
|
|
360
456
|
field_type="string",
|
|
@@ -378,6 +474,11 @@ SPECIFICATION: NodeDefinition = NodeDefinition(
|
|
|
378
474
|
target_kind="user_need",
|
|
379
475
|
rel_type="CAPTURES_STORY",
|
|
380
476
|
),
|
|
477
|
+
FieldRef(
|
|
478
|
+
field_name="design_specs",
|
|
479
|
+
target_kind="design_spec",
|
|
480
|
+
rel_type="IMPLEMENTS_DESIGN",
|
|
481
|
+
),
|
|
381
482
|
),
|
|
382
483
|
)
|
|
383
484
|
|
|
@@ -390,7 +491,6 @@ ASSERTION: NodeDefinition = NodeDefinition(
|
|
|
390
491
|
is_root=False,
|
|
391
492
|
is_leaf=True,
|
|
392
493
|
is_extension=False,
|
|
393
|
-
scaffoldable=False,
|
|
394
494
|
clonable=False,
|
|
395
495
|
display_label="Assertion",
|
|
396
496
|
display_label_plural="Assertions",
|
|
@@ -444,6 +544,7 @@ DESIGN_WING: WingDefinition = WingDefinition(
|
|
|
444
544
|
"business_domain_model",
|
|
445
545
|
"user_type",
|
|
446
546
|
"user_need",
|
|
547
|
+
"design_spec",
|
|
447
548
|
"adr",
|
|
448
549
|
"nfr",
|
|
449
550
|
"specification",
|
|
@@ -455,6 +556,7 @@ DESIGN_WING_NODES = [
|
|
|
455
556
|
BUSINESS_DOMAIN_MODEL,
|
|
456
557
|
USER_TYPE,
|
|
457
558
|
USER_NEED,
|
|
559
|
+
DESIGN_SPEC,
|
|
458
560
|
ADR,
|
|
459
561
|
NFR,
|
|
460
562
|
SPECIFICATION,
|
|
@@ -20,7 +20,6 @@ ORGANIZATION: NodeDefinition = NodeDefinition(
|
|
|
20
20
|
is_root=True,
|
|
21
21
|
is_leaf=False,
|
|
22
22
|
is_extension=False,
|
|
23
|
-
scaffoldable=False,
|
|
24
23
|
clonable=False,
|
|
25
24
|
display_label="Organization",
|
|
26
25
|
display_label_plural="Organizations",
|
|
@@ -39,7 +38,6 @@ PROGRAM: NodeDefinition = NodeDefinition(
|
|
|
39
38
|
is_root=False,
|
|
40
39
|
is_leaf=False,
|
|
41
40
|
is_extension=False,
|
|
42
|
-
scaffoldable=False,
|
|
43
41
|
clonable=True,
|
|
44
42
|
display_label="Program",
|
|
45
43
|
display_label_plural="Programs",
|
|
@@ -64,7 +62,6 @@ PROJECT: NodeDefinition = NodeDefinition(
|
|
|
64
62
|
is_root=False,
|
|
65
63
|
is_leaf=True,
|
|
66
64
|
is_extension=False,
|
|
67
|
-
scaffoldable=False,
|
|
68
65
|
clonable=True,
|
|
69
66
|
display_label="Project",
|
|
70
67
|
display_label_plural="Projects",
|
|
@@ -89,7 +86,6 @@ TEAM: NodeDefinition = NodeDefinition(
|
|
|
89
86
|
is_root=False,
|
|
90
87
|
is_leaf=False,
|
|
91
88
|
is_extension=False,
|
|
92
|
-
scaffoldable=False,
|
|
93
89
|
clonable=True,
|
|
94
90
|
display_label="Team",
|
|
95
91
|
display_label_plural="Teams",
|
|
@@ -121,7 +117,6 @@ TEAM_MEMBER: NodeDefinition = NodeDefinition(
|
|
|
121
117
|
is_root=False,
|
|
122
118
|
is_leaf=True,
|
|
123
119
|
is_extension=False,
|
|
124
|
-
scaffoldable=False,
|
|
125
120
|
clonable=False,
|
|
126
121
|
display_label="Team Member",
|
|
127
122
|
display_label_plural="Team Members",
|
|
@@ -159,7 +154,6 @@ ROLE: NodeDefinition = NodeDefinition(
|
|
|
159
154
|
is_root=True,
|
|
160
155
|
is_leaf=True,
|
|
161
156
|
is_extension=False,
|
|
162
|
-
scaffoldable=False,
|
|
163
157
|
clonable=False,
|
|
164
158
|
display_label="Role",
|
|
165
159
|
display_label_plural="Roles",
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"""Pipeline wing — cicd_stage (CI/CD job/workflow templates relocated to the cicd plugin, #79)."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from katalyst_engine.core.identity import Identity
|
|
6
|
+
from katalyst_engine.schema.definition import (
|
|
7
|
+
FieldRef,
|
|
8
|
+
FieldSpec,
|
|
9
|
+
NodeDefinition,
|
|
10
|
+
WingDefinition,
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
CICD_STAGE: NodeDefinition = NodeDefinition(
|
|
14
|
+
identity=Identity(kind="node_definition", name="cicd_stage"),
|
|
15
|
+
describes_kind="cicd_stage",
|
|
16
|
+
wing="pipeline",
|
|
17
|
+
display_order=600,
|
|
18
|
+
directory_name="cicd_stages",
|
|
19
|
+
is_root=True,
|
|
20
|
+
is_leaf=False,
|
|
21
|
+
is_extension=False,
|
|
22
|
+
clonable=False,
|
|
23
|
+
display_label="CI/CD Stage",
|
|
24
|
+
display_label_plural="CI/CD Stages",
|
|
25
|
+
extends_kinds=(),
|
|
26
|
+
parent_rules=(),
|
|
27
|
+
fields=(
|
|
28
|
+
FieldSpec(
|
|
29
|
+
name="stage_depends_on",
|
|
30
|
+
field_type="list",
|
|
31
|
+
required=False,
|
|
32
|
+
description="Names of stages that must complete before this one",
|
|
33
|
+
),
|
|
34
|
+
),
|
|
35
|
+
cross_references=(
|
|
36
|
+
FieldRef(
|
|
37
|
+
field_name="stage_depends_on",
|
|
38
|
+
target_kind="cicd_stage",
|
|
39
|
+
rel_type="STAGE_DEPENDS_ON",
|
|
40
|
+
),
|
|
41
|
+
),
|
|
42
|
+
)
|
|
43
|
+
|
|
44
|
+
PIPELINE_WING: WingDefinition = WingDefinition(
|
|
45
|
+
identity=Identity(kind="wing_definition", name="pipeline"),
|
|
46
|
+
describes_kind="pipeline",
|
|
47
|
+
display_name="Pipeline",
|
|
48
|
+
member_kinds=("cicd_stage",),
|
|
49
|
+
)
|
|
50
|
+
|
|
51
|
+
PIPELINE_WING_NODES = [CICD_STAGE]
|
|
@@ -20,7 +20,6 @@ PRACTICE_AREA: NodeDefinition = NodeDefinition(
|
|
|
20
20
|
is_root=True,
|
|
21
21
|
is_leaf=False,
|
|
22
22
|
is_extension=False,
|
|
23
|
-
scaffoldable=False,
|
|
24
23
|
clonable=True,
|
|
25
24
|
display_label="Practice Area",
|
|
26
25
|
display_label_plural="Practice Areas",
|
|
@@ -81,7 +80,6 @@ COMPETENCY: NodeDefinition = NodeDefinition(
|
|
|
81
80
|
is_root=False,
|
|
82
81
|
is_leaf=False,
|
|
83
82
|
is_extension=False,
|
|
84
|
-
scaffoldable=False,
|
|
85
83
|
clonable=False,
|
|
86
84
|
display_label="Competency",
|
|
87
85
|
display_label_plural="Competencies",
|
|
@@ -137,7 +135,6 @@ SKILL: NodeDefinition = NodeDefinition(
|
|
|
137
135
|
is_root=False,
|
|
138
136
|
is_leaf=True,
|
|
139
137
|
is_extension=False,
|
|
140
|
-
scaffoldable=False,
|
|
141
138
|
clonable=False,
|
|
142
139
|
display_label="Skill",
|
|
143
140
|
display_label_plural="Skills",
|
|
@@ -175,7 +172,6 @@ TOOL: NodeDefinition = NodeDefinition(
|
|
|
175
172
|
is_root=True,
|
|
176
173
|
is_leaf=True,
|
|
177
174
|
is_extension=False,
|
|
178
|
-
scaffoldable=False,
|
|
179
175
|
clonable=False,
|
|
180
176
|
display_label="Tool",
|
|
181
177
|
display_label_plural="Tools",
|
|
@@ -20,7 +20,6 @@ SYSTEM: NodeDefinition = NodeDefinition(
|
|
|
20
20
|
is_root=True,
|
|
21
21
|
is_leaf=False,
|
|
22
22
|
is_extension=False,
|
|
23
|
-
scaffoldable=False,
|
|
24
23
|
clonable=False,
|
|
25
24
|
display_label="System",
|
|
26
25
|
display_label_plural="Systems",
|
|
@@ -58,7 +57,6 @@ ENVIRONMENT: NodeDefinition = NodeDefinition(
|
|
|
58
57
|
is_root=True,
|
|
59
58
|
is_leaf=True,
|
|
60
59
|
is_extension=False,
|
|
61
|
-
scaffoldable=False,
|
|
62
60
|
clonable=False,
|
|
63
61
|
display_label="Environment",
|
|
64
62
|
display_label_plural="Environments",
|
|
@@ -90,7 +88,6 @@ STACK: NodeDefinition = NodeDefinition(
|
|
|
90
88
|
is_root=False,
|
|
91
89
|
is_leaf=False,
|
|
92
90
|
is_extension=False,
|
|
93
|
-
scaffoldable=False,
|
|
94
91
|
clonable=True,
|
|
95
92
|
display_label="Stack",
|
|
96
93
|
display_label_plural="Stacks",
|
|
@@ -128,7 +125,6 @@ LAYER: NodeDefinition = NodeDefinition(
|
|
|
128
125
|
is_root=False,
|
|
129
126
|
is_leaf=True,
|
|
130
127
|
is_extension=False,
|
|
131
|
-
scaffoldable=True,
|
|
132
128
|
clonable=True,
|
|
133
129
|
display_label="Layer",
|
|
134
130
|
display_label_plural="Layers",
|
|
@@ -172,7 +168,6 @@ LIBRARY: NodeDefinition = NodeDefinition(
|
|
|
172
168
|
is_root=False,
|
|
173
169
|
is_leaf=False,
|
|
174
170
|
is_extension=False,
|
|
175
|
-
scaffoldable=False,
|
|
176
171
|
clonable=True,
|
|
177
172
|
display_label="Library",
|
|
178
173
|
display_label_plural="Libraries",
|
|
@@ -209,7 +204,6 @@ CAPABILITY: NodeDefinition = NodeDefinition(
|
|
|
209
204
|
is_root=True,
|
|
210
205
|
is_leaf=False,
|
|
211
206
|
is_extension=False,
|
|
212
|
-
scaffoldable=False,
|
|
213
207
|
clonable=False,
|
|
214
208
|
display_label="Capability",
|
|
215
209
|
display_label_plural="Capabilities",
|
|
@@ -1,157 +0,0 @@
|
|
|
1
|
-
"""DX wing — template, action, template_overlay."""
|
|
2
|
-
|
|
3
|
-
from __future__ import annotations
|
|
4
|
-
|
|
5
|
-
from katalyst_engine.core.identity import Identity
|
|
6
|
-
from katalyst_engine.schema.definition import (
|
|
7
|
-
FieldSpec,
|
|
8
|
-
NodeDefinition,
|
|
9
|
-
WingDefinition,
|
|
10
|
-
)
|
|
11
|
-
|
|
12
|
-
TEMPLATE: NodeDefinition = NodeDefinition(
|
|
13
|
-
identity=Identity(kind="node_definition", name="template"),
|
|
14
|
-
describes_kind="template",
|
|
15
|
-
wing="dx",
|
|
16
|
-
display_order=500,
|
|
17
|
-
directory_name="templates",
|
|
18
|
-
is_root=False,
|
|
19
|
-
is_leaf=False,
|
|
20
|
-
is_extension=True,
|
|
21
|
-
scaffoldable=False,
|
|
22
|
-
clonable=False,
|
|
23
|
-
display_label="Template",
|
|
24
|
-
display_label_plural="Templates",
|
|
25
|
-
extends_kinds=("layer", "stack", "system"),
|
|
26
|
-
parent_rules=(),
|
|
27
|
-
fields=(
|
|
28
|
-
FieldSpec(
|
|
29
|
-
name="scope",
|
|
30
|
-
field_type="string",
|
|
31
|
-
required=False,
|
|
32
|
-
description="",
|
|
33
|
-
),
|
|
34
|
-
FieldSpec(
|
|
35
|
-
name="template_path",
|
|
36
|
-
field_type="string",
|
|
37
|
-
required=False,
|
|
38
|
-
description="",
|
|
39
|
-
),
|
|
40
|
-
FieldSpec(
|
|
41
|
-
name="default_layer_dir",
|
|
42
|
-
field_type="string",
|
|
43
|
-
required=False,
|
|
44
|
-
description="Default directory name for layers of this type",
|
|
45
|
-
),
|
|
46
|
-
FieldSpec(
|
|
47
|
-
name="optional_paths",
|
|
48
|
-
field_type="list",
|
|
49
|
-
required=False,
|
|
50
|
-
description="Optional files/dirs in the template",
|
|
51
|
-
),
|
|
52
|
-
FieldSpec(
|
|
53
|
-
name="global_template_path",
|
|
54
|
-
field_type="string",
|
|
55
|
-
required=False,
|
|
56
|
-
description="Path to global template directory",
|
|
57
|
-
),
|
|
58
|
-
),
|
|
59
|
-
cross_references=(),
|
|
60
|
-
)
|
|
61
|
-
|
|
62
|
-
ACTION: NodeDefinition = NodeDefinition(
|
|
63
|
-
identity=Identity(kind="node_definition", name="action"),
|
|
64
|
-
describes_kind="action",
|
|
65
|
-
wing="dx",
|
|
66
|
-
display_order=510,
|
|
67
|
-
directory_name="actions",
|
|
68
|
-
is_root=False,
|
|
69
|
-
is_leaf=False,
|
|
70
|
-
is_extension=True,
|
|
71
|
-
scaffoldable=False,
|
|
72
|
-
clonable=False,
|
|
73
|
-
display_label="Action",
|
|
74
|
-
display_label_plural="Actions",
|
|
75
|
-
extends_kinds=("template",),
|
|
76
|
-
parent_rules=(),
|
|
77
|
-
fields=(
|
|
78
|
-
FieldSpec(
|
|
79
|
-
name="action_type",
|
|
80
|
-
field_type="string",
|
|
81
|
-
required=False,
|
|
82
|
-
description="How the action is executed",
|
|
83
|
-
),
|
|
84
|
-
FieldSpec(
|
|
85
|
-
name="when",
|
|
86
|
-
field_type="string",
|
|
87
|
-
required=False,
|
|
88
|
-
description="Condition for when to run",
|
|
89
|
-
),
|
|
90
|
-
FieldSpec(
|
|
91
|
-
name="run",
|
|
92
|
-
field_type="string",
|
|
93
|
-
required=False,
|
|
94
|
-
description="Command or URL to execute",
|
|
95
|
-
),
|
|
96
|
-
FieldSpec(
|
|
97
|
-
name="timeout_seconds",
|
|
98
|
-
field_type="integer",
|
|
99
|
-
required=False,
|
|
100
|
-
description="Execution timeout",
|
|
101
|
-
),
|
|
102
|
-
FieldSpec(
|
|
103
|
-
name="action_environment",
|
|
104
|
-
field_type="list",
|
|
105
|
-
required=False,
|
|
106
|
-
description="Environment variables",
|
|
107
|
-
),
|
|
108
|
-
FieldSpec(
|
|
109
|
-
name="action_tags",
|
|
110
|
-
field_type="list",
|
|
111
|
-
required=False,
|
|
112
|
-
description="",
|
|
113
|
-
),
|
|
114
|
-
),
|
|
115
|
-
cross_references=(),
|
|
116
|
-
)
|
|
117
|
-
|
|
118
|
-
TEMPLATE_OVERLAY: NodeDefinition = NodeDefinition(
|
|
119
|
-
identity=Identity(kind="node_definition", name="template_overlay"),
|
|
120
|
-
describes_kind="template_overlay",
|
|
121
|
-
wing="dx",
|
|
122
|
-
display_order=550,
|
|
123
|
-
directory_name="template_overlays",
|
|
124
|
-
is_root=False,
|
|
125
|
-
is_leaf=False,
|
|
126
|
-
is_extension=True,
|
|
127
|
-
scaffoldable=False,
|
|
128
|
-
clonable=False,
|
|
129
|
-
display_label="Template Overlay",
|
|
130
|
-
display_label_plural="Template Overlays",
|
|
131
|
-
extends_kinds=("template", "action"),
|
|
132
|
-
parent_rules=(),
|
|
133
|
-
fields=(
|
|
134
|
-
FieldSpec(
|
|
135
|
-
name="provides_template",
|
|
136
|
-
field_type="string",
|
|
137
|
-
required=False,
|
|
138
|
-
description="Path to template directory to overlay",
|
|
139
|
-
),
|
|
140
|
-
FieldSpec(
|
|
141
|
-
name="provides_files",
|
|
142
|
-
field_type="list",
|
|
143
|
-
required=False,
|
|
144
|
-
description="Explicit file mappings (source:destination)",
|
|
145
|
-
),
|
|
146
|
-
),
|
|
147
|
-
cross_references=(),
|
|
148
|
-
)
|
|
149
|
-
|
|
150
|
-
DX_WING: WingDefinition = WingDefinition(
|
|
151
|
-
identity=Identity(kind="wing_definition", name="dx"),
|
|
152
|
-
describes_kind="dx",
|
|
153
|
-
display_name="DX",
|
|
154
|
-
member_kinds=("template", "action", "template_overlay"),
|
|
155
|
-
)
|
|
156
|
-
|
|
157
|
-
DX_WING_NODES = [TEMPLATE, ACTION, TEMPLATE_OVERLAY]
|
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
"""Pipeline wing — cicd_stage, cicd_job_template, cicd_workflow_template."""
|
|
2
|
-
|
|
3
|
-
from __future__ import annotations
|
|
4
|
-
|
|
5
|
-
from katalyst_engine.core.identity import Identity
|
|
6
|
-
from katalyst_engine.schema.definition import (
|
|
7
|
-
FieldRef,
|
|
8
|
-
FieldSpec,
|
|
9
|
-
NodeDefinition,
|
|
10
|
-
WingDefinition,
|
|
11
|
-
)
|
|
12
|
-
|
|
13
|
-
CICD_STAGE: NodeDefinition = NodeDefinition(
|
|
14
|
-
identity=Identity(kind="node_definition", name="cicd_stage"),
|
|
15
|
-
describes_kind="cicd_stage",
|
|
16
|
-
wing="pipeline",
|
|
17
|
-
display_order=600,
|
|
18
|
-
directory_name="cicd_stages",
|
|
19
|
-
is_root=True,
|
|
20
|
-
is_leaf=False,
|
|
21
|
-
is_extension=False,
|
|
22
|
-
scaffoldable=False,
|
|
23
|
-
clonable=False,
|
|
24
|
-
display_label="CI/CD Stage",
|
|
25
|
-
display_label_plural="CI/CD Stages",
|
|
26
|
-
extends_kinds=(),
|
|
27
|
-
parent_rules=(),
|
|
28
|
-
fields=(
|
|
29
|
-
FieldSpec(
|
|
30
|
-
name="stage_depends_on",
|
|
31
|
-
field_type="list",
|
|
32
|
-
required=False,
|
|
33
|
-
description="Names of stages that must complete before this one",
|
|
34
|
-
),
|
|
35
|
-
),
|
|
36
|
-
cross_references=(
|
|
37
|
-
FieldRef(
|
|
38
|
-
field_name="stage_depends_on",
|
|
39
|
-
target_kind="cicd_stage",
|
|
40
|
-
rel_type="STAGE_DEPENDS_ON",
|
|
41
|
-
),
|
|
42
|
-
),
|
|
43
|
-
)
|
|
44
|
-
|
|
45
|
-
CICD_JOB_TEMPLATE: NodeDefinition = NodeDefinition(
|
|
46
|
-
identity=Identity(kind="node_definition", name="cicd_job_template"),
|
|
47
|
-
describes_kind="cicd_job_template",
|
|
48
|
-
wing="pipeline",
|
|
49
|
-
display_order=525,
|
|
50
|
-
directory_name="cicd_jobs",
|
|
51
|
-
is_root=False,
|
|
52
|
-
is_leaf=False,
|
|
53
|
-
is_extension=True,
|
|
54
|
-
scaffoldable=False,
|
|
55
|
-
clonable=False,
|
|
56
|
-
display_label="CI/CD Job Template",
|
|
57
|
-
display_label_plural="CI/CD Job Templates",
|
|
58
|
-
extends_kinds=("template",),
|
|
59
|
-
parent_rules=(),
|
|
60
|
-
fields=(
|
|
61
|
-
FieldSpec(
|
|
62
|
-
name="stage",
|
|
63
|
-
field_type="string",
|
|
64
|
-
required=True,
|
|
65
|
-
description="Pipeline stage (ci, cd, post)",
|
|
66
|
-
),
|
|
67
|
-
FieldSpec(
|
|
68
|
-
name="template_path",
|
|
69
|
-
field_type="string",
|
|
70
|
-
required=False,
|
|
71
|
-
description="",
|
|
72
|
-
),
|
|
73
|
-
FieldSpec(
|
|
74
|
-
name="renderer_type",
|
|
75
|
-
field_type="string",
|
|
76
|
-
required=False,
|
|
77
|
-
description="",
|
|
78
|
-
),
|
|
79
|
-
FieldSpec(
|
|
80
|
-
name="inputs_required",
|
|
81
|
-
field_type="list",
|
|
82
|
-
required=False,
|
|
83
|
-
description="Required input parameters",
|
|
84
|
-
),
|
|
85
|
-
),
|
|
86
|
-
cross_references=(
|
|
87
|
-
FieldRef(
|
|
88
|
-
field_name="stage",
|
|
89
|
-
target_kind="cicd_stage",
|
|
90
|
-
rel_type="BELONGS_TO_STAGE",
|
|
91
|
-
),
|
|
92
|
-
),
|
|
93
|
-
)
|
|
94
|
-
|
|
95
|
-
CICD_WORKFLOW_TEMPLATE: NodeDefinition = NodeDefinition(
|
|
96
|
-
identity=Identity(kind="node_definition", name="cicd_workflow_template"),
|
|
97
|
-
describes_kind="cicd_workflow_template",
|
|
98
|
-
wing="pipeline",
|
|
99
|
-
display_order=530,
|
|
100
|
-
directory_name="cicd_workflows",
|
|
101
|
-
is_root=False,
|
|
102
|
-
is_leaf=False,
|
|
103
|
-
is_extension=True,
|
|
104
|
-
scaffoldable=False,
|
|
105
|
-
clonable=False,
|
|
106
|
-
display_label="CI/CD Workflow Template",
|
|
107
|
-
display_label_plural="CI/CD Workflow Templates",
|
|
108
|
-
extends_kinds=("cicd_stage",),
|
|
109
|
-
parent_rules=(),
|
|
110
|
-
fields=(
|
|
111
|
-
FieldSpec(
|
|
112
|
-
name="template_path",
|
|
113
|
-
field_type="string",
|
|
114
|
-
required=False,
|
|
115
|
-
description="Path to the workflow template file",
|
|
116
|
-
),
|
|
117
|
-
FieldSpec(
|
|
118
|
-
name="renderer_type",
|
|
119
|
-
field_type="string",
|
|
120
|
-
required=False,
|
|
121
|
-
description="",
|
|
122
|
-
),
|
|
123
|
-
),
|
|
124
|
-
cross_references=(),
|
|
125
|
-
)
|
|
126
|
-
|
|
127
|
-
PIPELINE_WING: WingDefinition = WingDefinition(
|
|
128
|
-
identity=Identity(kind="wing_definition", name="pipeline"),
|
|
129
|
-
describes_kind="pipeline",
|
|
130
|
-
display_name="Pipeline",
|
|
131
|
-
member_kinds=("cicd_stage", "cicd_job_template", "cicd_workflow_template"),
|
|
132
|
-
)
|
|
133
|
-
|
|
134
|
-
PIPELINE_WING_NODES = [CICD_STAGE, CICD_JOB_TEMPLATE, CICD_WORKFLOW_TEMPLATE]
|
|
File without changes
|
|
File without changes
|
{katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/templates/creation/_base.yaml.j2
RENAMED
|
File without changes
|
{katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/templates/creation/layer.yaml.j2
RENAMED
|
File without changes
|
{katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/templates/creation/project.yaml.j2
RENAMED
|
File without changes
|
{katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/templates/creation/stack.yaml.j2
RENAMED
|
File without changes
|
{katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/templates/creation/system.yaml.j2
RENAMED
|
File without changes
|
{katalyst_forge-3.0.1 → katalyst_forge-4.0.0}/src/katalyst_forge/templates/creation/team.yaml.j2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|