-
Notifications
You must be signed in to change notification settings - Fork 0
Fix admin defects, enable CI, and improve documentation and deployment #1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Changes from all commits
Commits
Show all changes
37 commits
Select commit
Hold shift + click to select a range
4a30d08
refactor(sql, docker): replace `BIGINT AUTO_INCREMENT` with `BIGSERIA…
948ec89
feat(ci): add CI configuration with build and E2E test jobs
a51470c
docs: add E2E testing documentation and update architecture
60522a3
fix(admin): fix 500 error when viewing domains list
34644e8
chore(docker): use registry images in docker-compose
f7e3459
fix(admin): use environment variables for admin credentials
f2ed2cf
fix(security): use correct property binding for admin password
4a05b72
fix(admin): correct verification instructions and allow method change
6596274
fix(ci): use system Maven instead of missing wrapper
26b3c45
docs: update Copilot instructions for Bottin project
44371b1
docs: add NIP-05 spec link and commitlint reference
8de6a5c
refactor(persistence): use BIGSERIAL for PostgreSQL compatibility
c33aec6
feat(ci): add CI configuration with build and E2E test jobs
16692d4
docs: add E2E testing documentation and update architecture
630cf84
fix(admin): fix 500 error when viewing domains list
db2c5f7
chore(docker): use registry images in docker-compose
0001b55
fix(admin): use environment variables for admin credentials
437d6a8
fix(security): use correct property binding for admin password
757e6a4
fix(admin): correct verification instructions and allow method change
6575ee7
fix(ci): use system Maven instead of missing wrapper
115dc28
docs: update Copilot instructions for Bottin project
783c518
docs: add NIP-05 spec link and commitlint reference
e4047b5
fix(ci): update google-java-format action for JDK 21 compatibility
648b415
docs: fix incorrect database info in E2E test documentation
10739a8
Merge remote-tracking branch 'origin/develop' into develop
c01ebc0
fix(ci): revert to google-java-format action v4
31b6b3e
docs: consolidate API documentation to reference doc
949b18a
fix(ci): update E2E job to use Bottin test modules
7ec628f
chore(ci): remove E2E tests job from CI workflow
cc0aa64
fix(security): address Qodana security findings
59c6c6f
refactor(logging): differentiate similar log messages
8a3a407
chore(version): release version 0.1.0
a5f5fb4
feat(docker): bind Jib build to deploy phase
69ed730
docs: update Docker deployment guide for mvn deploy
b556da9
refactor(core): remove nsecbunker-account dependency from bottin-core
8ebf9b6
fix(test): resolve SecurityFilterChain conflict in E2E tests
e511830
docs: update README and fix verification instructions
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,54 @@ | ||
| --- | ||
| extends: '@commitlint/config-conventional' | ||
|
|
||
| rules: | ||
| # See: https://commitlint.js.org/reference/rules.html | ||
| # | ||
| # Rules are made up by a name and a configuration array. The configuration | ||
| # array contains: | ||
| # | ||
| # * Severity [0..2]: 0 disable rule, 1 warning if violated, or 2 error if | ||
| # violated | ||
| # * Applicability [always|never]: never inverts the rule | ||
| # * Value: value to use for this rule (if applicable) | ||
| # | ||
| # Run `npx commitlint --print-config` to see the current setting for all rules. | ||
|
|
||
| header-max-length: [2, always, 100] # Header can not exceed 100 chars | ||
|
|
||
| type-case: [2, always, lower-case] # Type must be lower case | ||
| type-empty: [2, never] # Type must not be empty | ||
|
|
||
| # Supported conventional commit types | ||
| type-enum: [2, always, [build, ci, chore, docs, feat, fix, perf, refactor, revert, style, test]] | ||
|
|
||
| scope-case: [2, always, lower-case] # Scope must be lower case | ||
|
|
||
| # Error if subject is one of these cases (encourages lower-case) | ||
| subject-case: [2, never, [sentence-case, start-case, pascal-case, upper-case]] | ||
| subject-empty: [2, never] # Subject must not be empty | ||
| subject-full-stop: [2, never, "."] # Subject must not end with a period | ||
|
|
||
| body-leading-blank: [2, always] # Body must have a blank line before it | ||
| body-max-line-length: [2, always, 100] # Body lines can not exceed 100 chars | ||
|
|
||
| footer-leading-blank: [2, always] # Footer must have a blank line before it | ||
| footer-max-line-length: [2, always, 100] # Footer lines can not exceed 100 chars | ||
|
|
||
| # ------------------------------------------------------------ | ||
| # BREAKING CHANGES — guidance (informational; not enforced): | ||
| # | ||
| # How to mark a breaking change (either or both): | ||
| # 1) Put "!" in the header after the type or scope, e.g.: | ||
| # feat!: drop support for node 14 | ||
| # refactor(auth)!: remove legacy token flow | ||
| # | ||
| # 2) Add a footer that starts with: | ||
| # BREAKING CHANGE: <short summary> | ||
| # Follow with impact/migration details, each line ≤ 100 chars. | ||
| # | ||
| # This config already allows both patterns via @commitlint/config-conventional. | ||
| # Note: commitlint cannot (in YAML) *require* a BREAKING CHANGE footer only | ||
| # when "!" is used. If you need that kind of conditional enforcement, use a | ||
| # JS config (*.cjs) with a custom rule. | ||
| # ------------------------------------------------------------ |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,30 @@ | ||
| # GitHub Copilot Instructions | ||
|
|
||
| This repository implements Bottin, a NIP-05 registry service for Nostr. When using GitHub Copilot, keep the following guidelines in mind: | ||
|
|
||
| ## Commit Messages | ||
|
|
||
| - Use Conventional Commits as defined in [.commitlintrc.yml](../.commitlintrc.yml). | ||
| - Allowed types: `build`, `ci`, `chore`, `docs`, `feat`, `fix`, `perf`, `refactor`, `revert`, `style`, `test`. | ||
| - Header max 100 characters, lowercase type and scope. | ||
| - Example: `feat(api): add domain verification endpoint` | ||
|
|
||
| ## Code Guidelines | ||
|
|
||
| - Maintain Java 21 compatibility and update `pom.xml` for new dependencies. | ||
| - Use Spring Boot conventions for controllers, services, and repositories. | ||
| - Remove unused imports. | ||
| - Run `mvn -q verify` before committing code. | ||
|
|
||
| ## Protocol | ||
|
|
||
| - Follow the [NIP-05 specification](https://github.com/nostr-protocol/nips/blob/master/05.md) for identity verification endpoints. | ||
| - The `/.well-known/nostr.json` endpoint must return valid NIP-05 responses. | ||
|
|
||
| ## Pull Requests | ||
|
|
||
| - Ensure pull requests include a clear description and test results. | ||
| - Reference related issues using `Closes #123` when applicable. | ||
| - Document new features in the README or related docs. | ||
|
|
||
| These instructions help Copilot produce code that respects the repository's conventions and Nostr protocol requirements. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,28 @@ | ||
| version: 2 | ||
|
|
||
| # Private registries used by Dependabot | ||
| registries: | ||
| maven-releases: | ||
| type: maven-repository | ||
| url: https://maven.398ja.xyz/releases | ||
| username: ${{secrets.MVN_USER}} | ||
| password: ${{secrets.MVN_PASSWORD}} | ||
| maven-snapshots: | ||
| type: maven-repository | ||
| url: https://maven.398ja.xyz/snapshots | ||
| username: ${{secrets.MVN_USER}} | ||
| password: ${{secrets.MVN_PASSWORD}} | ||
|
|
||
| updates: | ||
| - package-ecosystem: "maven" | ||
| directory: "/" | ||
| schedule: | ||
| interval: "weekly" | ||
| open-pull-requests-limit: 5 | ||
| target-branch: "develop" | ||
| - package-ecosystem: "github-actions" | ||
| directory: "/" | ||
| schedule: | ||
| interval: "weekly" | ||
| open-pull-requests-limit: 5 | ||
| target-branch: "develop" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,17 @@ | ||
| ## Summary | ||
| <!-- What motivated this change? --> | ||
|
|
||
| ## What changed? | ||
| <!-- Provide a concise summary of the changes. --> | ||
|
|
||
| ## Breaking changes | ||
| - [ ] BREAKING: this change introduces breaking API or behavior | ||
|
|
||
| ## Review focus | ||
| <!-- Highlight areas that need the most attention from reviewers. --> | ||
|
|
||
| ## Checklist | ||
| - [ ] Tests added or updated | ||
| - [ ] `mvn -q verify` passes | ||
| - [ ] Documentation updated (README, docs, etc.) | ||
| - [ ] No unused imports |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,45 @@ | ||
| name: CI | ||
|
|
||
| on: | ||
| push: | ||
| branches: [main, develop] | ||
| pull_request: | ||
| branches: [main, develop] | ||
|
|
||
| jobs: | ||
| build: | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@v5 | ||
| - uses: actions/setup-java@v5 | ||
| with: | ||
| java-version: '21' | ||
| distribution: 'temurin' | ||
| cache: 'maven' | ||
| - name: Build with Maven | ||
| run: mvn -q verify | ||
| - name: Upload surefire reports | ||
| if: always() | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: surefire-reports | ||
| path: '**/target/surefire-reports' | ||
| if-no-files-found: ignore | ||
| - name: Upload JaCoCo coverage | ||
| if: always() | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: jacoco-exec | ||
| path: '**/target/jacoco.exec' | ||
| if-no-files-found: ignore | ||
| - name: Upload coverage to Codecov | ||
| uses: codecov/codecov-action@v5 | ||
| with: | ||
| files: '**/target/site/jacoco/jacoco.xml' | ||
| token: ${{ secrets.CODECOV_TOKEN }} | ||
| - name: Upload test results to Codecov | ||
| if: ${{ !cancelled() }} | ||
| uses: codecov/test-results-action@v1 | ||
| with: | ||
| token: ${{ secrets.CODECOV_TOKEN }} | ||
| files: '**/target/surefire-reports/*.xml' |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,29 @@ | ||
| name: Conventional Commits | ||
|
|
||
| permissions: | ||
| contents: read | ||
| pull-requests: read | ||
|
|
||
| on: | ||
| pull_request: | ||
| branches: | ||
| - main | ||
| - develop | ||
|
|
||
| jobs: | ||
| commit-lint: | ||
| name: Verify Conventional Commits | ||
| if: (github.event_name == 'pull_request' && !startsWith(github.event.pull_request.head.ref, 'release-please--')) | ||
| runs-on: ubuntu-latest | ||
|
|
||
| steps: | ||
| - name: Checkout | ||
| uses: actions/checkout@v5 | ||
| with: | ||
| fetch-depth: 0 | ||
|
|
||
| - name: Check Commit Messages | ||
| uses: wagoid/commitlint-github-action@v6 | ||
| with: | ||
| configFile: .commitlintrc.yml | ||
| token: ${{ secrets.GITHUB_TOKEN }} | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,25 @@ | ||
| name: Format | ||
|
|
||
| on: | ||
| pull_request: | ||
| branches: | ||
| - main | ||
|
|
||
| permissions: | ||
| contents: write | ||
|
|
||
| jobs: | ||
|
|
||
| formatting: | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@v5 | ||
| - name: Set up JDK 21 | ||
| uses: actions/setup-java@v5 | ||
| with: | ||
| distribution: 'temurin' | ||
| java-version: '21' | ||
| - uses: axel-op/googlejavaformat-action@v4 | ||
| with: | ||
| args: "--replace" | ||
| github-token: ${{ secrets.GITHUB_TOKEN }} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,28 @@ | ||
| name: Qodana | ||
| on: | ||
| workflow_dispatch: | ||
| pull_request: | ||
| push: | ||
| branches: | ||
| - main | ||
| - develop | ||
|
|
||
| jobs: | ||
| qodana: | ||
| runs-on: ubuntu-latest | ||
| permissions: | ||
| contents: write | ||
| pull-requests: write | ||
| checks: write | ||
| steps: | ||
| - uses: actions/checkout@v3 | ||
| with: | ||
| ref: ${{ github.event.pull_request.head.sha }} # to check out the actual pull request commit, not the merge commit | ||
| fetch-depth: 0 # a full history is required for pull request analysis | ||
| - name: 'Qodana Scan' | ||
| uses: JetBrains/qodana-action@v2025.2 | ||
| with: | ||
| pr-mode: false | ||
| env: | ||
| QODANA_TOKEN: ${{ secrets.QODANA_TOKEN }} | ||
| QODANA_ENDPOINT: 'https://qodana.cloud' |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.