Skip to content

Release v0.2.1#12

Merged
tcheeric merged 3 commits intomainfrom
develop
Feb 25, 2026
Merged

Release v0.2.1#12
tcheeric merged 3 commits intomainfrom
develop

Conversation

@tcheeric
Copy link
Contributor

Summary

Release develop into main, covering all changes from v0.1.0 through v0.2.1.

What changed?

  • Removed nostr-java dependency — replaced Identity.generateRandomIdentity() with SecureRandom + HexFormat for pubkey placeholder generation
  • Domain verification now uses _nostr-verification naming and supports both DNS and Well-Known methods automatically
  • Admin UI improvements: auto-generates verification tokens, shows both verification options, environment-variable-based credentials
  • CI/CD: added CI workflow, bound Docker image build to Maven deploy phase
  • Documentation: E2E testing guide, updated architecture docs, consolidated API reference
  • Bug fixes: SecurityFilterChain conflict in E2E tests, 500 error on domains list, Qodana security findings
  • Security: removed credentials from dependabot registry config
  • Version: 0.2.0 → 0.2.1

Breaking changes

  • BREAKING: this change introduces breaking API or behavior

Review focus

  • Removal of nostr-java dependency in PersistentNip05Manager.java — now uses SecureRandom + HexFormat
  • Version bump from 0.2.0 to 0.2.1 across all modules

Checklist

  • Tests added or updated
  • mvn -q verify passes
  • Documentation updated (README, docs, etc.)
  • No unused imports

mvn -q verify output

Build passes with exit code 0. All unit tests pass.

🤖 Generated with Claude Code

tcheeric and others added 3 commits February 24, 2026 23:22
Update dependency artifacts to match nostr-java 2.0.0 module restructure:
- nostr-java-api, nostr-java-id, nostr-java-crypto → nostr-java-identity, nostr-java-core

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace Identity.generateRandomIdentity() with SecureRandom + HexFormat
for generating random 32-byte hex pubkey placeholders. The nostr-java
dependency was heavyweight for what amounts to generating random bytes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Projects updated:
- bottin (all modules): 0.2.0 → 0.2.1 (patch)

Changes include:
- Removed nostr-java dependency, replaced with SecureRandom + HexFormat

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR releases version 0.2.1 of Bottin, a NIP-05 registry service for Nostr. The primary change is the removal of the nostr-java dependency, replacing Identity.generateRandomIdentity() with Java's built-in SecureRandom and HexFormat for generating random public key placeholders.

Changes:

  • Removed nostr-java dependency from all module POMs, eliminating an external dependency
  • Updated random pubkey generation in PersistentNip05Manager to use SecureRandom + HexFormat instead of nostr-java's Identity.generateRandomIdentity()
  • Bumped version from 0.2.0 to 0.2.1 across all modules and updated CHANGELOG

Reviewed changes

Copilot reviewed 14 out of 14 changed files in this pull request and generated no comments.

Show a summary per file
File Description
pom.xml Removed nostr-java dependency declarations and version property; bumped parent version to 0.2.1
bottin-web/pom.xml Updated parent version to 0.2.1
bottin-verification/pom.xml Updated parent version to 0.2.1
bottin-tests/pom.xml Updated parent version to 0.2.1
bottin-tests/bottin-it/pom.xml Updated parent version to 0.2.1
bottin-tests/bottin-e2e/pom.xml Updated parent version to 0.2.1
bottin-spring-boot-starter/src/main/java/xyz/tcheeric/bottin/starter/PersistentNip05Manager.java Replaced nostr-java Identity usage with SecureRandom + HexFormat for generating 64-char hex pubkeys
bottin-spring-boot-starter/src/main/java/xyz/tcheeric/bottin/starter/PersistentAccountManager.java Removed outdated comment referencing nostr-java
bottin-spring-boot-starter/pom.xml Removed nostr-java-id dependency; updated parent version to 0.2.1
bottin-service/pom.xml Updated parent version to 0.2.1
bottin-persistence/pom.xml Updated parent version to 0.2.1
bottin-core/pom.xml Removed nostr-java-id dependency; updated parent version to 0.2.1
bottin-admin-ui/pom.xml Updated parent version to 0.2.1
CHANGELOG.md Added v0.2.1 entry documenting nostr-java removal; updated version comparison links
Comments suppressed due to low confidence (1)

bottin-spring-boot-starter/src/main/java/xyz/tcheeric/bottin/starter/PersistentNip05Manager.java:66

  • Creating a new SecureRandom instance on every call to setupNip05 is inefficient. SecureRandom initialization can be expensive. The codebase pattern (see VerificationTokenGenerator) is to declare SecureRandom as a private final field initialized once in the constructor, then reuse it across multiple calls. This would improve performance when multiple NIP-05 records are created.
            new SecureRandom().nextBytes(randomBytes);

@tcheeric tcheeric merged commit d2869b4 into main Feb 25, 2026
8 of 10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants