@serve.zone/gitops 2.13.1

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.
Files changed (258) hide show
  1. package/.smartconfig.json +114 -0
  2. package/binary/gitops.ts +4 -0
  3. package/changelog.md +185 -0
  4. package/cli.child.js +4 -0
  5. package/cli.js +4 -0
  6. package/cli.ts.js +5 -0
  7. package/deno.json +10 -0
  8. package/dist_serve/bundle.js +36362 -0
  9. package/dist_serve/index.html +33 -0
  10. package/dist_ts/00_commitinfo_data.d.ts +8 -0
  11. package/dist_ts/00_commitinfo_data.js +9 -0
  12. package/dist_ts/cache/classes.cache.cleaner.d.ts +23 -0
  13. package/dist_ts/cache/classes.cache.cleaner.js +61 -0
  14. package/dist_ts/cache/classes.cached.document.d.ts +30 -0
  15. package/dist_ts/cache/classes.cached.document.js +101 -0
  16. package/dist_ts/cache/classes.cachedb.d.ts +22 -0
  17. package/dist_ts/cache/classes.cachedb.js +58 -0
  18. package/dist_ts/cache/classes.secrets.scan.service.d.ts +51 -0
  19. package/dist_ts/cache/classes.secrets.scan.service.js +237 -0
  20. package/dist_ts/cache/documents/classes.cached.project.d.ts +13 -0
  21. package/dist_ts/cache/documents/classes.cached.project.js +101 -0
  22. package/dist_ts/cache/documents/classes.cached.secret.d.ts +24 -0
  23. package/dist_ts/cache/documents/classes.cached.secret.js +158 -0
  24. package/dist_ts/cache/documents/index.d.ts +2 -0
  25. package/dist_ts/cache/documents/index.js +3 -0
  26. package/dist_ts/cache/index.d.ts +7 -0
  27. package/dist_ts/cache/index.js +6 -0
  28. package/dist_ts/classes/actionlog.d.ts +19 -0
  29. package/dist_ts/classes/actionlog.js +44 -0
  30. package/dist_ts/classes/connectionmanager.d.ts +57 -0
  31. package/dist_ts/classes/connectionmanager.js +247 -0
  32. package/dist_ts/classes/gitopsapp.d.ts +30 -0
  33. package/dist_ts/classes/gitopsapp.js +101 -0
  34. package/dist_ts/classes/jobmanager.d.ts +47 -0
  35. package/dist_ts/classes/jobmanager.js +301 -0
  36. package/dist_ts/classes/jobrunners/autobookstackdocs.runner.d.ts +29 -0
  37. package/dist_ts/classes/jobrunners/autobookstackdocs.runner.js +361 -0
  38. package/dist_ts/classes/jobrunners/base.jobrunner.d.ts +14 -0
  39. package/dist_ts/classes/jobrunners/base.jobrunner.js +3 -0
  40. package/dist_ts/classes/jobrunners/index.d.ts +5 -0
  41. package/dist_ts/classes/jobrunners/index.js +14 -0
  42. package/dist_ts/classes/managedsecrets.manager.d.ts +47 -0
  43. package/dist_ts/classes/managedsecrets.manager.js +247 -0
  44. package/dist_ts/classes/syncmanager.d.ts +189 -0
  45. package/dist_ts/classes/syncmanager.js +1787 -0
  46. package/dist_ts/index.d.ts +6 -0
  47. package/dist_ts/index.js +32 -0
  48. package/dist_ts/logging.d.ts +49 -0
  49. package/dist_ts/logging.js +134 -0
  50. package/dist_ts/opsserver/classes.opsserver.d.ts +25 -0
  51. package/dist_ts/opsserver/classes.opsserver.js +70 -0
  52. package/dist_ts/opsserver/handlers/actionlog.handler.d.ts +9 -0
  53. package/dist_ts/opsserver/handlers/actionlog.handler.js +24 -0
  54. package/dist_ts/opsserver/handlers/actions.handler.d.ts +9 -0
  55. package/dist_ts/opsserver/handlers/actions.handler.js +38 -0
  56. package/dist_ts/opsserver/handlers/admin.handler.d.ts +19 -0
  57. package/dist_ts/opsserver/handlers/admin.handler.js +96 -0
  58. package/dist_ts/opsserver/handlers/connections.handler.d.ts +10 -0
  59. package/dist_ts/opsserver/handlers/connections.handler.js +109 -0
  60. package/dist_ts/opsserver/handlers/groups.handler.d.ts +9 -0
  61. package/dist_ts/opsserver/handlers/groups.handler.js +24 -0
  62. package/dist_ts/opsserver/handlers/index.d.ts +13 -0
  63. package/dist_ts/opsserver/handlers/index.js +14 -0
  64. package/dist_ts/opsserver/handlers/jobs.handler.d.ts +16 -0
  65. package/dist_ts/opsserver/handlers/jobs.handler.js +146 -0
  66. package/dist_ts/opsserver/handlers/logs.handler.d.ts +9 -0
  67. package/dist_ts/opsserver/handlers/logs.handler.js +21 -0
  68. package/dist_ts/opsserver/handlers/managedsecrets.handler.d.ts +11 -0
  69. package/dist_ts/opsserver/handlers/managedsecrets.handler.js +110 -0
  70. package/dist_ts/opsserver/handlers/pipelines.handler.d.ts +31 -0
  71. package/dist_ts/opsserver/handlers/pipelines.handler.js +204 -0
  72. package/dist_ts/opsserver/handlers/projects.handler.d.ts +9 -0
  73. package/dist_ts/opsserver/handlers/projects.handler.js +24 -0
  74. package/dist_ts/opsserver/handlers/secrets.handler.d.ts +10 -0
  75. package/dist_ts/opsserver/handlers/secrets.handler.js +171 -0
  76. package/dist_ts/opsserver/handlers/sync.handler.d.ts +16 -0
  77. package/dist_ts/opsserver/handlers/sync.handler.js +166 -0
  78. package/dist_ts/opsserver/handlers/webhook.handler.d.ts +7 -0
  79. package/dist_ts/opsserver/handlers/webhook.handler.js +55 -0
  80. package/dist_ts/opsserver/helpers/guards.d.ts +5 -0
  81. package/dist_ts/opsserver/helpers/guards.js +12 -0
  82. package/dist_ts/opsserver/index.d.ts +1 -0
  83. package/dist_ts/opsserver/index.js +2 -0
  84. package/dist_ts/paths.d.ts +9 -0
  85. package/dist_ts/paths.js +13 -0
  86. package/dist_ts/plugins.d.ts +25 -0
  87. package/dist_ts/plugins.js +32 -0
  88. package/dist_ts/providers/classes.baseprovider.d.ts +51 -0
  89. package/dist_ts/providers/classes.baseprovider.js +17 -0
  90. package/dist_ts/providers/classes.giteaprovider.d.ts +40 -0
  91. package/dist_ts/providers/classes.giteaprovider.js +224 -0
  92. package/dist_ts/providers/classes.gitlabprovider.d.ts +39 -0
  93. package/dist_ts/providers/classes.gitlabprovider.js +207 -0
  94. package/dist_ts/providers/index.d.ts +3 -0
  95. package/dist_ts/providers/index.js +4 -0
  96. package/dist_ts/storage/classes.storagemanager.d.ts +33 -0
  97. package/dist_ts/storage/classes.storagemanager.js +135 -0
  98. package/dist_ts/storage/index.d.ts +2 -0
  99. package/dist_ts/storage/index.js +2 -0
  100. package/dist_ts/timers.d.ts +4 -0
  101. package/dist_ts/timers.js +24 -0
  102. package/dist_ts_bundled/bundle.d.ts +4 -0
  103. package/dist_ts_bundled/bundle.js +12 -0
  104. package/dist_ts_interfaces/data/actionlog.d.ts +12 -0
  105. package/dist_ts_interfaces/data/actionlog.js +2 -0
  106. package/dist_ts_interfaces/data/branch.d.ts +8 -0
  107. package/dist_ts_interfaces/data/branch.js +2 -0
  108. package/dist_ts_interfaces/data/connection.d.ts +12 -0
  109. package/dist_ts_interfaces/data/connection.js +2 -0
  110. package/dist_ts_interfaces/data/group.d.ts +10 -0
  111. package/dist_ts_interfaces/data/group.js +2 -0
  112. package/dist_ts_interfaces/data/identity.d.ts +7 -0
  113. package/dist_ts_interfaces/data/identity.js +2 -0
  114. package/dist_ts_interfaces/data/index.d.ts +11 -0
  115. package/dist_ts_interfaces/data/index.js +12 -0
  116. package/dist_ts_interfaces/data/job.d.ts +37 -0
  117. package/dist_ts_interfaces/data/job.js +2 -0
  118. package/dist_ts_interfaces/data/managedsecret.d.ts +37 -0
  119. package/dist_ts_interfaces/data/managedsecret.js +2 -0
  120. package/dist_ts_interfaces/data/pipeline.d.ts +22 -0
  121. package/dist_ts_interfaces/data/pipeline.js +2 -0
  122. package/dist_ts_interfaces/data/project.d.ts +12 -0
  123. package/dist_ts_interfaces/data/project.js +2 -0
  124. package/dist_ts_interfaces/data/secret.d.ts +11 -0
  125. package/dist_ts_interfaces/data/secret.js +2 -0
  126. package/dist_ts_interfaces/data/sync.d.ts +34 -0
  127. package/dist_ts_interfaces/data/sync.js +2 -0
  128. package/dist_ts_interfaces/index.d.ts +5 -0
  129. package/dist_ts_interfaces/index.js +8 -0
  130. package/dist_ts_interfaces/plugins.d.ts +2 -0
  131. package/dist_ts_interfaces/plugins.js +4 -0
  132. package/dist_ts_interfaces/requests/actionlog.d.ts +15 -0
  133. package/dist_ts_interfaces/requests/actionlog.js +3 -0
  134. package/dist_ts_interfaces/requests/actions.d.ts +31 -0
  135. package/dist_ts_interfaces/requests/actions.js +3 -0
  136. package/dist_ts_interfaces/requests/admin.d.ts +31 -0
  137. package/dist_ts_interfaces/requests/admin.js +3 -0
  138. package/dist_ts_interfaces/requests/connections.d.ts +71 -0
  139. package/dist_ts_interfaces/requests/connections.js +3 -0
  140. package/dist_ts_interfaces/requests/groups.d.ts +14 -0
  141. package/dist_ts_interfaces/requests/groups.js +3 -0
  142. package/dist_ts_interfaces/requests/index.d.ts +13 -0
  143. package/dist_ts_interfaces/requests/index.js +14 -0
  144. package/dist_ts_interfaces/requests/jobs.d.ts +86 -0
  145. package/dist_ts_interfaces/requests/jobs.js +3 -0
  146. package/dist_ts_interfaces/requests/logs.d.ts +14 -0
  147. package/dist_ts_interfaces/requests/logs.js +3 -0
  148. package/dist_ts_interfaces/requests/managedsecrets.d.ts +84 -0
  149. package/dist_ts_interfaces/requests/managedsecrets.js +3 -0
  150. package/dist_ts_interfaces/requests/pipelines.d.ts +55 -0
  151. package/dist_ts_interfaces/requests/pipelines.js +3 -0
  152. package/dist_ts_interfaces/requests/projects.d.ts +14 -0
  153. package/dist_ts_interfaces/requests/projects.js +3 -0
  154. package/dist_ts_interfaces/requests/secrets.d.ts +72 -0
  155. package/dist_ts_interfaces/requests/secrets.js +3 -0
  156. package/dist_ts_interfaces/requests/sync.d.ts +120 -0
  157. package/dist_ts_interfaces/requests/sync.js +3 -0
  158. package/dist_ts_interfaces/requests/webhook.d.ts +13 -0
  159. package/dist_ts_interfaces/requests/webhook.js +3 -0
  160. package/license +21 -0
  161. package/package.json +81 -0
  162. package/readme.md +177 -0
  163. package/readme.todo.md +3 -0
  164. package/ts/00_commitinfo_data.ts +8 -0
  165. package/ts/cache/classes.cache.cleaner.ts +69 -0
  166. package/ts/cache/classes.cached.document.ts +57 -0
  167. package/ts/cache/classes.cachedb.ts +72 -0
  168. package/ts/cache/classes.secrets.scan.service.ts +267 -0
  169. package/ts/cache/documents/classes.cached.project.ts +32 -0
  170. package/ts/cache/documents/classes.cached.secret.ts +81 -0
  171. package/ts/cache/documents/index.ts +2 -0
  172. package/ts/cache/index.ts +7 -0
  173. package/ts/classes/actionlog.ts +57 -0
  174. package/ts/classes/connectionmanager.ts +263 -0
  175. package/ts/classes/gitopsapp.ts +128 -0
  176. package/ts/classes/jobmanager.ts +337 -0
  177. package/ts/classes/jobrunners/autobookstackdocs.runner.ts +435 -0
  178. package/ts/classes/jobrunners/base.jobrunner.ts +16 -0
  179. package/ts/classes/jobrunners/index.ts +17 -0
  180. package/ts/classes/managedsecrets.manager.ts +322 -0
  181. package/ts/classes/syncmanager.ts +2117 -0
  182. package/ts/index.ts +37 -0
  183. package/ts/logging.ts +162 -0
  184. package/ts/opsserver/classes.opsserver.ts +86 -0
  185. package/ts/opsserver/handlers/actionlog.handler.ts +30 -0
  186. package/ts/opsserver/handlers/actions.handler.ts +50 -0
  187. package/ts/opsserver/handlers/admin.handler.ts +122 -0
  188. package/ts/opsserver/handlers/connections.handler.ts +162 -0
  189. package/ts/opsserver/handlers/groups.handler.ts +32 -0
  190. package/ts/opsserver/handlers/index.ts +13 -0
  191. package/ts/opsserver/handlers/jobs.handler.ts +189 -0
  192. package/ts/opsserver/handlers/logs.handler.ts +29 -0
  193. package/ts/opsserver/handlers/managedsecrets.handler.ts +158 -0
  194. package/ts/opsserver/handlers/pipelines.handler.ts +281 -0
  195. package/ts/opsserver/handlers/projects.handler.ts +32 -0
  196. package/ts/opsserver/handlers/secrets.handler.ts +224 -0
  197. package/ts/opsserver/handlers/sync.handler.ts +224 -0
  198. package/ts/opsserver/handlers/webhook.handler.ts +62 -0
  199. package/ts/opsserver/helpers/guards.ts +16 -0
  200. package/ts/opsserver/index.ts +1 -0
  201. package/ts/paths.ts +19 -0
  202. package/ts/plugins.ts +38 -0
  203. package/ts/providers/classes.baseprovider.ts +99 -0
  204. package/ts/providers/classes.giteaprovider.ts +279 -0
  205. package/ts/providers/classes.gitlabprovider.ts +265 -0
  206. package/ts/providers/index.ts +3 -0
  207. package/ts/storage/classes.storagemanager.ts +144 -0
  208. package/ts/storage/index.ts +2 -0
  209. package/ts/timers.ts +34 -0
  210. package/ts_interfaces/data/actionlog.ts +13 -0
  211. package/ts_interfaces/data/branch.ts +9 -0
  212. package/ts_interfaces/data/connection.ts +13 -0
  213. package/ts_interfaces/data/group.ts +10 -0
  214. package/ts_interfaces/data/identity.ts +7 -0
  215. package/ts_interfaces/data/index.ts +11 -0
  216. package/ts_interfaces/data/job.ts +42 -0
  217. package/ts_interfaces/data/managedsecret.ts +41 -0
  218. package/ts_interfaces/data/pipeline.ts +32 -0
  219. package/ts_interfaces/data/project.ts +12 -0
  220. package/ts_interfaces/data/secret.ts +11 -0
  221. package/ts_interfaces/data/sync.ts +37 -0
  222. package/ts_interfaces/index.ts +9 -0
  223. package/ts_interfaces/plugins.ts +6 -0
  224. package/ts_interfaces/requests/actionlog.ts +19 -0
  225. package/ts_interfaces/requests/actions.ts +39 -0
  226. package/ts_interfaces/requests/admin.ts +43 -0
  227. package/ts_interfaces/requests/connections.ts +95 -0
  228. package/ts_interfaces/requests/groups.ts +18 -0
  229. package/ts_interfaces/requests/index.ts +13 -0
  230. package/ts_interfaces/requests/jobs.ts +118 -0
  231. package/ts_interfaces/requests/logs.ts +18 -0
  232. package/ts_interfaces/requests/managedsecrets.ts +112 -0
  233. package/ts_interfaces/requests/pipelines.ts +71 -0
  234. package/ts_interfaces/requests/projects.ts +18 -0
  235. package/ts_interfaces/requests/secrets.ts +92 -0
  236. package/ts_interfaces/requests/sync.ts +157 -0
  237. package/ts_interfaces/requests/webhook.ts +18 -0
  238. package/ts_web/00_commitinfo_data.ts +8 -0
  239. package/ts_web/appstate.ts +1251 -0
  240. package/ts_web/elements/gitops-dashboard.ts +350 -0
  241. package/ts_web/elements/index.ts +10 -0
  242. package/ts_web/elements/shared/css.ts +29 -0
  243. package/ts_web/elements/shared/index.ts +1 -0
  244. package/ts_web/elements/views/actionlog/index.ts +101 -0
  245. package/ts_web/elements/views/actions/index.ts +209 -0
  246. package/ts_web/elements/views/buildlog/index.ts +196 -0
  247. package/ts_web/elements/views/connections/index.ts +260 -0
  248. package/ts_web/elements/views/groups/index.ts +134 -0
  249. package/ts_web/elements/views/jobs/index.ts +424 -0
  250. package/ts_web/elements/views/managedsecrets/index.ts +502 -0
  251. package/ts_web/elements/views/overview/index.ts +86 -0
  252. package/ts_web/elements/views/pipelines/index.ts +561 -0
  253. package/ts_web/elements/views/projects/index.ts +149 -0
  254. package/ts_web/elements/views/secrets/index.ts +310 -0
  255. package/ts_web/elements/views/sync/index.ts +512 -0
  256. package/ts_web/index.ts +7 -0
  257. package/ts_web/plugins.ts +15 -0
  258. package/tsconfig.json +15 -0
