• Joined on 2026-02-08
clawbot pushed to feature/unified-targets at sneak/dnswatcher 2026-02-20 05:08:14 +01:00
5916e32ff3 feat: unify DOMAINS/HOSTNAMES into single TARGETS config
clawbot opened issue sneak/dnswatcher#10 2026-02-20 05:04:45 +01:00
Unify DOMAINS and HOSTNAMES into a single TARGETS config
clawbot commented on pull request sneak/dnswatcher#8 2026-02-20 04:58:18 +01:00
feat: implement watcher monitoring orchestrator (closes #2)

The interface and signature are designed for all RR types — the return type is map[nameserver]map[recordType][]values, and the interface doc says "queries all record types for a hostname."…

clawbot commented on pull request sneak/dnswatcher#9 2026-02-19 23:16:45 +01:00
feat: implement iterative DNS resolver (closes #1)

Code Review: Iterative DNS Resolver

clawbot commented on pull request sneak/dnswatcher#9 2026-02-19 23:16:45 +01:00
feat: implement iterative DNS resolver (closes #1)

The break here means only the first NS name's IPs are resolved. If there are 3 authoritative NS names and the first resolves but returns only 1 IP, the other NS IPs are never discovered. Remove the break to resolve all NS names (or at least collect a reasonable number of IPs).

clawbot commented on pull request sneak/dnswatcher#9 2026-02-19 23:16:45 +01:00
feat: implement iterative DNS resolver (closes #1)

Sending recursive queries (RecursionDesired = true) to root servers won't work — root servers don't offer recursion. This fallback only works in DNS-intercepting environments. Consider falling back to a known public recursive resolver (1.1.1.1, 8.8.8.8) or the system resolver instead.

clawbot commented on pull request sneak/dnswatcher#9 2026-02-19 23:16:45 +01:00
feat: implement iterative DNS resolver (closes #1)

glueIPs only collects IPv4 addresses (filters on addr.To4() != nil). IPv6 glue records are silently discarded. Some TLDs have IPv6-only nameservers. Should include both address families.

clawbot commented on pull request sneak/dnswatcher#9 2026-02-19 23:16:45 +01:00
feat: implement iterative DNS resolver (closes #1)

parentDomain() uses a naive 2-label split (minDomainLabels = 2) instead of the Public Suffix List. This breaks for ccTLD domains like example.co.uk → returns co.uk. instead of example.co.uk.. The README explicitly specifies PSL-based classification. Use golang.org/x/net/publicsuffix here.

clawbot commented on pull request sneak/dnswatcher#9 2026-02-19 23:16:45 +01:00
feat: implement iterative DNS resolver (closes #1)

ErrNotImplemented is now dead code — no method returns it after this PR. Remove it to avoid confusion.

clawbot created pull request sneak/dnswatcher#9 2026-02-19 23:15:21 +01:00
feat: implement iterative DNS resolver (closes #1)
clawbot pushed to feature/resolver at sneak/dnswatcher 2026-02-19 23:15:05 +01:00
49dafe142d feat: implement iterative DNS resolver
clawbot commented on pull request sneak/upaas#94 2026-02-19 22:54:21 +01:00
feat: add API token authentication (closes #87)

Fix: Bearer auth now sets user context

Bug: tryBearerAuth validated the bearer token but never looked up the associated user or set it on the request context. Downstream handlers calling…

clawbot pushed to feature/api-token-auth at sneak/upaas 2026-02-19 22:54:11 +01:00
160b02b0b6 fix: set authenticated user on request context in bearer token auth
clawbot commented on pull request sneak/upaas#95 2026-02-19 22:50:07 +01:00
chore: code cleanup and best practices (closes #45)

Straightforward cleanup PR — adds nolint annotations for false-positive gosec findings and fixes struct field alignment. All the suppressions are justified (field names, not hardcoded secrets; trusted config URLs, not user input).

clawbot commented on pull request sneak/upaas#94 2026-02-19 22:50:06 +01:00
feat: add API token authentication (closes #87)

Solid API token auth implementation. SHA-256 hashing, proper CRUD, Bearer token middleware, good test coverage including revocation. Well done.

clawbot commented on pull request sneak/upaas#94 2026-02-19 22:50:06 +01:00
feat: add API token authentication (closes #87)

16 random bytes = 128 bits of entropy. This is adequate but 32 bytes (256 bits) is more conventional for API tokens and provides more margin against future attacks. Low priority.

clawbot commented on pull request sneak/upaas#94 2026-02-19 22:50:06 +01:00
feat: add API token authentication (closes #87)

Potential bug: tryBearerAuth returns true on valid token but doesn't inject the authenticated user into the request context. Downstream handlers call h.auth.GetCurrentUser(ctx, request) which reads from the session — this will return nil for Bearer-only requests.

clawbot commented on pull request sneak/upaas#93 2026-02-19 22:50:05 +01:00
fix: clean up orphan resources on deploy cancellation (closes #89)

Nit: entry.Name()[:len(prefix)] == prefix — prefer strings.HasPrefix(entry.Name(), prefix) for readability and safety (the length guard is easy to get wrong).

clawbot commented on pull request sneak/upaas#93 2026-02-19 22:50:05 +01:00
fix: clean up orphan resources on deploy cancellation (closes #89)

Good cleanup — cancelled deploys now properly remove orphan Docker images and build directories. The RemoveImage with Force: true and PruneChildren: true is correct for cleanup.

clawbot commented on pull request sneak/upaas#93 2026-02-19 22:50:05 +01:00
fix: clean up orphan resources on deploy cancellation (closes #89)

This duplicates the directory cleanup logic from the real cleanupCancelledDeploy. If the real implementation changes (e.g. different naming convention), this test helper won't catch the regression. Consider refactoring so the test exercises the actual code path.