@fluentcommerce/ai-skills 0.1.0 → 0.3.0
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.
Potentially problematic release.
This version of @fluentcommerce/ai-skills might be problematic. Click here for more details.
- package/README.md +866 -622
- package/bin/cli.mjs +2112 -1973
- package/content/cli/agents/fluent-cli/agent.json +149 -149
- package/content/cli/agents/fluent-cli.md +132 -132
- package/content/cli/skills/fluent-bootstrap/SKILL.md +214 -181
- package/content/cli/skills/fluent-cli-index/SKILL.md +1 -1
- package/content/cli/skills/fluent-cli-mcp-cicd/SKILL.md +117 -1
- package/content/cli/skills/fluent-cli-reference/SKILL.md +1040 -1031
- package/content/cli/skills/fluent-cli-retailer/SKILL.md +27 -2
- package/content/cli/skills/fluent-cli-settings/SKILL.md +21 -1
- package/content/cli/skills/fluent-connect/SKILL.md +937 -886
- package/content/cli/skills/fluent-module-deploy/SKILL.md +63 -5
- package/content/cli/skills/fluent-profile/SKILL.md +73 -0
- package/content/cli/skills/fluent-workflow/SKILL.md +360 -310
- package/content/dev/agents/fluent-backend-dev/AGENT.md +58 -0
- package/content/dev/agents/fluent-backend-dev/agent.json +69 -0
- package/content/dev/agents/fluent-backend-dev.md +287 -0
- package/content/dev/agents/fluent-dev/AGENT.md +98 -0
- package/content/dev/agents/fluent-dev/agent.json +14 -2
- package/content/dev/agents/fluent-dev.md +194 -525
- package/content/dev/agents/fluent-frontend-dev/AGENT.md +63 -0
- package/content/dev/agents/fluent-frontend-dev/agent.json +52 -0
- package/content/dev/agents/fluent-frontend-dev.md +323 -0
- package/content/dev/skills/fluent-archive/SKILL.md +234 -0
- package/content/dev/skills/fluent-build/SKILL.md +312 -192
- package/content/dev/skills/fluent-connection-analysis/SKILL.md +422 -386
- package/content/dev/skills/fluent-custom-code/SKILL.md +15 -9
- package/content/dev/skills/fluent-data-module-scaffold/SKILL.md +19 -2
- package/content/dev/skills/fluent-e2e-test/SKILL.md +501 -394
- package/content/dev/skills/fluent-event-api/SKILL.md +962 -945
- package/content/dev/skills/fluent-feature-explain/SKILL.md +680 -603
- package/content/dev/skills/fluent-feature-plan/PLAN_TEMPLATE.md +27 -2
- package/content/dev/skills/fluent-feature-plan/SKILL.md +478 -227
- package/content/dev/skills/fluent-feature-status/SKILL.md +335 -0
- package/content/dev/skills/fluent-feedback/SKILL.md +221 -0
- package/content/dev/skills/fluent-implementation-map/SKILL.md +644 -0
- package/content/dev/skills/fluent-job-batch/SKILL.md +10 -0
- package/content/dev/skills/fluent-module-scaffold/SKILL.md +64 -2
- package/content/dev/skills/fluent-module-validate/SKILL.md +778 -775
- package/content/dev/skills/fluent-mystique-analyze/SKILL.md +817 -0
- package/content/dev/skills/fluent-mystique-builder/COMPONENT_TEMPLATE.md +81 -0
- package/content/dev/skills/fluent-mystique-builder/README.md +63 -0
- package/content/dev/skills/fluent-mystique-builder/SKILL.md +1294 -0
- package/content/dev/skills/fluent-mystique-builder/components/INDEX.md +92 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.accordion.md +48 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.action.field.fulfilmentpack.md +20 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.action.field.multiparcel.md +21 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.action.field.returnitems.md +21 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.action.field.wavepick.md +21 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.action.inline.md +24 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.activity.entity.md +25 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.analytics.viz.md +20 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.attribute.column.md +111 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.attribute.json.md +20 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.attribute.jsoneditor.md +54 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.attribute.locationId.md +51 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.attribute.retailerId.md +52 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.button.bar.md +57 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.button.print.download.md +53 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.button.print.inline.compatibility.md +60 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.button.print.inline.md +53 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.button.print.md +24 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.button.print.pick.md +61 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.buttons.add.reject.md +20 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.card.attribute.md +73 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.card.attributes.grid.md +40 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.card.image.md +37 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.card.map.point.md +24 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.card.multi.md +79 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.card.product.md +27 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.chart.area.md +34 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.chart.area.wrapper.feed.md +98 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.chart.bar.md +52 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.chart.bar.wrapper.source.md +104 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.chart.gauge.md +28 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.chart.gauge.wrapper.threshold.md +118 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.chart.line.md +32 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.conditional.md +62 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.dashboard.threshold.md +65 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.daterange.wrapper.forwarder.md +56 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.drawer.button.md +21 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.event.detail.md +20 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.events.search.md +21 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.field.daterange.md +83 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.field.filterComplex.md +106 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.field.intrange.md +82 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.field.multistring.md +50 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.filterPanel.md +53 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.json.editor.md +22 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.json.viewer.md +21 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.list.customAction.md +79 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.list.md +116 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.list.wrapper.bppmetrics.md +69 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.list.wrapper.feed.md +65 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.list.wrapper.source.md +64 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.modal.button.addItem.md +60 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.modal.button.md +21 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.mutation.inline.md +88 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.mystique.collapsible.attributes.md +83 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.mystique.collapsible.text.md +33 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.mystique.link.md +30 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.order.itemDetails.md +20 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.order.shipmentDetails.md +20 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.page.filter.select.md +87 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.page.md +64 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.page.refresh.md +48 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.page.section.column.md +71 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.page.section.header.md +61 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.page.section.md +59 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.page.wizard.md +45 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.page.wizard.summary.md +56 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.progress.circular.md +20 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.provider.graphql.md +71 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.quantity.list.md +87 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.repeater.md +56 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.reports.ipuipc.md +54 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.return.rowExpansion.md +19 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.scanner.barcode.md +21 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.scanner.barcodeFilter.md +72 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.scanner.camera.md +20 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.settingForm.md +64 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.sourcing.profile.drawer.button.md +19 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.sourcing.profile.modal.button.md +64 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.sourcing.strategy.modal.button.md +20 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.stepper.md +20 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.tab.content.md +56 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.tabs.card.md +64 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.tabs.md +69 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.tile.metric.md +73 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.workflow.provider.md +77 -0
- package/content/dev/skills/fluent-mystique-builder/validate-docs.ps1 +260 -0
- package/content/dev/skills/fluent-mystique-scaffold/SKILL.md +1830 -0
- package/content/dev/skills/fluent-mystique-validate/SKILL.md +646 -0
- package/content/dev/skills/fluent-pre-deploy-check/SKILL.md +1144 -1108
- package/content/dev/skills/fluent-retailer-config/SKILL.md +1162 -1111
- package/content/dev/skills/fluent-rollback/SKILL.md +387 -0
- package/content/dev/skills/fluent-rule-scaffold/SKILL.md +515 -385
- package/content/dev/skills/fluent-scope-decompose/SKILL.md +1123 -1021
- package/content/dev/skills/fluent-session-audit-export/SKILL.md +880 -632
- package/content/dev/skills/fluent-session-summary/SKILL.md +320 -195
- package/content/dev/skills/fluent-settings/SKILL.md +160 -1
- package/content/dev/skills/fluent-source-onboard/SKILL.md +31 -3
- package/content/dev/skills/fluent-sourcing/SKILL.md +1185 -0
- package/content/dev/skills/fluent-system-monitoring/SKILL.md +771 -767
- package/content/dev/skills/fluent-test-data/SKILL.md +514 -513
- package/content/dev/skills/fluent-trace/SKILL.md +1169 -1143
- package/content/dev/skills/fluent-transition-api/SKILL.md +364 -346
- package/content/dev/skills/fluent-use-case-discover/SKILL.md +593 -0
- package/content/dev/skills/fluent-use-case-discover/SPEC_TEMPLATE.md +281 -0
- package/content/dev/skills/fluent-version-manage/SKILL.md +53 -2
- package/content/dev/skills/fluent-workflow-analyzer/SKILL.md +995 -959
- package/content/dev/skills/fluent-workflow-builder/SKILL.md +668 -319
- package/content/dev/skills/fluent-workflow-deploy/SKILL.md +480 -267
- package/content/dev/skills/fluent-workspace-tree/SKILL.md +281 -0
- package/content/mcp-extn/agents/fluent-mcp.md +133 -69
- package/content/mcp-extn/skills/fluent-mcp-tools/SKILL.md +812 -461
- package/content/mcp-official/agents/fluent-mcp-core.md +91 -91
- package/content/mcp-official/skills/fluent-mcp-core/SKILL.md +94 -94
- package/content/rfl/skills/fluent-rfl-assess/SKILL.md +172 -172
- package/docs/CAPABILITY_MAP.md +106 -77
- package/docs/DEPLOYMENT_PROMOTION_RUNBOOK.md +218 -0
- package/docs/DESIGN-implementation-map.md +698 -0
- package/docs/DEV_WORKFLOW.md +814 -802
- package/docs/FLOW_RUN.md +142 -142
- package/docs/GETTING_STARTED.md +427 -0
- package/docs/USE_CASES.md +909 -52
- package/metadata.json +184 -156
- package/package.json +3 -2
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
# Deployment and Promotion Runbook
|
|
2
|
+
|
|
3
|
+
Direct-cutover runbook for promoting Fluent Commerce module changes across environments (`dev -> staging -> prod`) with clear artifacts, commands, verification, and rollback.
|
|
4
|
+
|
|
5
|
+
## Who This Is For
|
|
6
|
+
|
|
7
|
+
- Release managers promoting module/workflow changes.
|
|
8
|
+
- Engineers running manual deployments or CI/CD deployments.
|
|
9
|
+
- Teams that need a single, practical guide for what to run and what gets created.
|
|
10
|
+
|
|
11
|
+
## Direct-Cutover Scope
|
|
12
|
+
|
|
13
|
+
- This runbook assumes a direct cutover approach.
|
|
14
|
+
- Use one current module version and one current workflow version per environment.
|
|
15
|
+
- Promotions move forward environment by environment with explicit verification gates.
|
|
16
|
+
|
|
17
|
+
## Promotion Models
|
|
18
|
+
|
|
19
|
+
Use one model consistently for a release:
|
|
20
|
+
|
|
21
|
+
- **Single-retailer model:** deploy all assets directly to one retailer.
|
|
22
|
+
- **Global + operational model:** deploy master data first to the global retailer, then deploy operational assets to operational retailers.
|
|
23
|
+
|
|
24
|
+
## Required Inputs
|
|
25
|
+
|
|
26
|
+
| Input | Example |
|
|
27
|
+
|---|---|
|
|
28
|
+
| Profile | `HMDEV` |
|
|
29
|
+
| Retailer ref | `HM_TEST` |
|
|
30
|
+
| Module ZIP | `dist/my-module-1.2.4.zip` |
|
|
31
|
+
| Config file | `module.config.HM_TEST.dev.json` |
|
|
32
|
+
| Environment-specific config files | `module.config.HM_TEST.staging.json`, `module.config.HM_TEST.prod.json` |
|
|
33
|
+
|
|
34
|
+
## Artifacts Created During Promotion
|
|
35
|
+
|
|
36
|
+
| Stage | Artifact | Path |
|
|
37
|
+
|---|---|---|
|
|
38
|
+
| Build | Module package | `dist/<module-name>-<version>.zip` |
|
|
39
|
+
| Config prep | Environment config files | `module.config.<RETAILER>.<env>.json` |
|
|
40
|
+
| Pre-deploy backup | Workflow JSON backups | `backup/<timestamp>/<RETAILER>/*.json` |
|
|
41
|
+
| Diagnostics (`flow-run`) | Machine-readable diagnostics report | `.fluent-ai-skills/flow-run-report-<timestamp>.json` |
|
|
42
|
+
| Deployment | Live environment changes (module assets) | Fluent platform (workflows, rules, settings, data assets based on include/exclude) |
|
|
43
|
+
| Verification | CLI output + workflow/event checks | Terminal/CI logs |
|
|
44
|
+
|
|
45
|
+
## Step-by-Step Promotion
|
|
46
|
+
|
|
47
|
+
### 1) Build the release artifact
|
|
48
|
+
|
|
49
|
+
From your module source repo:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
cd plugins
|
|
53
|
+
mvn clean install
|
|
54
|
+
cd ..
|
|
55
|
+
./scripts/build-module.sh
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Expected output:
|
|
59
|
+
|
|
60
|
+
- `dist/<module-name>-<version>.zip`
|
|
61
|
+
|
|
62
|
+
### 2) Validate environment context
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
fluent profile active
|
|
66
|
+
fluent module list -p <PROFILE>
|
|
67
|
+
fluent workflow list -p <PROFILE> -r <RETAILER_REF>
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Confirm you are targeting the correct profile and retailer before deployment.
|
|
71
|
+
|
|
72
|
+
### 3) Back up current workflows
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
TS=$(date +%Y%m%d-%H%M%S)
|
|
76
|
+
mkdir -p "backup/$TS/<RETAILER_REF>"
|
|
77
|
+
fluent workflow download --profile <PROFILE> --retailer <RETAILER_REF> -w all -o "backup/$TS/<RETAILER_REF>/"
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Windows note: workflow files are typically saved with sanitized names such as `ORDER__HD.json`.
|
|
81
|
+
|
|
82
|
+
### 4) Run diagnostics-only gate
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
npx @fluentcommerce/ai-skills flow-run \
|
|
86
|
+
--profile <PROFILE> \
|
|
87
|
+
--retailer <RETAILER_REF> \
|
|
88
|
+
--module dist/<module-name>-<version>.zip \
|
|
89
|
+
--config module.config.<RETAILER_REF>.<env>.json
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Expected artifact:
|
|
93
|
+
|
|
94
|
+
- `.fluent-ai-skills/flow-run-report-<timestamp>.json`
|
|
95
|
+
|
|
96
|
+
### 5) Deploy
|
|
97
|
+
|
|
98
|
+
Use one of the following:
|
|
99
|
+
|
|
100
|
+
- **Guarded deploy via flow-run**
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
npx @fluentcommerce/ai-skills flow-run \
|
|
104
|
+
--profile <PROFILE> \
|
|
105
|
+
--retailer <RETAILER_REF> \
|
|
106
|
+
--module dist/<module-name>-<version>.zip \
|
|
107
|
+
--config module.config.<RETAILER_REF>.<env>.json \
|
|
108
|
+
--deploy --yes
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
- **Direct CLI deploy**
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
fluent module install dist/<module-name>-<version>.zip \
|
|
115
|
+
--profile <PROFILE> \
|
|
116
|
+
--retailer <RETAILER_REF> \
|
|
117
|
+
--config module.config.<RETAILER_REF>.<env>.json \
|
|
118
|
+
--force
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### 6) Post-deploy verification
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
fluent module list -p <PROFILE>
|
|
125
|
+
fluent workflow list -p <PROFILE> -r <RETAILER_REF>
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
Then run your smoke checks/E2E checks for the changed flows.
|
|
129
|
+
|
|
130
|
+
## Environment Promotion Sequence
|
|
131
|
+
|
|
132
|
+
Promote in this order:
|
|
133
|
+
|
|
134
|
+
```text
|
|
135
|
+
dev -> staging -> prod
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
For each environment:
|
|
139
|
+
|
|
140
|
+
1. Use the environment's profile/secrets.
|
|
141
|
+
2. Use that environment's config file (`module.config.<RETAILER>.<env>.json`).
|
|
142
|
+
3. Run diagnostics gate.
|
|
143
|
+
4. Deploy.
|
|
144
|
+
5. Verify.
|
|
145
|
+
6. Proceed to the next environment only after successful verification.
|
|
146
|
+
|
|
147
|
+
## Global + Operational Retailer Order
|
|
148
|
+
|
|
149
|
+
When using a global retailer pattern, deploy in this order:
|
|
150
|
+
|
|
151
|
+
1. **Global retailer data** (products, locations, inventory, core settings)
|
|
152
|
+
2. **Rules** (plugin JAR assets)
|
|
153
|
+
3. **Operational retailers** (workflows, workflow-fragments, settings, controls)
|
|
154
|
+
|
|
155
|
+
Reason:
|
|
156
|
+
|
|
157
|
+
- Operational retailers depend on global references.
|
|
158
|
+
- Workflows depend on rules being installed first.
|
|
159
|
+
|
|
160
|
+
## Selective Deployment Recipes
|
|
161
|
+
|
|
162
|
+
Deploy only specific assets when needed:
|
|
163
|
+
|
|
164
|
+
```bash
|
|
165
|
+
# Workflows + settings only
|
|
166
|
+
fluent module install dist/<module>.zip --profile <PROFILE> --retailer <RETAILER_REF> \
|
|
167
|
+
--include workflows settings --force
|
|
168
|
+
|
|
169
|
+
# Exclude workflows
|
|
170
|
+
fluent module install dist/<module>.zip --profile <PROFILE> --retailer <RETAILER_REF> \
|
|
171
|
+
--exclude workflows --force
|
|
172
|
+
|
|
173
|
+
# Data-only deployment
|
|
174
|
+
fluent module install dist/<module>.zip --profile <PROFILE> --retailer <RETAILER_REF> \
|
|
175
|
+
--include locations products inventory --force
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
`--include` and `--exclude` are mutually exclusive in a single command.
|
|
179
|
+
|
|
180
|
+
## Rollback Playbook
|
|
181
|
+
|
|
182
|
+
If a release fails after deployment, use one of these:
|
|
183
|
+
|
|
184
|
+
### Option A: Redeploy previous module version
|
|
185
|
+
|
|
186
|
+
```bash
|
|
187
|
+
fluent module install dist/<module-name>-<previous-version>.zip \
|
|
188
|
+
--profile <PROFILE> \
|
|
189
|
+
--retailer <RETAILER_REF> \
|
|
190
|
+
--force
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
### Option B: Restore workflow backup
|
|
194
|
+
|
|
195
|
+
1. Use workflow backups created in `backup/<timestamp>/<RETAILER_REF>/`.
|
|
196
|
+
2. Re-upload the required workflow JSON (for example via your workflow deployment process or REST upload).
|
|
197
|
+
|
|
198
|
+
Keep versioned release ZIPs and workflow backups for every promotion wave.
|
|
199
|
+
|
|
200
|
+
## CI/CD Implementation Pattern
|
|
201
|
+
|
|
202
|
+
Use environment-gated pipeline stages:
|
|
203
|
+
|
|
204
|
+
- `deploy-dev` -> `deploy-staging` -> `deploy-prod`
|
|
205
|
+
- Require manual approval on production environment.
|
|
206
|
+
- Store secrets per environment (do not reuse dev credentials in prod).
|
|
207
|
+
|
|
208
|
+
## Release Checklist
|
|
209
|
+
|
|
210
|
+
- [ ] Correct profile and retailer confirmed.
|
|
211
|
+
- [ ] New module ZIP built and versioned.
|
|
212
|
+
- [ ] Environment-specific config file selected.
|
|
213
|
+
- [ ] Workflow backup completed.
|
|
214
|
+
- [ ] Diagnostics report generated and reviewed.
|
|
215
|
+
- [ ] Deployment completed successfully.
|
|
216
|
+
- [ ] Post-deploy verification passed.
|
|
217
|
+
- [ ] Rollback artifacts (previous ZIP + workflow backups) available.
|
|
218
|
+
|