-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathplugins.yaml
More file actions
143 lines (141 loc) · 6.3 KB
/
Copy pathplugins.yaml
File metadata and controls
143 lines (141 loc) · 6.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
# THE first-party plugin registry — the single source of truth for "what plugins exist".
#
# Every system that needs the plugin list derives it from this file rather than carrying its own
# copy: scripts/plugin-registry-check.sh (the CI gate that keeps the consumers honest),
# dev-gate.yml's sibling checkouts, scripts/release-check.sh's per-plugin phases, and the release
# tooling. Found necessary during the 1.5.0 ship: the list was duplicated across at least five
# places, and the copies had drifted — the "full plugin gate" silently covered 6 of 8 plugins.
#
# Adding a plugin = adding ONE entry here. The registry gate then goes RED until every consumer
# actually covers it (dev-gate checkout present, release-check phase present, release published) —
# coverage is enforced, not remembered.
#
# Fields:
# repo: GitHub repo under GetBusbar/
# kind: store | auth | hook | secret (busbar plugin kind; selects the C ABI)
# alias: short config name (busbar-plugin-pack --alias)
# crate: the plugin cdylib's Cargo package name
# version_line: the semver line current releases live on (headroom's 1.x is pre-plugin
# 1.4.2-era and must never be retagged)
# service: real backend container its tests need (mysql|postgres|redis|vault|none)
# release_gate: required — release-check.sh hard-fails if the sibling checkout is missing
# optional — release-check.sh loud-skips (still red in the registry gate's
# release check; "optional" only softens a LOCAL run without the checkout)
# gate: HOW release-check.sh covers this plugin:
# suite — the UNIFORM pattern: release-check.sh's registry-driven loop boots the
# entry's `service` container (if any), exports that service's
# BUSBAR_TEST_* env, and runs `cargo test --workspace --release` in the
# sibling checkout. Adding a `gate: suite` plugin needs NO script edit
# unless it introduces a brand-new `service` value.
# binary — a genuinely-special explicit phase driving the plugin through a full
# busbar binary (real HTTP traffic + restart durability). sqlite only.
# smoke — a genuinely-special explicit phase: pack the cdylib and prove a real
# busbar --validate dlopens it. The hook plugins.
# The registry gate enforces that binary/smoke plugins still have an explicit
# phase touching ../<dir>, and that the suite loop + every `service` a suite
# plugin declares are actually handled in release-check.sh.
#
# Optional fields:
# checkout_dir: local sibling/checkout directory name when it differs from `repo`
# (legacy rename; see store-valkey below)
# checkout_ref: git ref dev-gate.yml's registry-driven clone loop checks the repo out at
# (default: the repo's default branch)
# Org repos that MATCH the plugin naming pattern but are deliberately NOT plugins (the reverse
# check in plugin-registry-check.sh flags any pattern-matching org repo that is neither listed
# above nor excluded here — so a new plugin repo cannot exist unregistered).
excluded_repos:
- hindsight-hook # design docs only — no crate, no workflows, private
plugins:
- repo: store-mysql
kind: store
alias: mysql
crate: busbar-store-mysql-plugin
version_line: "1.0"
service: mysql
release_gate: optional
gate: suite
- repo: store-postgres
kind: store
alias: postgres
crate: busbar-store-postgres-plugin
version_line: "1.0"
service: postgres
release_gate: required
gate: suite
checkout_ref: qa # joined the 1.5.2 train (flaky-test fix on qa); gate clones the fix, not main. Drop at cut.
- repo: store-sqlite
kind: store
alias: sqlite
crate: busbar-store-sqlite-plugin
version_line: "1.0"
service: none
release_gate: optional
gate: binary
- repo: store-valkey
kind: store
alias: redis
crate: busbar-store-redis-plugin
version_line: "1.0"
service: redis
release_gate: optional
gate: suite
# Renamed from store-redis; artifact/crate names deliberately keep the redis identity.
# Local checkouts and sibling paths still use the directory name store-redis.
checkout_dir: store-redis
- repo: hashicorp-vault
kind: secret
alias: vault
crate: busbar-hashicorp-vault-plugin
version_line: "1.0"
service: vault
release_gate: optional
gate: suite
- repo: auth-oidc
kind: auth
alias: oidc
crate: busbar-auth-oidc-plugin
version_line: "1.0"
service: none
release_gate: optional
gate: suite
checkout_ref: qa # qa-gate clones the plugin's STAGED qa code (built against core qa). Drop at the cut.
- repo: auth-github
kind: auth
alias: github
crate: busbar-auth-github-plugin
version_line: "1.0"
service: none
release_gate: optional
gate: suite
released: false # NEW in 1.5.2 — first release is cut at the 1.5.2 ship; skip the published-release arm until then. Flip to true (or drop) at the cut.
checkout_ref: qa # qa-gate clones the plugin's STAGED qa code. Drop at the cut.
- repo: auth-ldap
kind: auth
alias: ldap
crate: busbar-auth-ldap-plugin
version_line: "1.0"
service: none
release_gate: optional
gate: suite
released: false # NEW in 1.5.2 — first release is cut at the 1.5.2 ship; skip the published-release arm until then. Flip to true (or drop) at the cut.
checkout_ref: qa # qa-gate clones the plugin's STAGED qa code. Drop at the cut.
- repo: webrequest-hook
kind: hook
alias: webrequest
crate: busbar-webrequest-hook-plugin
version_line: "1.0"
service: none
release_gate: optional
gate: smoke
- repo: headroom-hook
kind: hook
alias: headroom
crate: headroom-hook
version_line: "2.0"
service: none
release_gate: optional
gate: smoke
# `dev` (not the default branch) carries the sibling-relative-path dependency fix dev-gate's
# build actually needs — mirrors busbar's own main/dev split: main stays release-only, ongoing
# work lands on dev. (Formerly a hand-written `ref: dev` in dev-gate.yml's checkout step.)
checkout_ref: dev