Claude code Setup#309
Conversation
Captures the design for public interface renames per the server-side SDK nomenclature changes spec: credential field fallbacks (clientId/keyId/tokenUri), skyflow_id→skyflowId in Get/Query responses, and QueryResponse errors/tokenizedData field additions. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Adds explanation for why tokenizedData change is valid despite the Query API currently not returning tokens — based on V1FieldRecords schema support and cross-SDK consistency requirement. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Adds detailed rationale to each design section: why the naming convention matters, why the fallback strategy was chosen over a hard cut, why skyflow_id normalization is inconsistent today, the tokenizedData API schema vs docs discrepancy, and why getErrors() is missing only from QueryResponse. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Clarifies that ignoring record.getTokens() in getFormattedQueryRecord is intentional (Query API cannot return tokens), and that the fix is to promote the toString() hack into a real always-empty field rather than reading from the API response. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Query API cannot return tokens; the toString() inconsistency is not worth fixing since callers have no reason to access tokenizedData programmatically on query results. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
5-task TDD plan covering credential field renames with fallback, skyflow_id normalisation in Get/Query responses, and QueryResponse getErrors() accessor. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
…old form Add fallback lookup logic so getBearerTokenFromCredentials tries new camelCase keys (clientId, keyId, tokenUri) first and falls back to the legacy all-caps forms (clientID, keyID, tokenURI) for backward compatibility during migration. Add testBearerTokenWithNewFormCredentialKeys to verify the new key form is recognized end-to-end. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
…form Add fallback logic to GenerateSignedTokensFromCredentials so both new-form keys (clientId/keyId) and legacy all-caps keys (clientID/keyID) are accepted during migration. Mirrors the pattern already applied to BearerToken.java. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Insert and Update responses already used camelCase skyflowId; Get and Query were passing through the raw wire-format snake_case key. Add the rename in getFormattedGetRecord and getFormattedQueryRecord, and add reflection-based unit tests to cover both formatters. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Adapted from skyflow-node PR #305. Includes: - CLAUDE.md with project overview, structure, naming conventions, build commands - .claude/settings.json with PostToolUse compile+checkstyle hooks, PreToolUse generated-code guard, Stop notification; paths are relative (no hardcoded user dirs) - .claude/commands/: code-review, code-security, sdk-sample, test slash commands Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
- CLAUDE.md: add vault/bin/ package, all 5 controllers, pre-existing test failure baseline - settings.json: fix checkstyle hook to print violations (was silently swallowing output with capture_output=True) - sdk-sample.md: fix InsertOptions (doesn't exist), correct sample package structure, correct credential type per feature - code-review.md: fix validation location (controller not build()), fix HashMap rule (SDK pattern is raw HashMaps) - test.md: document pre-existing failures, note checkstyle failsOnError Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
…mmand Splits old Section 6 into: - Section 6: Code quality (actionable correctness checks) - Section 7: Code smells (structural signals, flagged at Smell severity) Code smell catalogue covers: long methods/classes, business logic in data classes, toString() with logic, deep nesting, magic numbers, raw HashMap chains, dead code, stale comments, temporary fields. Severity table clarified: Critical/Bug/Edge Case/Quality = fix before merge; Smell = flag and track. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
- settings.json: single PostToolUse hook with per-file checkstyle, removed redundant compile hook, PreToolUse, and macOS Stop notification; permissions.deny handles generated/ protection - YAML front matter added to CLAUDE.md and all .claude/commands/*.md - code-smell.md: new standalone structural smell analysis command - .claude/skills/: project-level requesting-code-review override with Java-specific guidance (warnOnce, security review lane, branch SHA pattern) Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Claude command files use British English (serialise, normalise, behaviour, sanitisation, prioritised). Maven -D flags (-DskipTests, -Dtest) are now ignored by cspell regex pattern. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Runs cspell before structural analysis. Reports unknown words at Smell severity. Points to .cspell.json for adding project-specific terms. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
- Single PostToolUse: per-file checkstyle only (removed redundant compile hook, removed PreToolUse generated-code hook, removed macOS Stop notification) - Per-file checkstyle via -Dcheckstyle.includes=<relative-path> for speed - permissions.deny handles generated/ protection natively Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
|
Semgrep Findings: Issues with Error level severity are found (Error is Highest severity in Semgrep), Please resolve the issues before merging. |
- CLAUDE.md: project context, naming conventions, build commands, known test failures, slash command reference - .claude/settings.json: PostToolUse per-file checkstyle hook; permissions.deny blocks edits to generated/ code - .claude/commands/: code-review, code-security, code-smell, sdk-sample, test — all with YAML front matter (name, description, paths) - .claude/skills/requesting-code-review/SKILL.md: Java-specific review guidance (review type routing, branch SHA pattern, security lane) - .cspell.json: add British English spellings, Maven -D flag regex, ignorePaths for RUNNING_SAMPLES.md and docs/superpowers/ Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
3de3b91 to
e48ef59
Compare
|
✅ Gitleaks Findings: No secrets detected. Safe to proceed! |
|
Semgrep Findings: Issues with Error level severity are found (Error is Highest severity in Semgrep), Please resolve the issues before merging. |
|
✅ Gitleaks Findings: No secrets detected. Safe to proceed! |
|
Semgrep Findings: Issues with Error level severity are found (Error is Highest severity in Semgrep), Please resolve the issues before merging. |
# Conflicts: # .cspell.json # src/main/java/com/skyflow/serviceaccount/util/BearerToken.java # src/main/java/com/skyflow/serviceaccount/util/SignedDataTokens.java # src/main/java/com/skyflow/vault/controller/VaultController.java # src/test/java/com/skyflow/serviceaccount/util/BearerTokenTests.java # src/test/java/com/skyflow/vault/controller/VaultControllerTests.java
…evesh/claude-code-setup # Conflicts: # .cspell.json # CLAUDE.md
|
✅ Gitleaks Findings: No secrets detected. Safe to proceed! |
|
Semgrep Findings: Issues with Error level severity are found (Error is Highest severity in Semgrep), Please resolve the issues before merging. |
- Extract checkstyle hook from inline JSON to .claude/hooks/checkstyle-on-edit.py - Remove redundant mvn exec:java entries from settings.local.json - Add audit/BIN packages to sdk-sample.md file placement table - Add Commit & PR Guidelines section to CLAUDE.md (Jira ID requirement, branch naming, PR template sections) Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
|
✅ Gitleaks Findings: No secrets detected. Safe to proceed! |
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
|
Semgrep Findings: Issues with Error level severity are found (Error is Highest severity in Semgrep), Please resolve the issues before merging. |
|
✅ Gitleaks Findings: No secrets detected. Safe to proceed! |
|
Semgrep Findings: Issues with Error level severity are found (Error is Highest severity in Semgrep), Please resolve the issues before merging. |
v2.1 is current stable, v3 is pre-release for Flow DB only (bulkInsert, batchProcessing) used by Spark wrapper. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
|
✅ Gitleaks Findings: No secrets detected. Safe to proceed! |
|
Semgrep Findings: Issues with Error level severity are found (Error is Highest severity in Semgrep), Please resolve the issues before merging. |
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
|
✅ Gitleaks Findings: No secrets detected. Safe to proceed! |
|
Semgrep Findings: Issues with Error level severity are found (Error is Highest severity in Semgrep), Please resolve the issues before merging. |
… integration Token reduction: - Condense CLAUDE.md project structure tree (27 → 14 lines) - Remove stale test count from CLAUDE.md - Remove duplicated failures table from test.md (reference CLAUDE.md instead) - Collapse duplicate naming/normalisation sections in code-review.md Productivity: - Add /commit command with Jira ticket ID extraction from branch name - Add git/find/grep/npx cspell to settings.json allow list CI/CD: - Add claude-pr-review.yml: automated SDK patterns + security review on PRs - Add claude-changelog.yml: auto-generated release notes on tag push Requires ANTHROPIC_API_KEY secret in GitHub Actions. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
|
✅ Gitleaks Findings: No secrets detected. Safe to proceed! |
|
Semgrep Findings: Issues with Error level severity are found (Error is Highest severity in Semgrep), Please resolve the issues before merging. |
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
|
✅ Gitleaks Findings: No secrets detected. Safe to proceed! |
|
Semgrep Findings: Issues with Error level severity are found (Error is Highest severity in Semgrep), Please resolve the issues before merging. |
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
|
✅ Gitleaks Findings: No secrets detected. Safe to proceed! |
|
Semgrep Findings: Issues with Error level severity are found (Error is Highest severity in Semgrep), Please resolve the issues before merging. |
Its in draft state