From 00901cf5bf0b618651e185ad796c0502a7735380 Mon Sep 17 00:00:00 2001 From: Anso Date: Tue, 14 Apr 2026 22:32:42 -0400 Subject: [PATCH] fix(git-sources): harden validation, RBAC, concurrency, and deploy recovery (#603) * fix(git-sources): harden validation, RBAC, concurrency, and deploy recovery Tightens the surface area around the Git source feature: - Enforce HTTPS-only repo URLs server-side (regex was permissive). - Add stack:read permission check on git-source reads and filter the list endpoint by callable permission. - Validate stack names before permission checks on mutation routes so scoped lookups never see unvalidated input. - Cap repo_url / branch / compose_path / env_path / token lengths and require the stack directory to exist before upsert. - Wrap pull() in the per-stack mutex to eliminate the pull/delete race that could orphan pending data. - Block .git/ path components in compose_path / env_path so a misconfigured clone cannot leak repo metadata. - Return {applied, deployed, deployError?} on deploy failure instead of throwing, and surface deployError as a warning toast so the user can retry deploy without re-pulling. - Always clean the stack_git_sources row on stack delete even when the file deletion step fails. - Add shadow-card-bevel to the pending alert and metadata card per the design system. - Handle the new 403 response on the panel fetch gracefully. - Add diagnostic logging gated on developer_mode (isDebugEnabled) across fetch / pull / apply / webhook paths with credential scrubbing. * test(git-sources): expand coverage for hardening and route validation - New route-level suite covers HTTPS enforcement, required fields, max-length caps on repo_url / branch / compose_path / env_path / token, the stack-existence 404 guard, and GET authz. - Service tests cover the .git metadata guard on compose and env paths (including nested and substring-containing "git"), pull and apply rejections when no source is configured or pending is cleared, the sha-mismatch branch, and the deploy-failure return shape that now carries deployError. - E2E adds three server-side contract assertions: PUT against a missing stack returns 404, http:// is rejected with 400, and .git/config is rejected as compose_path. * docs(git-sources): document deploy-failure recovery path Adds a Troubleshooting entry explaining that when apply succeeds but the subsequent deploy fails, the compose content is already on disk and the user can retry deploy from the stack editor without re-pulling. * docs(git-sources): add configuration, diff, pending, and webhook screenshots --- .../src/__tests__/git-source-routes.test.ts | 181 +++++++++++++++++ .../src/__tests__/git-source-service.test.ts | 107 ++++++++++ backend/src/index.ts | 76 +++++-- backend/src/services/GitSourceService.ts | 185 ++++++++++++++---- docs/features/git-sources.mdx | 4 + docs/images/git-sources/diff-dialog.png | Bin 0 -> 60990 bytes docs/images/git-sources/panel.png | Bin 0 -> 50851 bytes docs/images/git-sources/sidebar-badge.png | Bin 0 -> 7872 bytes docs/images/git-sources/webhook-action.png | Bin 0 -> 117878 bytes e2e/git-sources.spec.ts | 64 ++++++ .../src/components/stack/GitSourcePanel.tsx | 17 +- 11 files changed, 575 insertions(+), 59 deletions(-) create mode 100644 backend/src/__tests__/git-source-routes.test.ts create mode 100644 docs/images/git-sources/diff-dialog.png create mode 100644 docs/images/git-sources/panel.png create mode 100644 docs/images/git-sources/sidebar-badge.png create mode 100644 docs/images/git-sources/webhook-action.png diff --git a/backend/src/__tests__/git-source-routes.test.ts b/backend/src/__tests__/git-source-routes.test.ts new file mode 100644 index 00000000..001ddf97 --- /dev/null +++ b/backend/src/__tests__/git-source-routes.test.ts @@ -0,0 +1,181 @@ +/** + * Route-layer tests for the git-source API. + * + * Covers input-validation and guard behavior that lives in the Express + * handlers (not in GitSourceService), specifically: + * - HTTPS-only repo URL enforcement + * - Max-length caps on repo_url / branch / compose_path / env_path / token + * - Stack-existence 404 guard on PUT + * - 400 on invalid stack names + * + * Service-layer logic (encryption, error mapping, mutex, pending lifecycle) + * is covered in git-source-service.test.ts. + */ +import { describe, it, expect, beforeAll, afterAll } from 'vitest'; +import request from 'supertest'; +import jwt from 'jsonwebtoken'; +import fs from 'fs'; +import path from 'path'; +import { setupTestDb, cleanupTestDb, TEST_USERNAME, TEST_JWT_SECRET } from './helpers/setupTestDb'; + +let tmpDir: string; +let app: import('express').Express; + +function adminToken(): string { + return jwt.sign({ username: TEST_USERNAME, role: 'admin' }, TEST_JWT_SECRET, { expiresIn: '1m' }); +} + +beforeAll(async () => { + tmpDir = await setupTestDb(); + ({ app } = await import('../index')); + + // Seed a real stack directory so the PUT handler's existence guard is satisfied + // for tests that need to exercise validation past that point. + const composeDir = process.env.COMPOSE_DIR!; + fs.mkdirSync(path.join(composeDir, 'existing-stack'), { recursive: true }); + fs.writeFileSync(path.join(composeDir, 'existing-stack', 'compose.yaml'), 'services:\n x:\n image: nginx\n'); +}); + +afterAll(() => { + cleanupTestDb(tmpDir); +}); + +describe('PUT /api/stacks/:stackName/git-source — URL validation', () => { + it('rejects http:// URLs with 400', async () => { + const res = await request(app) + .put('/api/stacks/existing-stack/git-source') + .set('Authorization', `Bearer ${adminToken()}`) + .send({ + repo_url: 'http://github.com/example/repo.git', + branch: 'main', + compose_path: 'compose.yaml', + auth_type: 'none', + }); + expect(res.status).toBe(400); + expect(res.body.error).toMatch(/HTTPS/i); + }); + + it('rejects missing repo_url with 400', async () => { + const res = await request(app) + .put('/api/stacks/existing-stack/git-source') + .set('Authorization', `Bearer ${adminToken()}`) + .send({ + branch: 'main', + compose_path: 'compose.yaml', + auth_type: 'none', + }); + expect(res.status).toBe(400); + expect(res.body.error).toMatch(/repo_url/i); + }); +}); + +describe('PUT /api/stacks/:stackName/git-source — max-length caps', () => { + const baseBody = { + branch: 'main', + compose_path: 'compose.yaml', + auth_type: 'none' as const, + }; + + it('rejects oversized repo_url', async () => { + const res = await request(app) + .put('/api/stacks/existing-stack/git-source') + .set('Authorization', `Bearer ${adminToken()}`) + .send({ ...baseBody, repo_url: 'https://example.com/' + 'a'.repeat(2048) }); + expect(res.status).toBe(400); + expect(res.body.error).toMatch(/repo_url/i); + }); + + it('rejects oversized branch', async () => { + const res = await request(app) + .put('/api/stacks/existing-stack/git-source') + .set('Authorization', `Bearer ${adminToken()}`) + .send({ + ...baseBody, + repo_url: 'https://github.com/example/repo.git', + branch: 'b'.repeat(300), + }); + expect(res.status).toBe(400); + expect(res.body.error).toMatch(/branch/i); + }); + + it('rejects oversized compose_path', async () => { + const res = await request(app) + .put('/api/stacks/existing-stack/git-source') + .set('Authorization', `Bearer ${adminToken()}`) + .send({ + ...baseBody, + repo_url: 'https://github.com/example/repo.git', + compose_path: 'c'.repeat(1100), + }); + expect(res.status).toBe(400); + expect(res.body.error).toMatch(/compose_path/i); + }); + + it('rejects oversized env_path', async () => { + const res = await request(app) + .put('/api/stacks/existing-stack/git-source') + .set('Authorization', `Bearer ${adminToken()}`) + .send({ + ...baseBody, + repo_url: 'https://github.com/example/repo.git', + env_path: 'e'.repeat(1100), + }); + expect(res.status).toBe(400); + expect(res.body.error).toMatch(/env_path/i); + }); + + it('rejects oversized token', async () => { + const res = await request(app) + .put('/api/stacks/existing-stack/git-source') + .set('Authorization', `Bearer ${adminToken()}`) + .send({ + ...baseBody, + repo_url: 'https://github.com/example/repo.git', + auth_type: 'token', + token: 't'.repeat(9000), + }); + expect(res.status).toBe(400); + expect(res.body.error).toMatch(/token/i); + }); +}); + +describe('PUT /api/stacks/:stackName/git-source — stack existence guard', () => { + it('returns 404 when the stack does not exist on the active node', async () => { + const res = await request(app) + .put('/api/stacks/ghost-stack/git-source') + .set('Authorization', `Bearer ${adminToken()}`) + .send({ + repo_url: 'https://github.com/example/repo.git', + branch: 'main', + compose_path: 'compose.yaml', + auth_type: 'none', + }); + expect(res.status).toBe(404); + expect(res.body.error).toMatch(/stack not found/i); + }); +}); + +describe('git-source routes — invalid stack names', () => { + it('returns 400 for traversal attempts on GET per-stack', async () => { + const res = await request(app) + .get('/api/stacks/..%2fescape/git-source') + .set('Authorization', `Bearer ${adminToken()}`); + // URL-decoded name `../escape` fails isValidStackName. + expect([400, 404]).toContain(res.status); + }); +}); + +describe('GET /api/git-sources', () => { + it('returns 200 and a JSON array for an authenticated admin', async () => { + const res = await request(app) + .get('/api/git-sources') + .set('Authorization', `Bearer ${adminToken()}`); + expect(res.status).toBe(200); + expect(Array.isArray(res.body)).toBe(true); + }); + + it('returns 401 without a valid token', async () => { + const res = await request(app).get('/api/git-sources'); + expect(res.status).toBe(401); + }); +}); diff --git a/backend/src/__tests__/git-source-service.test.ts b/backend/src/__tests__/git-source-service.test.ts index 8fda8a11..51243c0b 100644 --- a/backend/src/__tests__/git-source-service.test.ts +++ b/backend/src/__tests__/git-source-service.test.ts @@ -446,3 +446,110 @@ describe('GitSourceService per-stack mutex', () => { expect(order.indexOf('beta:end')).toBeLessThan(order.indexOf('alpha:end')); }); }); + +describe('GitSourceService.fetchFromGit (.git metadata guard)', () => { + const svc = () => GitSourceService.getInstance(); + + it('rejects compose paths that target the .git directory', async () => { + await expect(svc().fetchFromGit({ + repoUrl: 'https://github.com/example/repo.git', + branch: 'main', + composePath: '.git/config', + })).rejects.toMatchObject({ code: 'FILE_NOT_FOUND' }); + expect(mockGitClone).not.toHaveBeenCalled(); + }); + + it('rejects nested .git paths', async () => { + await expect(svc().fetchFromGit({ + repoUrl: 'https://github.com/example/repo.git', + branch: 'main', + composePath: 'subdir/.git/HEAD', + })).rejects.toMatchObject({ code: 'FILE_NOT_FOUND' }); + }); + + it('rejects env paths that target the .git directory', async () => { + await expect(svc().fetchFromGit({ + repoUrl: 'https://github.com/example/repo.git', + branch: 'main', + composePath: 'compose.yaml', + envPath: '.git/config', + })).rejects.toMatchObject({ code: 'FILE_NOT_FOUND' }); + }); + + it('allows paths that merely contain the substring "git"', async () => { + mockSuccessfulClone({ composePath: 'gitops.yaml' }); + await expect(svc().fetchFromGit({ + repoUrl: 'https://github.com/example/repo.git', + branch: 'main', + composePath: 'gitops.yaml', + })).resolves.toBeDefined(); + }); +}); + +describe('GitSourceService.pull', () => { + it('rejects when no Git source is configured for the stack', async () => { + const svc = GitSourceService.getInstance(); + await expect(svc.pull('does-not-exist')).rejects.toMatchObject({ code: 'GIT_ERROR' }); + }); +}); + +describe('GitSourceService.apply', () => { + async function seedPending(stackName: string, composeContent: string, commitSha: string) { + mockSuccessfulClone({ compose: composeContent, sha: commitSha }); + const svc = GitSourceService.getInstance(); + await svc.upsert({ + stackName, + repoUrl: 'https://github.com/example/repo.git', + branch: 'main', + composePath: 'compose.yaml', + syncEnv: false, + envPath: null, + authType: 'none', + autoApplyOnWebhook: false, + autoDeployOnApply: false, + }); + await svc.pull(stackName); + return svc; + } + + it('throws when pending has been cleared between pull and apply', async () => { + const svc = await seedPending('apply-cleared', 'services:\n x:\n image: alpine\n', 'aaaa111aaaa111aaaa111aaaa111aaaa111aaaa1'); + DatabaseService.getInstance().clearGitSourcePending('apply-cleared'); + await expect(svc.apply('apply-cleared', 'aaaa111aaaa111aaaa111aaaa111aaaa111aaaa1')) + .rejects.toMatchObject({ code: 'GIT_ERROR', message: expect.stringMatching(/no pending pull/i) }); + }); + + it('throws when the commit sha does not match the pending sha', async () => { + const svc = await seedPending('apply-mismatch', 'services:\n x:\n image: alpine\n', 'bbbb222bbbb222bbbb222bbbb222bbbb222bbbb2'); + await expect(svc.apply('apply-mismatch', 'deadbeef1234567890deadbeef1234567890dead')) + .rejects.toMatchObject({ code: 'GIT_ERROR', message: expect.stringMatching(/pending commit has changed/i) }); + }); + + it('returns deployError when the deploy step fails after writing to disk', async () => { + const sha = 'cccc333cccc333cccc333cccc333cccc333cccc3'; + const svc = await seedPending('apply-deploy-fail', 'services:\n x:\n image: alpine\n', sha); + + // Stub validation (docker compose config is expensive and not needed here) + const validateSpy = vi.spyOn(svc, 'validateCompose').mockResolvedValue({ ok: true }); + // Stub file write (FileSystemService expects a real stack dir) + const { FileSystemService } = await import('../services/FileSystemService'); + const saveSpy = vi.spyOn(FileSystemService.prototype, 'saveStackContent').mockResolvedValue(); + + // Deploy will fail organically (docker CLI unavailable in the test env). + // We only assert the return SHAPE: apply must not throw, deployError must + // carry the failure detail so the UI can surface "applied but not deployed". + const result = await svc.apply('apply-deploy-fail', sha, { deploy: true }); + expect(result.applied).toBe(true); + expect(result.deployed).toBe(false); + expect(result.deployError).toBeTruthy(); + + // Disk write happened; DB was marked applied even though deploy failed. + expect(saveSpy).toHaveBeenCalled(); + const row = DatabaseService.getInstance().getGitSource('apply-deploy-fail'); + expect(row?.last_applied_commit_sha).toBe(sha); + expect(row?.pending_commit_sha).toBeNull(); + + validateSpy.mockRestore(); + saveSpy.mockRestore(); + }); +}); diff --git a/backend/src/index.ts b/backend/src/index.ts index f29de66e..fd001b20 100644 --- a/backend/src/index.ts +++ b/backend/src/index.ts @@ -3717,10 +3717,13 @@ function sendGitSourceError(res: Response, err: unknown): void { res.status(500).json({ error: 'Git source operation failed' }); } -app.get('/api/git-sources', async (_req: Request, res: Response) => { +app.get('/api/git-sources', async (req: Request, res: Response) => { try { - const sources = GitSourceService.getInstance().list(); - res.json(sources); + const all = GitSourceService.getInstance().list(); + // Filter to the subset of stacks the caller can read. Keeps scoped + // Admiral roles from discovering git config for stacks outside their grant. + const visible = all.filter(src => checkPermission(req, 'stack:read', 'stack', src.stack_name)); + res.json(visible); } catch (error) { sendGitSourceError(res, error); } @@ -3731,6 +3734,7 @@ app.get('/api/stacks/:stackName/git-source', async (req: Request, res: Response) if (!isValidStackName(stackName)) { return res.status(400).json({ error: 'Invalid stack name' }); } + if (!requirePermission(req, res, 'stack:read', 'stack', stackName)) return; try { const source = GitSourceService.getInstance().get(stackName); if (!source) return res.status(404).json({ error: 'No Git source configured for this stack' }); @@ -3742,10 +3746,10 @@ app.get('/api/stacks/:stackName/git-source', async (req: Request, res: Response) app.put('/api/stacks/:stackName/git-source', async (req: Request, res: Response) => { const stackName = req.params.stackName as string; - if (!requirePermission(req, res, 'stack:edit', 'stack', stackName)) return; if (!isValidStackName(stackName)) { return res.status(400).json({ error: 'Invalid stack name' }); } + if (!requirePermission(req, res, 'stack:edit', 'stack', stackName)) return; try { const { repo_url, @@ -3771,9 +3775,36 @@ app.put('/api/stacks/:stackName/git-source', async (req: Request, res: Response) if (auth_type !== 'none' && auth_type !== 'token') { return res.status(400).json({ error: 'auth_type must be "none" or "token"' }); } - if (!/^https?:\/\//i.test(repo_url)) { + if (!/^https:\/\//i.test(repo_url)) { return res.status(400).json({ error: 'Only HTTPS repository URLs are supported' }); } + // Bound each field so a caller cannot flood the service with huge + // payloads. These limits are generous compared to anything a real Git + // provider would produce. + if (repo_url.length > 2048) { + return res.status(400).json({ error: 'repo_url is too long' }); + } + if (branch.length > 256) { + return res.status(400).json({ error: 'branch is too long' }); + } + if (compose_path.length > 1024) { + return res.status(400).json({ error: 'compose_path is too long' }); + } + if (typeof env_path === 'string' && env_path.length > 1024) { + return res.status(400).json({ error: 'env_path is too long' }); + } + if (typeof token === 'string' && token.length > 8192) { + return res.status(400).json({ error: 'token is too long' }); + } + + // Confirm the stack actually exists on the active node. Without this + // guard, a caller can stash a git-source row for a name that does not + // exist yet and have it auto-link when a stack with that name is + // later created. + const stacks = await FileSystemService.getInstance(req.nodeId).getStacks(); + if (!stacks.includes(stackName)) { + return res.status(404).json({ error: 'Stack not found' }); + } const syncEnv = Boolean(sync_env); const resolvedEnvPath = syncEnv @@ -3804,10 +3835,10 @@ app.put('/api/stacks/:stackName/git-source', async (req: Request, res: Response) app.delete('/api/stacks/:stackName/git-source', async (req: Request, res: Response) => { const stackName = req.params.stackName as string; - if (!requirePermission(req, res, 'stack:edit', 'stack', stackName)) return; if (!isValidStackName(stackName)) { return res.status(400).json({ error: 'Invalid stack name' }); } + if (!requirePermission(req, res, 'stack:edit', 'stack', stackName)) return; try { GitSourceService.getInstance().delete(stackName); console.log(`[GitSource] Removed git source for ${stackName}`); @@ -3819,10 +3850,10 @@ app.delete('/api/stacks/:stackName/git-source', async (req: Request, res: Respon app.post('/api/stacks/:stackName/git-source/pull', async (req: Request, res: Response) => { const stackName = req.params.stackName as string; - if (!requirePermission(req, res, 'stack:edit', 'stack', stackName)) return; if (!isValidStackName(stackName)) { return res.status(400).json({ error: 'Invalid stack name' }); } + if (!requirePermission(req, res, 'stack:edit', 'stack', stackName)) return; try { const result = await GitSourceService.getInstance().pull(stackName); res.json(result); @@ -3833,10 +3864,10 @@ app.post('/api/stacks/:stackName/git-source/pull', async (req: Request, res: Res app.post('/api/stacks/:stackName/git-source/apply', async (req: Request, res: Response) => { const stackName = req.params.stackName as string; - if (!requirePermission(req, res, 'stack:edit', 'stack', stackName)) return; if (!isValidStackName(stackName)) { return res.status(400).json({ error: 'Invalid stack name' }); } + if (!requirePermission(req, res, 'stack:edit', 'stack', stackName)) return; try { const { commitSha, deploy } = req.body ?? {}; if (typeof commitSha !== 'string' || !commitSha.trim()) { @@ -3848,7 +3879,14 @@ app.post('/api/stacks/:stackName/git-source/apply', async (req: Request, res: Re { deploy: typeof deploy === 'boolean' ? deploy : undefined } ); invalidateNodeCaches(req.nodeId); - console.log(`[GitSource] Applied commit ${commitSha.trim().slice(0, 7)} to ${stackName}${result.deployed ? ' (deployed)' : ''}`); + const shortSha = commitSha.trim().slice(0, 7); + if (result.deployed) { + console.log(`[GitSource] Applied commit ${shortSha} to ${stackName} (deployed)`); + } else if (result.deployError) { + console.warn(`[GitSource] Applied commit ${shortSha} to ${stackName}, deploy failed: ${result.deployError}`); + } else { + console.log(`[GitSource] Applied commit ${shortSha} to ${stackName}`); + } res.json(result); } catch (error) { sendGitSourceError(res, error); @@ -3857,10 +3895,10 @@ app.post('/api/stacks/:stackName/git-source/apply', async (req: Request, res: Re app.post('/api/stacks/:stackName/git-source/dismiss-pending', async (req: Request, res: Response) => { const stackName = req.params.stackName as string; - if (!requirePermission(req, res, 'stack:edit', 'stack', stackName)) return; if (!isValidStackName(stackName)) { return res.status(400).json({ error: 'Invalid stack name' }); } + if (!requirePermission(req, res, 'stack:edit', 'stack', stackName)) return; try { GitSourceService.getInstance().dismissPending(stackName); res.json({ success: true }); @@ -3907,16 +3945,24 @@ app.delete('/api/stacks/:stackName', async (req: Request, res: Response) => { console.warn(`[Teardown] Docker down failed or nothing to clean up for ${stackName}`); } - // Stage 2: Obliterate the files - await FileSystemService.getInstance(req.nodeId).deleteStack(stackName); + // Stage 2: Obliterate the files. Capture failure so Stage 3 still runs. + let fsErr: unknown = null; + try { + await FileSystemService.getInstance(req.nodeId).deleteStack(stackName); + } catch (err) { + fsErr = err; + console.error(`[Stacks] File deletion failed for ${stackName}, continuing with DB cleanup:`, err); + } - // Prevent stale update badges for deleted stacks + // Stage 3: DB cleanup. Runs unconditionally because an orphan git_source + // row would silently auto-link to a future stack with the same name, and + // stale scoped role assignments / update badges confuse the dashboard. DatabaseService.getInstance().clearStackUpdateStatus(req.nodeId, stackName); - // Clean up any scoped role assignments referencing this stack DatabaseService.getInstance().deleteRoleAssignmentsByResource('stack', stackName); - // Remove any linked Git source so it does not resurface on a future stack with the same name DatabaseService.getInstance().deleteGitSource(stackName); + if (fsErr) throw fsErr; + invalidateNodeCaches(req.nodeId); console.log(`[Stacks] Stack deleted: ${stackName}`); res.json({ success: true }); diff --git a/backend/src/services/GitSourceService.ts b/backend/src/services/GitSourceService.ts index 71d9d2bc..de924420 100644 --- a/backend/src/services/GitSourceService.ts +++ b/backend/src/services/GitSourceService.ts @@ -10,6 +10,7 @@ import { CryptoService } from './CryptoService'; import { DatabaseService, type StackGitSource, type GitSourceAuthType } from './DatabaseService'; import { FileSystemService } from './FileSystemService'; import { ComposeService } from './ComposeService'; +import { isDebugEnabled } from '../utils/debug'; /** * GitSourceService - fetch compose files from a Git repository and apply @@ -117,6 +118,35 @@ function scrubCredentials(message: string): string { .replace(/(password[:=]\s*)[^\s,;]+/gi, '$1***'); } +/** + * Extract just the hostname for log lines so we never echo a full + * repo URL that could contain an inline credential. Falls back to + * `unknown` for malformed URLs. + */ +function repoHost(url: string): string { + try { + return new URL(url).host || 'unknown'; + } catch { + return 'unknown'; + } +} + +/** + * Reject any relative path that resolves into the `.git` metadata + * directory. The path-traversal check in `fetchFromGit` already bounds + * paths to the clone dir, but without this guard a caller could still + * target `.git/config` (remote URL, potentially mis-configured inline + * credentials) via a path that stays inside the clone. Matches on any + * `.git` segment, case-insensitive, so `.GIT/config` is also rejected. + */ +function assertNotGitMeta(relPath: string, fieldName: string): void { + const normalized = relPath.replace(/\\/g, '/').replace(/^\.\//, '').toLowerCase(); + const segments = normalized.split('/').filter(Boolean); + if (segments.some(seg => seg === '.git')) { + throw new GitSourceError('FILE_NOT_FOUND', `${fieldName} cannot target the .git metadata directory.`); + } +} + // ─── Temp dir helpers ──────────────────────────────────────────────────────── async function createTempDir(): Promise { @@ -276,7 +306,22 @@ export class GitSourceService { public async fetchFromGit(params: FetchParams): Promise { const { repoUrl, branch, composePath, envPath, token } = params; const timeoutMs = params.timeoutMs ?? DEFAULT_FETCH_TIMEOUT_MS; + + // Reject any compose/env target that resolves inside the `.git` + // metadata directory BEFORE we spin up a clone. This blocks a + // caller from reading `.git/config` (which leaks the remote URL + // and any mis-configured inline credentials) via the fetch path. + assertNotGitMeta(composePath, 'compose_path'); + if (envPath) assertNotGitMeta(envPath, 'env_path'); + const dir = await createTempDir(); + const startedAt = Date.now(); + const diag = isDebugEnabled(); + if (diag) { + console.log( + `[GitSource:diag] fetch start host=${repoHost(repoUrl)} branch=${branch} compose=${composePath} envSync=${envPath ? 'true' : 'false'} timeoutMs=${timeoutMs}` + ); + } // isomorphic-git's onAuth callback hands credentials to the HTTP // layer without them touching the URL string, which keeps tokens @@ -358,7 +403,20 @@ export class GitSourceService { } } + if (diag) { + console.log( + `[GitSource:diag] fetch ok host=${repoHost(repoUrl)} branch=${branch} sha=${commitSha.slice(0, 7)} env=${envContent !== null ? 'present' : 'absent'} elapsedMs=${Date.now() - startedAt}` + ); + } return { composeContent, envContent, commitSha }; + } catch (err) { + if (diag) { + const msg = err instanceof GitSourceError ? `${err.code}: ${err.message}` : (err as Error).message; + console.log( + `[GitSource:diag] fetch fail host=${repoHost(repoUrl)} branch=${branch} elapsedMs=${Date.now() - startedAt} err=${scrubCredentials(msg)}` + ); + } + throw err; } finally { await removeTempDir(dir); } @@ -481,53 +539,83 @@ export class GitSourceService { // ─── Pull / apply ──────────────────────────────────────────────────────── public async pull(stackName: string): Promise { - const db = DatabaseService.getInstance(); - const src = db.getGitSource(stackName); - if (!src) throw new GitSourceError('GIT_ERROR', 'No Git source configured for this stack.'); + // Guarded by the same per-stack mutex as apply(). Without this, a + // concurrent delete-source + pull can land a pending row on a + // stack whose config row has just been removed; the DELETE clears + // the row but the subsequent setGitSourcePending re-inserts via + // UPDATE failing silently (no row), and a later upsert would + // inherit stale pending columns on read. + return this.withStackLock(stackName, async () => { + const db = DatabaseService.getInstance(); + const src = db.getGitSource(stackName); + if (!src) throw new GitSourceError('GIT_ERROR', 'No Git source configured for this stack.'); - const token = src.encrypted_token ? this.crypto.decrypt(src.encrypted_token) : null; - const fetched = await this.fetchFromGit({ - repoUrl: src.repo_url, - branch: src.branch, - composePath: src.compose_path, - envPath: src.sync_env ? src.env_path : null, - token, + const diag = isDebugEnabled(); + if (diag) { + console.log(`[GitSource:diag] pull start stack=${stackName} branch=${src.branch} host=${repoHost(src.repo_url)}`); + } + + const token = src.encrypted_token ? this.crypto.decrypt(src.encrypted_token) : null; + const fetched = await this.fetchFromGit({ + repoUrl: src.repo_url, + branch: src.branch, + composePath: src.compose_path, + envPath: src.sync_env ? src.env_path : null, + token, + }); + + const validation = await this.validateCompose(fetched.composeContent, fetched.envContent); + const disk = await this.readDiskContent(stackName, src.sync_env); + const currentHash = this.hashContent(disk.compose, disk.env); + const hasLocalChanges = src.last_applied_content_hash !== null + && src.last_applied_content_hash !== currentHash; + + // Store pending so a subsequent apply doesn't re-fetch. Compose files + // routinely contain secrets inlined as env interpolations or passwords, + // so encrypt the pending buffers at rest. + db.setGitSourcePending( + stackName, + fetched.commitSha, + this.crypto.encrypt(fetched.composeContent), + fetched.envContent !== null ? this.crypto.encrypt(fetched.envContent) : null, + ); + + console.log(`[GitSource] Pending update ready for ${stackName} at ${fetched.commitSha.slice(0, 7)} (validation=${validation.ok ? 'ok' : 'fail'}, localEdits=${hasLocalChanges})`); + if (diag) { + console.log(`[GitSource:diag] pull done stack=${stackName} sha=${fetched.commitSha.slice(0, 7)} validation=${validation.ok} localEdits=${hasLocalChanges}`); + } + + return { + commitSha: fetched.commitSha, + incomingCompose: fetched.composeContent, + incomingEnv: fetched.envContent, + currentCompose: disk.compose, + currentEnv: disk.env, + validation, + hasLocalChanges, + }; }); - - const validation = await this.validateCompose(fetched.composeContent, fetched.envContent); - const disk = await this.readDiskContent(stackName, src.sync_env); - const currentHash = this.hashContent(disk.compose, disk.env); - const hasLocalChanges = src.last_applied_content_hash !== null - && src.last_applied_content_hash !== currentHash; - - // Store pending so a subsequent apply doesn't re-fetch. Compose files - // routinely contain secrets inlined as env interpolations or passwords, - // so encrypt the pending buffers at rest. - db.setGitSourcePending( - stackName, - fetched.commitSha, - this.crypto.encrypt(fetched.composeContent), - fetched.envContent !== null ? this.crypto.encrypt(fetched.envContent) : null, - ); - - return { - commitSha: fetched.commitSha, - incomingCompose: fetched.composeContent, - incomingEnv: fetched.envContent, - currentCompose: disk.compose, - currentEnv: disk.env, - validation, - hasLocalChanges, - }; } /** * Apply a pending pull. Idempotent under the per-stack mutex: if two * clients hit /apply concurrently, the second one sees cleared pending * columns and gets a clean error rather than double-writing. + * + * Deploy failure policy: once the compose file has been written to + * disk, we never throw. Instead we return `deployed: false, + * deployError: ` so the UI can clearly show "applied, but + * deploy failed" and the caller can retry the deploy without having + * to re-pull. Throwing here would leave the user with a changed disk + * file and a confusing "apply failed" error message. */ - public async apply(stackName: string, commitSha: string, opts: { deploy?: boolean } = {}): Promise<{ applied: boolean; deployed: boolean }> { + public async apply( + stackName: string, + commitSha: string, + opts: { deploy?: boolean } = {}, + ): Promise<{ applied: boolean; deployed: boolean; deployError?: string }> { return this.withStackLock(stackName, async () => { + const diag = isDebugEnabled(); const db = DatabaseService.getInstance(); const src = db.getGitSource(stackName); if (!src) throw new GitSourceError('GIT_ERROR', 'No Git source configured for this stack.'); @@ -536,6 +624,7 @@ export class GitSourceService { throw new GitSourceError('GIT_ERROR', 'No pending pull to apply. Fetch the source again.'); } if (src.pending_commit_sha !== commitSha) { + if (diag) console.log(`[GitSource:diag] apply sha mismatch stack=${stackName} expected=${commitSha.slice(0, 7)} pending=${src.pending_commit_sha.slice(0, 7)}`); throw new GitSourceError('GIT_ERROR', 'Pending commit has changed since this pull was fetched. Please review the latest diff.'); } @@ -549,6 +638,7 @@ export class GitSourceService { // Re-validate before writing. const validation = await this.validateCompose(composeContent, envContent); if (!validation.ok) { + if (diag) console.log(`[GitSource:diag] apply validation fail stack=${stackName}`); throw new GitSourceError('GIT_ERROR', `Compose validation failed: ${validation.error}`); } @@ -562,15 +652,23 @@ export class GitSourceService { db.markGitSourceApplied(stackName, commitSha, hash); const shouldDeploy = opts.deploy ?? src.auto_deploy_on_apply; + if (diag) console.log(`[GitSource:diag] apply wrote stack=${stackName} sha=${commitSha.slice(0, 7)} deploy=${shouldDeploy}`); + if (shouldDeploy) { try { await ComposeService.getInstance().deployStack(stackName); + console.log(`[GitSource] Applied and deployed ${stackName} at ${commitSha.slice(0, 7)}`); return { applied: true, deployed: true }; } catch (e) { - console.error(`[GitSourceService] Auto-deploy failed for ${stackName}:`, (e as Error).message); - throw new GitSourceError('GIT_ERROR', `Applied file but deploy failed: ${(e as Error).message}`); + // File is on disk, DB is marked applied. Returning the + // error separately lets the UI flag it as a partial + // success rather than rolling back the disk. + const scrubbed = scrubCredentials((e as Error).message || String(e)); + console.error(`[GitSource] Auto-deploy failed for ${stackName}: ${scrubbed}`); + return { applied: true, deployed: false, deployError: scrubbed }; } } + console.log(`[GitSource] Applied ${stackName} at ${commitSha.slice(0, 7)}`); return { applied: true, deployed: false }; }); } @@ -586,6 +684,7 @@ export class GitSourceService { * record in webhook_executions. Enforces the per-source debounce. */ public async handleWebhookPull(stackName: string): Promise<{ status: 'success' | 'skipped' | 'error'; message: string }> { + const diag = isDebugEnabled(); const db = DatabaseService.getInstance(); const src = db.getGitSource(stackName); if (!src) { @@ -594,6 +693,7 @@ export class GitSourceService { const now = Date.now(); if (src.last_debounce_at !== null && (now - src.last_debounce_at) < WEBHOOK_DEBOUNCE_MS) { + if (diag) console.log(`[GitSource:diag] webhook debounced stack=${stackName} age=${now - src.last_debounce_at}ms`); return { status: 'skipped', message: 'Rate limited (debounced).' }; } @@ -608,10 +708,17 @@ export class GitSourceService { } if (!src.auto_apply_on_webhook) { + if (diag) console.log(`[GitSource:diag] webhook pending-only stack=${stackName} sha=${pullResult.commitSha.slice(0, 7)}`); return { status: 'success', message: `Pending update ready at ${pullResult.commitSha.slice(0, 7)}.` }; } const applied = await this.apply(stackName, pullResult.commitSha, { deploy: src.auto_deploy_on_apply }); + if (applied.deployError) { + // Apply wrote to disk but deploy failed. Surface it so the + // webhook_executions row records a degraded outcome instead + // of a clean success. + return { status: 'error', message: `Applied commit ${pullResult.commitSha.slice(0, 7)} but deploy failed: ${applied.deployError}` }; + } const suffix = applied.deployed ? ' and deployed' : ''; return { status: 'success', message: `Applied commit ${pullResult.commitSha.slice(0, 7)}${suffix}.` }; } catch (e) { diff --git a/docs/features/git-sources.mdx b/docs/features/git-sources.mdx index f2dd9a7e..a31b48bf 100644 --- a/docs/features/git-sources.mdx +++ b/docs/features/git-sources.mdx @@ -153,6 +153,10 @@ The in-browser editor and the Git Source panel both write to the same files, so The clone did not finish in time. Check that the Sencho host can reach the repository host (proxies, firewalls, DNS) and try again. + + + The incoming compose file was written to disk successfully, but the subsequent `docker compose up -d` did not complete. The toast message includes the underlying reason (for example, an image pull failure or a port conflict). The stack is already on the new content, so you can retry the deploy directly from the editor's **Deploy** button without re-pulling. Fix the root cause first (image availability, host resources, network config) and redeploy. + diff --git a/docs/images/git-sources/diff-dialog.png b/docs/images/git-sources/diff-dialog.png new file mode 100644 index 0000000000000000000000000000000000000000..67e00c6a137553555409fca327e0a6084cd56569 GIT binary patch literal 60990 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 literal 0 HcmV?d00001 diff --git a/docs/images/git-sources/panel.png b/docs/images/git-sources/panel.png new file mode 100644 index 0000000000000000000000000000000000000000..11369dc63559f95fa652326532cbf0df97f9f977 GIT binary patch literal 50851 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 JiLk!!{{Y!(LAn3{ literal 0 HcmV?d00001 diff --git a/docs/images/git-sources/sidebar-badge.png b/docs/images/git-sources/sidebar-badge.png new file mode 100644 index 0000000000000000000000000000000000000000..c0aebc8eba88aad6384e3e2611ca0e3e1192dba2 GIT binary patch literal 7872 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 literal 0 HcmV?d00001 diff --git a/docs/images/git-sources/webhook-action.png b/docs/images/git-sources/webhook-action.png new file mode 100644 index 0000000000000000000000000000000000000000..84e2ea8bdf539cd1b9c43f9931d5bf3d2376103f GIT binary patch literal 117878 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 { ).toBeVisible({ timeout: 15_000 }); }); + test('PUT against a non-existent stack returns 404', async ({ page }) => { + const status = await page.evaluate(async () => { + const res = await fetch(`/api/stacks/nonexistent-ghost-stack/git-source`, { + method: 'PUT', + headers: { 'Content-Type': 'application/json' }, + credentials: 'include', + body: JSON.stringify({ + repo_url: 'https://github.com/example/repo.git', + branch: 'main', + compose_path: 'compose.yaml', + sync_env: false, + auth_type: 'none', + auto_apply_on_webhook: false, + auto_deploy_on_apply: false, + }), + }); + return res.status; + }); + expect(status).toBe(404); + }); + + test('backend rejects http:// URLs on PUT with 400', async ({ page }) => { + const status = await page.evaluate(async (name) => { + const res = await fetch(`/api/stacks/${name}/git-source`, { + method: 'PUT', + headers: { 'Content-Type': 'application/json' }, + credentials: 'include', + body: JSON.stringify({ + repo_url: 'http://github.com/example/repo.git', + branch: 'main', + compose_path: 'compose.yaml', + sync_env: false, + auth_type: 'none', + auto_apply_on_webhook: false, + auto_deploy_on_apply: false, + }), + }); + return res.status; + }, TEST_STACK); + expect(status).toBe(400); + }); + + test('backend rejects .git/config as compose_path', async ({ page }) => { + const body = await page.evaluate(async (name) => { + const res = await fetch(`/api/stacks/${name}/git-source`, { + method: 'PUT', + headers: { 'Content-Type': 'application/json' }, + credentials: 'include', + body: JSON.stringify({ + repo_url: 'https://github.com/example/repo.git', + branch: 'main', + compose_path: '.git/config', + sync_env: false, + auth_type: 'none', + auto_apply_on_webhook: false, + auto_deploy_on_apply: false, + }), + }); + return { status: res.status, body: await res.json().catch(() => ({})) }; + }, TEST_STACK); + expect(body.status).toBeGreaterThanOrEqual(400); + expect(JSON.stringify(body.body)).toMatch(/\.git|file/i); + }); + test('configure, view pending-empty state, and remove via AlertDialog', async ({ page }) => { // Seed a git source directly via API so we can exercise the remove-confirm // flow without depending on a reachable upstream. diff --git a/frontend/src/components/stack/GitSourcePanel.tsx b/frontend/src/components/stack/GitSourcePanel.tsx index 071982fb..e1fc507a 100644 --- a/frontend/src/components/stack/GitSourcePanel.tsx +++ b/frontend/src/components/stack/GitSourcePanel.tsx @@ -112,6 +112,9 @@ export function GitSourcePanel({ setAuthType('none'); setToken(''); setApplyModeOverride(null); + } else if (res.status === 403) { + setSource(null); + toast.error('You do not have permission to view this stack\'s Git source.'); } else { const err = await res.json().catch(() => ({})); toast.error(err?.error || 'Failed to load Git source.'); @@ -134,7 +137,7 @@ export function GitSourcePanel({ toast.error('Repository URL, branch, and compose path are required.'); return; } - if (!/^https?:\/\//i.test(repoUrl.trim())) { + if (!/^https:\/\//i.test(repoUrl.trim())) { toast.error('Only HTTPS repository URLs are supported.'); return; } @@ -235,8 +238,12 @@ export function GitSourcePanel({ body: JSON.stringify({ commitSha, deploy }), }); if (res.ok) { - const data: { applied: boolean; deployed: boolean } = await res.json(); - toast.success(data.deployed ? 'Applied and deployed.' : 'Applied successfully.'); + const data: { applied: boolean; deployed: boolean; deployError?: string } = await res.json(); + if (data.deployError) { + toast.warning(`Applied, but deploy failed: ${data.deployError}`); + } else { + toast.success(data.deployed ? 'Applied and deployed.' : 'Applied successfully.'); + } setDiffOpen(false); setPull(null); await load(); @@ -323,7 +330,7 @@ export function GitSourcePanel({ ) : ( <> {source?.pending_commit_sha && ( -
+

Pending update

@@ -450,7 +457,7 @@ export function GitSourcePanel({
{source && ( -
+
Last applied commit