Skip to content

Commit 65a3e33

Browse files
committed
Redact git credentials from logs
Git URLs with authentication tokens were leaking in logs during clone operations. Added GitLogger wrapper to automatically sanitize credentials from all log output.
1 parent 17d2a4d commit 65a3e33

File tree

12 files changed

+403
-245
lines changed

12 files changed

+403
-245
lines changed

.changeset/new-students-accept.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@cloudflare/sandbox": patch
3+
---
4+
5+
Redact credentials from Git URLs in logs

CLAUDE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ The Cloudflare Sandbox SDK enables secure, isolated code execution in containers
3434
- `CodeInterpreter`: High-level API for running Python/JavaScript with structured outputs
3535
- `proxyToSandbox()`: Request handler for preview URL routing
3636

37-
2. **`@repo/shared` (packages/shared/)** - Shared types and error system
37+
2. **`@repo/shared` (packages/shared/)** - Shared utilities
3838
- Type definitions shared between SDK and container runtime
3939
- Centralized error handling and logging utilities
4040
- Not published to npm (internal workspace package)

package-lock.json

Lines changed: 5 additions & 20 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/sandbox-container/src/core/container.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import type { Logger } from '@repo/shared';
2-
import { createLogger } from '@repo/shared';
2+
import { createLogger, GitLogger } from '@repo/shared';
33
import { ExecuteHandler } from '../handlers/execute-handler';
44
import { FileHandler } from '../handlers/file-handler';
55
import { GitHandler } from '../handlers/git-handler';
@@ -96,6 +96,9 @@ export class Container {
9696
// Initialize SessionManager
9797
const sessionManager = new SessionManager(logger);
9898

99+
// Create git-specific logger that automatically sanitizes credentials
100+
const gitLogger = new GitLogger(logger);
101+
99102
// Initialize services
100103
const processService = new ProcessService(
101104
processStore,
@@ -108,7 +111,7 @@ export class Container {
108111
sessionManager
109112
);
110113
const portService = new PortService(portStore, securityAdapter, logger);
111-
const gitService = new GitService(securityAdapter, logger, sessionManager);
114+
const gitService = new GitService(securityAdapter, gitLogger, sessionManager);
112115
const interpreterService = new InterpreterService(logger);
113116

114117
// Initialize handlers
@@ -117,7 +120,7 @@ export class Container {
117120
const fileHandler = new FileHandler(fileService, logger);
118121
const processHandler = new ProcessHandler(processService, logger);
119122
const portHandler = new PortHandler(portService, logger);
120-
const gitHandler = new GitHandler(gitService, logger);
123+
const gitHandler = new GitHandler(gitService, gitLogger);
121124
const interpreterHandler = new InterpreterHandler(
122125
interpreterService,
123126
logger

0 commit comments

Comments
 (0)