• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Nanopublication / nanopub-js / 35314174586
93%

Build:
DEFAULT BRANCH: main
Ran 18 Sep 2026 06:17AM UTC
Jobs 1
Files 19
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

18 Sep 2026 06:16AM UTC coverage: 93.489% (+0.8%) from 92.705%
35314174586

push

github

web-flow
feat(sign): check the signing key against the network before signing and publishing (#75)

A nanopublication signed with a key that no introduction declares for its
signer is cryptographically valid, but cannot be attributed: it shows up under
an unapproved agent, and the only remedy is publishing it again and retracting
the first.

sign() now checks the profile's signer and key against the introductions
published on the network, and publish() checks an already-signed
nanopublication by its own signature's npx:signedBy and npx:hasPublicKey. The
result is one of declared, declared_without_authority, key_not_declared,
signer_not_introduced or not_checked, classified as in nanopub-java's check.

The check warns by default; keyCheck: 'strict' refuses and keyCheck: 'off'
skips it, and onKeyCheck receives every result for applications to show. It
fails open, so an unreachable query service never stops anyone signing, and a
signer's introductions are reused for five minutes. checkSigningKey() runs it
on its own.

The introductions are fetched with the SPARQL of get-all-user-intros restricted
to the signer, which answers in under a second where the published query
returns every introduction on the network in about eleven. Keys are compared
without whitespace, since some introductions store them with line breaks, and a
nanopublication declaring its own signing key, as an introduction does, is not
checked.

Closes #73

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>

404 of 464 branches covered (87.07%)

Branch coverage included in aggregate %.

65 of 65 new or added lines in 2 files covered. (100.0%)

716 of 734 relevant lines covered (97.55%)

2165.93 hits per line

Jobs
ID Job ID Ran Files Coverage
1 35314174586.1 18 Sep 2026 06:17AM UTC 19
93.49
GitHub Action Run
Source Files on build 35314174586
  • Tree
  • List 19
  • Changed 2
  • Source Changed 2
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #35314174586
  • 30a7a3e0 on github
  • Prev Build on main (#35207688716)
  • Next Build on main (#35575609392)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc