agent_coder
d0d3c068ba
feat(stacks): file-based stack versioning with full history + rollback ( #27 )
...
Adds append-only version history on disk (compose/{id}/v{N}/<files>) for
file-based (WorkflowID==0) Compose/Swarm stacks, with rollback to any past
version. Git stacks (versioned by commit) and Kubernetes are untouched.
Backend:
- Stack model: StackFileVersion, PreviousDeploymentInfo, Versions[]; new
StackFileVersionInfo type. APIVersion 2.43.0 -> 2.44.0.
- Versioned multi-file snapshot (entrypoint + AdditionalFiles) into v{N}/;
ProjectPath repointed via GetStackProjectPathByVersion each deploy. Retention
cap (20): Versions[] trimmed in-tx, old dirs deleted only AFTER the tx commits.
- Update handlers: RollbackTo (content read server-side from the target version,
never trusted from the client; validated 1..current & present in Versions).
- Create paths seed v1. stackFile reads ?version= (validated; negative -> 400).
- New GET /stacks/{id}/versions endpoint.
- Migration 2.44.0: move existing file-based stacks' files into v1/ (idempotent,
atomic pre-read of the full file set, skips git/kube/orphans).
Frontend:
- useStackVersions query + stackVersions key; StackEditorTab builds the full
history list; StackVersionSelector shows 'v{N} · date · author'; file/versions
caches invalidated (by prefix) after deploy/rollback.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-02 16:07:26 +03:00
andres-portainer
26334e9088
feat(ssrf): add missing transport wrappings and more checks BE-13021 ( #2968 )
2026-06-19 20:26:03 -03:00
Chaim Lev-Ari
fcdd6b4510
feat(stacks): use source id to create git stacks [BE-13043] ( #2870 )
...
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-15 18:49:26 +03:00
andres-portainer
0da42c01b6
feat(gitcredential): remove GitCredential BE-12919 ( #2838 )
2026-06-11 18:53:24 -03:00
andres-portainer
df7a4b5d6f
feat(gitops): improve the data model BE-12919 ( #2819 )
2026-06-08 15:01:55 -03:00
Oscar Zhou
a54fc041b0
fix(stacks): git polling failures caused by cancelled deployment context [BE-12980] ( #2751 )
2026-06-03 16:12:07 +12:00
andres-portainer
ab4626e7de
feat(workflows): introduce Artifacts BE-12919 ( #2740 )
2026-05-26 16:17:32 -03:00
andres-portainer
3d09c70e13
feat(sources): add sources and workflows to the backend BE-12919 ( #2666 )
2026-05-20 20:42:10 -03:00
Oscar Zhou
a117e514e4
fix(stack): persist CreatedBy before deployment to prevent broken auto update [BE-12939] ( #2588 )
2026-05-11 12:54:04 +12:00
Oscar Zhou
463d539194
refactor(stack): change stack update flow to async model [BE-12741] ( #2306 )
2026-04-22 10:05:17 +12:00
andres-portainer
9d3f7b710d
fix(tests): enable more parallel tests BE-12801 ( #2316 )
2026-04-18 01:53:10 -03:00
andres-portainer
68453ebcb8
chore(stackbuilders): simplify the code BE-12800 ( #2230 )
2026-04-09 17:45:24 -03:00
andres-portainer
8f563220df
chore(code): clean-up the code BE-12818 ( #2260 )
2026-04-08 20:04:27 -03:00
andres-portainer
1298fc629e
chore(tests): allow for the tests to run in parallel BE-12801 ( #2231 )
2026-04-07 17:38:22 -03:00
Oscar Zhou
5aba61cc49
refactor(stack): create stack and deploy stack in async flow CE [BE-12650] ( #2238 )
2026-04-07 09:18:54 +12:00
andres-portainer
50056bef70
fix(context): clean up context usage BE-12766 ( #2164 )
2026-04-01 18:02:48 -03:00
Chaim Lev-Ari
a2fee4fc4c
fix(stacks): pass prune option through the deploy pipeline [BE-12738] ( #2098 )
...
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-22 12:37:40 +02:00
Oscar Zhou
5869a8948d
refactor(stack): change stack creation flow to save stack first [BE-12650] ( #1959 )
2026-02-27 10:14:17 +13:00
andres-portainer
71c000756b
chore(linters): enforce error checking in CE BE-12527 ( #1723 )
2026-01-26 14:37:55 -03:00
Devon Steenberg
6ca0085ec8
fix(stackbuilders): swarm and k8s deploys [BE-12138] ( #1003 )
2025-08-11 15:44:36 +12:00
andres-portainer
64ed988169
fix(linters): upgrade golangci-lint to v2.3.1 BE-12136 ( #997 )
2025-08-08 21:39:21 -03:00
andres-portainer
6e7a42727a
chore(kompose): remove the code EE-4917 ( #12003 )
2024-07-08 17:19:07 -03:00
andres-portainer
f0d43f941f
chore(code): replace interface{} with any EE-6513 ( #11986 )
2024-06-28 14:59:28 -03:00
andres-portainer
bfa27d9103
chore(code): clean up the code EE-7251 ( #11948 )
2024-06-18 15:59:12 -03:00
andres-portainer
8cc5e0796c
feat(libhttp): move into the Portainer repository EE-5475 ( #10231 )
2023-09-01 19:27:02 -03:00
andres-portainer
64b227b2e1
chore(code): clean up the code EE-5719 ( #9183 )
2023-07-10 23:26:54 -03:00
Oscar Zhou
2ac70b1eb6
feat(gitops): reword automatic update to gitops update for ui and docs ( #9067 )
2023-06-13 15:32:10 +12:00
Oscar Zhou
c650868fe9
feat(templates): allow managing git based templates [EE-2600] ( #7855 )
...
Co-authored-by: itsconquest <william.conquest@portainer.io >
Co-authored-by: oscarzhou <oscar.zhou@portainer.io >
Co-authored-by: Chaim Lev-Ari <chiptus@users.noreply.github.com >
2023-04-04 12:44:42 +12:00
Chaim Lev-Ari
feab2a757e
feat(gitops): allow to skip tls verification [EE-5023] ( #8668 )
2023-04-03 09:19:17 +03:00
Chaim Lev-Ari
6918da2414
refactor(stacks): extract auto update logic [EE-4945] ( #8545 )
2023-03-02 17:07:50 +02:00
Ali
ac6f52ab76
fix(gitapp): set manifest in git settings [EE-4734] ( #8190 )
2022-12-14 14:30:15 +13:00
Oscar Zhou
e9de484c3e
refactor(stack): stack build process backend only [EE-4342] ( #7750 )
2022-10-05 22:33:59 +13:00