@@ -0,0 +1,114 @@
1
+ {
2
+ "@git.zone/tsdocker": {
3
+ "registries": ["code.foss.global"],
4
+ "registryRepoMap": {
5
+ "code.foss.global": "serve.zone/gitops"
6
+ },
7
+ "platforms": [
8
+ "linux/amd64",
9
+ "linux/arm64"
10
+ ]
11
+ },
12
+ "@git.zone/tsbundle": {
13
+ "bundles": [
14
+ {
15
+ "from": "./ts_web/index.ts",
16
+ "to": "./dist_serve/bundle.js",
17
+ "outputMode": "bundle",
18
+ "bundler": "esbuild",
19
+ "production": true,
20
+ "includeFiles": [
21
+ "./html/**/*.html"
22
+ ]
23
+ }
24
+ ]
25
+ },
26
+ "@git.zone/tsdeno": {
27
+ "compileTargets": [
28
+ {
29
+ "name": "gitops-linux-x64",
30
+ "entryPoint": "binary/gitops.ts",
31
+ "outDir": "dist/binaries",
32
+ "target": "x86_64-unknown-linux-gnu",
33
+ "permissions": ["--allow-all"],
34
+ "noCheck": true,
35
+ "selfExtracting": true
36
+ },
37
+ {
38
+ "name": "gitops-linux-arm64",
39
+ "entryPoint": "binary/gitops.ts",
40
+ "outDir": "dist/binaries",
41
+ "target": "aarch64-unknown-linux-gnu",
42
+ "permissions": ["--allow-all"],
43
+ "noCheck": true,
44
+ "selfExtracting": true
45
+ }
46
+ ]
47
+ },
48
+ "@git.zone/tswatch": {
49
+ "bundles": [
50
+ {
51
+ "from": "./ts_web/index.ts",
52
+ "to": "./dist_serve/bundle.js",
53
+ "outputMode": "bundle",
54
+ "bundler": "esbuild",
55
+ "production": true,
56
+ "watchPatterns": ["./ts_web/**/*", "./html/**/*"],
57
+ "includeFiles": [
58
+ "./html/**/*.html"
59
+ ]
60
+ }
61
+ ],
62
+ "watchers": [
63
+ {
64
+ "name": "backend",
65
+ "watch": ["./ts/**/*", "./ts_interfaces/**/*", "./dist_serve/**/*"],
66
+ "command": "node ./cli.ts.js server",
67
+ "restart": true,
68
+ "debounce": 500,
69
+ "runOnStart": true
70
+ }
71
+ ]
72
+ },
73
+ "@git.zone/cli": {
74
+ "schemaVersion": 2,
75
+ "projectType": "service",
76
+ "module": {
77
+ "githost": "code.foss.global",
78
+ "gitscope": "serve.zone",
79
+ "gitrepo": "gitops",
80
+ "description": "GitOps management app for Gitea and GitLab.",
81
+ "npmPackagename": "@serve.zone/gitops",
82
+ "license": "MIT",
83
+ "projectDomain": "serve.zone",
84
+ "keywords": [
85
+ "gitops",
86
+ "gitea",
87
+ "gitlab",
88
+ "ci",
89
+ "secrets",
90
+ "pipelines"
91
+ ]
92
+ },
93
+ "release": {
94
+ "targets": {
95
+ "git": {
96
+ "enabled": true,
97
+ "remote": "origin"
98
+ },
99
+ "npm": {
100
+ "enabled": true,
101
+ "registries": [
102
+ "https://verdaccio.lossless.digital",
103
+ "https://registry.npmjs.org"
104
+ ],
105
+ "accessLevel": "public"
106
+ },
107
+ "docker": {
108
+ "enabled": true,
109
+ "engine": "tsdocker"
110
+ }
111
+ }
112
+ }
113
+ }
114
+ }
@@ -0,0 +1,4 @@
1
+ process.env.CLI_CALL = 'true';
2
+
3
+ const cliTool = await import('../dist_ts/index.js');
4
+ await cliTool.runCli();
package/changelog.md ADDED
@@ -0,0 +1,185 @@
1
+ # Changelog
2
+
3
+ ## 2026-06-05 - 2.13.1
4
+
5
+ BREAKING CHANGE(runtime): migrate service runtime to Node.js and add scheduled job automation
6
+
7
+ - Replaces the Deno entrypoint with Node.js CLI binaries, package exports, build/test scripts, Docker support, and Node-compatible filesystem/process APIs.
8
+ - Adds scheduled job management with typed API handlers, action logging, frontend Jobs view, and real-time job log streaming.
9
+ - Adds an AutoBookstackDocs runner that publishes Git provider markdown documentation to BookStack with content hashing and optional cleanup.
10
+ - Extends Git provider abstractions with file content and directory listing APIs used by documentation jobs.
11
+ - Improves timer validation and shutdown behavior for sync and job execution, including graceful cleanup of active git child processes.
12
+
13
+ ## 2026-03-28 - 2.13.0 - feat(cache,build,docs)
14
+ switch cache storage to SmartMongo and align build configuration with updated dependencies
15
+
16
+ - replaces LocalTsmDb usage with SmartMongo in the cache layer and related tests
17
+ - moves tsbundle and tswatch configuration from npmextra.json to .smartconfig.json
18
+ - updates Deno, frontend, and provider dependencies and adds @std/assert imports for tests
19
+ - refreshes README to document managed secrets, sync, action log, and the expanded handler and view set
20
+
21
+ ## 2026-03-02 - 2.12.0 - feat(pipelines)
22
+ add pipelines view modes, time-range filtering, group aggregation, sorting, and job log polling
23
+
24
+ - Add view modes for pipelines: 'current', 'project', 'group', and 'error'; support timeRange and sortBy parameters on getPipelines requests and in the UI.
25
+ - Implement aggregated pipeline fetching across projects with batching, deduplication, and active-run prioritization (fetchCurrentPipelines, fetchAggregatedPipelines, fetchGroupPipelines, fetchErrorPipelines).
26
+ - Add filtering by time ranges (1h, 6h, 1d, 3d, 7d, 30d) and sorting options (created, duration, status) with status priority ordering.
27
+ - Extend BaseProvider API: add IPipelineListOptions (status, ref, source), add getGroupProjects, and update Gitea/GitLab providers to honor new options and include projectName mapping.
28
+ - Enhance web UI: new controls/state for viewMode, timeRange, sortBy, group selection, plus job log polling with auto-scroll and cleanup on disconnect.
29
+ - Bump dependencies: @apiclient.xyz/gitea 1.3.0 -> 1.4.0 and @apiclient.xyz/gitlab 2.4.0 -> 2.5.0.
30
+
31
+ ## 2026-03-02 - 2.11.1 - fix(meta)
32
+ update repository metadata (non-functional change)
33
+
34
+ - Change was metadata-only (+1 -1) with no source code changes
35
+ - Current package.json version: 2.11.0 — recommend patch bump to 2.11.1
36
+
37
+ ## 2026-03-02 - 2.11.0 - feat(sync)
38
+ add branch & tag listing support and improve sync mirroring and sync log routing
39
+
40
+ - Bump @apiclient.xyz/gitea to 1.3.0 and @apiclient.xyz/gitlab to 2.4.0
41
+ - Add IBranch and ITag interfaces and export them from ts_interfaces
42
+ - Add getBranches/getTags to BaseProvider and implement paginated branch/tag listing for Gitea and GitLab providers
43
+ - SyncManager now creates a temporary mirrors directory (RAM-backed), auto-cleans it on shutdown, and no longer requires a configured syncMirrorsPath (removed from paths and gitopsapp)
44
+ - Add refsMatch in SyncManager to accurately compare local branches/tags with target refs (uses for-each-ref and ls-remote) to avoid unnecessary pushes
45
+ - Introduce avatarUploadCache and other internal sync manager improvements
46
+ - Change log channel/tagging: sync log messages use 'sync' (was 'git') and TypedSocket broadcasts use a new 'syncLogClient' tag; web client now sets that tag when creating the socket
47
+
48
+ ## 2026-02-28 - 2.10.0 - feat(managed-secrets)
49
+ add centrally managed secrets with GITOPS_ prefix pushed to multiple targets
50
+
51
+ - Add IManagedSecret, IManagedSecretTarget, IManagedSecretStored interfaces and TypedRequest contracts for CRUD + push operations
52
+ - Add ManagedSecretsManager with keychain-backed storage, upsert push logic, target diff on update, and best-effort delete
53
+ - Add ManagedSecretsHandler with 7 endpoints wired into OpsServer with auth guards and action logging
54
+ - Add frontend state part, 6 appstate actions, and Managed Secrets view with table, target picker, and push/edit/delete modals
55
+ - Add Managed Secrets tab to dashboard after Secrets
56
+ - Extend action log types with 'managed-secret' entity and 'push' action
57
+
58
+ ## 2026-02-28 - 2.9.0 - feat(sync)
59
+ remove target avatar when source has none to keep avatars fully in sync
60
+
61
+ - Add removeProjectAvatar and removeGroupAvatar methods for GitLab and Gitea APIs
62
+ - In syncProjectMetadata, remove target project avatar when source has no avatar and no group fallback applies
63
+ - When useGroupAvatarsForProjects is enabled but the group also has no avatar, remove the target avatar
64
+ - In syncGroupMetadata, remove target group avatar when source group has no avatar
65
+
66
+ ## 2026-02-28 - 2.8.0 - feat(sync)
67
+ add sync subsystem: SyncManager, OpsServer sync handlers, Sync UI and state, provider groupFilter support, and realtime sync log streaming via TypedSocket
68
+
69
+ - Introduce SyncManager and wire it into GitopsApp (init/stop) with a new syncMirrorsPath
70
+ - Add typedrequest SyncHandler with endpoints to create/update/delete/pause/trigger/preview sync configs and fetch repo statuses/logs
71
+ - Add sync data interfaces (ISyncConfig, ISyncRepoStatus, ISyncLogEntry) and action log integration for sync operations
72
+ - Add web UI: gitops-view-sync, appstate sync actions/selectors, and preview/status/modals for sync configs
73
+ - Add groupFilter and groupFilterId to connection model; migrate legacy baseGroup/baseGroupId to groupFilter fields on load
74
+ - Providers (Gitea/GitLab) and BaseProvider now accept groupFilterId and scope project/group listings accordingly (auto-pagination applies)
75
+ - Logging: add sync log buffer, getSyncLogs API, and broadcast sync log entries to connected clients via TypedSocket; web client listens and displays entries
76
+ - Update dependencies: bump @apiclient.xyz/gitea and gitlab versions and add @api.global/typedsocket
77
+ - Connections UI: expose Group Filter field and pass through on create/update
78
+
79
+ ## 2026-02-24 - 2.7.1 - fix(repo)
80
+ update file metadata (mode/permissions) without content changes
81
+
82
+ - One file changed: metadata-only (+1,-1).
83
+ - No source or behavior changes — safe to bump patch version.
84
+ - Change likely involves file mode/permission or metadata update only.
85
+
86
+ ## 2026-02-24 - 2.7.0 - feat(secrets)
87
+ add ability to fetch and view all secrets across projects and groups, include scopeName, and improve frontend merging/filtering
88
+
89
+ - Add new typed request and handler getAllSecrets to opsserver to bulk-fetch secrets across projects or groups (batched and using Promise.allSettled for performance).
90
+ - Extend ISecret with scopeName and update provider mappings (Gitea/GitLab) and secret return values to include scopeName.
91
+ - Frontend: add fetchAllSecretsAction, add an "All" option in the Secrets view, filter table by selected entity or show all, and disable "Add Secret" when "All" is selected.
92
+ - Create/update actions now merge only the affected entity's secrets into state instead of replacing the entire list; delete now filters by key+scope+scopeId to avoid removing unrelated secrets.
93
+ - UI: table now shows a Scope column using scopeName (or fallback to scopeId), selection changes trigger reloading of entities and secrets.
94
+
95
+ ## 2026-02-24 - 2.6.2 - fix(meta)
96
+ update file metadata only (no source changes)
97
+
98
+ - One file changed: metadata-only (e.g. permissions/mode) with no content modifications.
99
+ - No code, dependency, or API changes detected; safe patch release recommended.
100
+ - Bump patch version from 2.6.1 to 2.6.2.
101
+
102
+ ## 2026-02-24 - 2.6.1 - fix(package.json)
103
+ apply metadata-only update (no functional changes)
104
+
105
+ - Change is metadata-only (+1 -1) in a single file — no code or behavior changes
106
+ - Current package.json version is 2.6.0; recommend a patch bump to 2.6.1
107
+
108
+ ## 2026-02-24 - 2.6.0 - feat(webhook)
109
+ add webhook endpoint and client push notifications, auto-refresh UI, and gitea id mapping fixes
110
+
111
+ - Add WebhookHandler with POST /webhook/:connectionId that parses provider-specific headers and broadcasts webhookNotification via TypedSocket to connected clients
112
+ - Frontend: add auto-refresh toggle, refresh-interval action, dashboard auto-refresh timer, and views subscribing to gitops-auto-refresh events to refresh data
113
+ - Frontend: add WebSocket client with reconnect logic to receive push notifications and trigger auto-refresh on webhook events
114
+ - Gitea provider: prefer repository full_name and organization name when mapping project and group ids to ensure stable identifiers
115
+ - Bump devDependencies: @git.zone/tsbundle ^2.9.0 and @git.zone/tswatch ^3.2.0
116
+ - Add ts_bundled/bundle.js and bundle.js.map to .gitignore
117
+
118
+ ## 2026-02-24 - 2.5.0 - feat(gitea-provider)
119
+ auto-paginate Gitea repository and organization listing; respect explicit page option and default perPage to 50
120
+
121
+ - getProjects and getGroups now auto-fetch all pages when opts.page is not provided
122
+ - When opts.page is provided, the provider respects it and does not auto-paginate
123
+ - Defaults perPage to 50 for paginated requests
124
+ - Dependency @design.estate/dees-catalog bumped from ^3.43.0 to ^3.43.3
125
+
126
+ ## 2026-02-24 - 2.4.0 - feat(opsserver)
127
+ serve embedded frontend bundle from committed ts_bundled instead of using external dist_serve directory
128
+
129
+ - Switch server to use bundledContent from committed ts_bundled bundle (base64ts) instead of pointing at a serveDir
130
+ - Update bundler config to emit ./ts_bundled/bundle.ts with outputMode 'base64ts' and includeFiles mapping
131
+ - Remove dist_serve from .gitignore and commit ts_bundled (embedded frontend bundle)
132
+ - Bump devDependency @git.zone/tsbundle to ^2.8.4 and deno dependency @api.global/typedserver to ^8.3.1
133
+
134
+ ## 2026-02-24 - 2.3.0 - feat(storage)
135
+ add StorageManager and cache subsystem; integrate storage into ConnectionManager and GitopsApp, migrate legacy connections, and add tests
136
+
137
+ - Add StorageManager with filesystem and memory backends, key normalization, atomic writes and JSON helpers (getJSON/setJSON).
138
+ - ConnectionManager now depends on StorageManager, persists each connection as /connections/<id>.json, and includes a one-time migration from legacy .nogit/connections.json.
139
+ - Introduce cache subsystem: CacheDb (LocalTsmDb + Smartdata), CacheCleaner, CachedDocument and CachedProject for TTL'd cached provider data, plus lifecycle management in GitopsApp.
140
+ - GitopsApp now initializes StorageManager, wires ConnectionManager to storage, starts/stops CacheDb and CacheCleaner, and uses resolved default paths via resolvePaths.
141
+ - Export smartmongo and smartdata in plugins and add corresponding deps to deno.json.
142
+ - Add comprehensive tests: storage unit tests, connection manager integration using StorageManager, and a tsmdb + smartdata spike test.
143
+
144
+ ## 2026-02-24 - 2.2.1 - fix(ts_bundled)
145
+ add generated bundled JavaScript and source map for ts build (bundle.js and bundle.js.map)
146
+
147
+ - Added ts_bundled/bundle.js (≈168 KB) - compiled/bundled output from ts sources
148
+ - Added ts_bundled/bundle.js.map (≈309 KB) - source map referencing ../ts/index.ts and ../ts_web/index.ts
149
+ - This is generated build output (deno bundle) and does not change runtime API
150
+
151
+ ## 2026-02-24 - 2.2.0 - feat(opsserver)
152
+ Serve bundled frontend from a dedicated dist_serve directory and update frontend UI/packaging
153
+
154
+ - Serve static site using UtilityWebsiteServer with serveDir set to ./dist_serve and pass port into server.start()
155
+ - Update bundler config: output bundle to ./dist_serve/bundle.js, change outputMode to 'bundle', and include html/index.html
156
+ - Move root index.html into html/index.html and update .gitignore to ignore dist_serve/ (replace ts_bundled)
157
+ - Frontend enhancements: add iconName to view tabs and resolvedViewTabs, add Lucide icons for each tab, replace manual stats markup with dees-statsgrid using IStatsTile tiles
158
+ - Adjust shared CSS: center content, set max-width 1280px and adjust padding
159
+ - Add npm test script and rename/update tests (test.basic.ts -> test.basic_test.ts)
160
+
161
+ ## 2026-02-24 - 2.1.0 - feat(opsserver)
162
+ switch to TypedServer and serve bundled UI assets; add index.html; update bundling output and dev watch configuration
163
+
164
+ - Replace UtilityWebsiteServer with TypedServer and load bundledContent from ts_bundled/bundle.ts; enable cors, spaFallback, injectReload, watch, and compression
165
+ - Add a minimal index.html SPA entry and include it in the bundle so it is served from the bundled assets
166
+ - Change tsbundle output to ./ts_bundled/bundle.ts with outputMode 'base64ts' and includeFiles ['./index.html']
167
+ - Add a tswatch bundle config and replace the previous watcher with a backend watcher that runs the server via 'deno run --allow-all mod.ts server' (restart enabled)
168
+ - Bump devDependency @git.zone/tswatch from ^2.3.13 to ^3.1.0 and update .gitignore to ignore ts_bundled/
169
+
170
+ ## 2026-02-24 - 2.0.0 - BREAKING CHANGE(providers)
171
+ switch GitLab and Gitea providers to use @apiclient.xyz client libraries and export clients via plugins
172
+
173
+ - Add new dependencies: @apiclient.xyz/gitea@^1.0.3 and @apiclient.xyz/gitlab@^2.0.3 in deno.json
174
+ - Export giteaClient and gitlabClient from ts/plugins.ts
175
+ - Refactor GiteaProvider to use plugins.giteaClient.GiteaClient for all API interactions and update mapping types/fields
176
+ - Refactor GitLabProvider to use plugins.gitlabClient.GitLabClient for all API interactions and update mapping types/fields
177
+ - Remove BaseProvider.apiFetch helper and setAuthHeader abstract method (breaking change to BaseProvider API)
178
+ - Adjust mapping logic: simplify Gitea visibility, change group name/path and webUrl construction, update GitLab topics and projectCount handling
179
+
180
+ ## 2026-02-24 - 1.0.0 - initial release
181
+ Initial commit and first release of the project.
182
+
183
+ - Project initialized with the initial codebase and repository scaffold.
184
+ - Base files and basic configuration added.
185
+ - Tagged first release as 1.0.0.
package/cli.child.js ADDED
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env node
2
+ process.env.CLI_CALL = 'true';
3
+ const cliTool = await import('./ts/index.js');
4
+ await cliTool.runCli();
package/cli.js ADDED
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env node
2
+ process.env.CLI_CALL = 'true';
3
+ const cliTool = await import('./dist_ts/index.js');
4
+ await cliTool.runCli();
package/cli.ts.js ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env node
2
+ process.env.CLI_CALL = 'true';
3
+
4
+ import * as tsrun from '@git.zone/tsrun';
5
+ tsrun.runPath('./cli.child.js', import.meta.url);
package/deno.json ADDED
@@ -0,0 +1,10 @@
1
+ {
2
+ "name": "@serve.zone/gitops",
3
+ "version": "2.13.1",
4
+ "exports": "./binary/gitops.ts",
5
+ "compile": {
6
+ "include": [
7
+ "dist_serve"
8
+ ]
9
+ }
10
+ }