Ship the Nutrient CLI and DWS authentication flow - #20
Ship the Nutrient CLI and DWS authentication flow#20vladimir-tikhonov-nutrient wants to merge 13 commits into
Conversation
There was a problem hiding this comment.
Pull request overview
This PR introduces a new top-level nutrient CLI entry point for account/auth management while keeping existing PDF conversion commands (pdf-to-markdown, pdf-to-text, query) intact and installable via the same npm/installer paths.
Changes:
- Added a
nutrientlauncher script and exposed it via npmbin, installer, and CI validation. - Updated the
pdf-to-markdownwrapper to support anutrientverb mode (viaNUTRIENT_WRAPPER_VERB) and to install/exec an appropriate verb symlink. - Updated documentation and licensing text to describe account connection, plan credits, Vision entitlement, and privacy/usage metadata.
Reviewed changes
Copilot reviewed 7 out of 9 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| README.md | Documents the new nutrient auth … workflow, plan/credit model, and privacy/licensing details. |
| package.json | Exposes nutrient as an additional npm-installed executable and extends the check script. |
| LICENSE.md | Updates license terms to describe basic use, account plans, Vision eligibility, and usage metadata. |
| install.sh | Installs the new nutrient wrapper alongside existing command wrappers. |
| docs/benchmarks.md | Updates benchmark notes to reflect paid-plan Vision positioning and authentication requirements. |
| CHANGELOG.md | Adds an Unreleased entry summarizing the new nutrient entry point and auth/plan features. |
| bin/pdf-to-markdown | Adds verb selection for nutrient mode and adjusts update-check/link behavior accordingly. |
| bin/nutrient | New wrapper that routes nutrient … invocations through the existing pdf-to-markdown wrapper. |
| .github/workflows/validate.yml | Extends ShellCheck and install validation to include the new bin/nutrient wrapper. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
025ef86 to
059d2c7
Compare
ce0726e to
eda5fcc
Compare
|
Added guides on the intended flows that I operated with for OAuth and anonymous/guest organizations: https://github.com/PSPDFKit/PSPDFKit/blob/master/hosted/docs/guest/pdf-to-markdown-cli-oauth.md Includes sections about fingerprinting (enforcement is WIP on hosted side). If anything looks wrong, unclear or missing let me know - device auth and guest orgs are not used yet on production so we have a lot of leeway to change the direction at this point. |
eda5fcc to
1478127
Compare
Permit unlimited noncompetitive Standard and query use, including SaaS integrations, while reserving OEM distribution. Require paid DWS entitlements for CLI premium functionality and restrict hosted free evaluation using the DWS company thresholds. Complete acceptance, privacy, migration, termination, liability and dispute provisions. Align package documentation and record native and DWS release dependencies without claiming runtime enforcement. BREAKING CHANGE: The new license requires paid DWS authorization for CLI premium use and excludes OEM distribution without a separate agreement. Earlier versions and separately signed agreements retain their applicable terms.
Summary
Prepares
@pspdfkit/pdf-to-markdown@0.6.0for the account-enabled native CLI and replaces the previous license with explicit free Standard and paid premium terms. Standard conversion andqueryare free and unlimited for permitted uses, including noncompetitive SaaS integrations. CLI Vision and additional premium functionality require a DWS-issued license key with a paid CLI entitlement; free evaluation is available only through eligible hosted DWS offerings.The existing wrapper changes add the
nutrientaccount-management entry point, reject incompatible cached binaries for account commands, and preserve cached conversion commands during updates. Existing npm and shell-installer entry points remain available.Commercial license
queryhave no account, revenue, employee, document, page, or query-volume limit. Competitive use remains prohibited.The README and changelog use the same policy. Historical benchmark results and earlier release history are preserved.
Release dependencies
The licensing commit changes contract text and documentation. It does not implement or verify the native/DWS policy. Before release, complete the evidence listed in
docs/licensing-release-review.md, including:Validation
For the licensing commit:
npm run check— passed.npm test— all eight existing wrapper regression tests passed.shellcheck -s sh install.sh bin/nutrient bin/pdf-to-markdown bin/pdf-to-text bin/query— passed.npm run pack:dry-run— passed using an isolated temporary npm cache after the shared cache returned EPERM.npm packand a byte-for-byte comparison of the archive'spackage/LICENSE.mdwith the reviewed source — passed.git diff --cached --check— passed.The wrapper tests use fixture executables and do not prove native licensing enforcement, actual checkout, or billing behavior. No new native/DWS end-to-end test is claimed by this documentation change; those scenarios are specified in the release review for their owning implementations. See the PR checks for the current macOS and Ubuntu CI results.
Release coordination: https://linear.app/nutrient/issue/DWSL-494/publish-signednotarized-cli-artifacts-provenance-and-release-channels