@knowttl/artium-axi 0.0.4 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -337,7 +337,8 @@ The native Kerberos provider and its installation script are unnecessary for thi
337
337
 
338
338
  Obtain a dedicated directory identity with read access only, its bind DN and password, and a directory URL whose certificate can be verified.
339
339
  At `/admin/tools/ldap-axi`, enter `url`, choose `auth=simple`, and enter `bindDn` and the password value in `bindPassword`.
340
- Use `ldaps://<directory-host>:636`, or `ldap://<directory-host>:389` with `startTls=true`.
340
+ Use `ldaps://<directory-host>:636` with `startTls` left at the default (unset) or explicitly `false`, or `ldap://<directory-host>:389` with `startTls=true`.
341
+ Saving an `ldaps://` URL with `startTls=true` is rejected with `INVALID_INPUT` and the message `startTls must be false for this URL.`
341
342
  Plaintext simple bind, anonymous authentication, disabled certificate verification and caller-supplied connection or credential overrides are refused.
342
343
  If a private CA is required, supply its PEM contents in `caFile`, not a server file path.
343
344
  The multi-line `caFile` editor preserves newlines through saving and private CA file materialization for each call.
@@ -762,7 +763,8 @@ Fake-service results do not establish live platform permissions or production re
762
763
  Never put tokens or keys in arguments, source files, images or logs.
763
764
  The server refuses the removed development-authentication settings `ARTIUM_AXI_DEV` and `ARTIUM_AXI_DEV_TOKEN_FILE`.
764
765
 
765
- Local passwords use Argon2id, require 15 to 128 code points and at most 512 UTF-8 bytes, preserve spaces and Unicode, and reject exact matches in the bundled common-password list.
766
+ Local passwords use Argon2id and accept any non-empty password of at most 512 UTF-8 bytes, preserving spaces and Unicode.
767
+ The byte cap bounds input to native hashing; there are no minimum-length, character-count or common-password rules.
766
768
  Access tokens last one hour within an 8-hour SSO CLI family or a 12-hour local CLI family; refresh-token reuse revokes the family.
767
769
  Password changes revoke existing CLI tokens and browser sessions.
768
770
  See [browser administration](#browser-administration) for session management and user archival.
@@ -802,18 +804,23 @@ pnpm test:containers
802
804
  See [checklist verification](docs/verification-s46.md) for the fake-only download, authentication, setup and first-call checks.
803
805
  It refuses unverified host platforms.
804
806
 
807
+ The [Vitest configuration](vitest.config.ts) separates unit and integration projects.
808
+ Only the integration project loads the [reduced-cost password hashing setup](test/fixtures/integration-setup.ts); local authentication unit tests and the native smoke retain production hashing costs, as does the dummy hash used for missing accounts.
809
+
805
810
  | Command | Scope |
806
811
  | --- | --- |
807
812
  | `pnpm lint` | Static TypeScript checking. |
808
813
  | `pnpm test` | Inventory/schema freshness checks and the full Vitest suite. |
809
814
  | `pnpm build` | Server compilation and standalone client bundle. |
810
815
  | `pnpm test:security` | Tests whose names contain `security`. |
811
- | `pnpm test:containers` | Mandatory fake-only runner, walking-skeleton, Graph headless and fake-service container acceptance. |
816
+ | `pnpm test:containers` | Fake-only runner, walking-skeleton, Graph headless and fake-service container acceptance. |
812
817
  | `pnpm test:browser` | Real admin pages in an isolated Chrome session through `chrome-devtools-axi`, against the local fake browser harness. |
813
818
  | `pnpm test:containers --measure-cache` | The container block plus an identical-input warm runner build measurement. |
814
819
  | `pnpm errors:generate` | Regenerate the error reference after changing the catalogue. |
815
820
 
816
- The container block builds before probing, emits head/input/output evidence and timings, and removes its uniquely owned test images and private BuildKit cache.
821
+ The container block builds before running independent acceptance phases concurrently, emits head/input/output evidence and timings, and waits for every phase before removing its uniquely owned test images and private BuildKit cache.
822
+ The [gate configuration](.no-mistakes.yaml) owns the paths that require container acceptance and the CLI, documentation, workflow and skill-only exemptions.
823
+ Every release requires container acceptance under the [release prerequisites](docs/runbook.md#npm-client-releases).
817
824
  Do not touch shared Docker resources or use real service credentials.
818
825
  Changed relevant inputs invalidate earlier container evidence.
819
826
  Upstream pins and integrity records live in [tools/package.json](tools/package.json), [tools/integrity.json](tools/integrity.json) and [tools/falcon-source.json](tools/falcon-source.json).
@@ -827,7 +834,7 @@ Before publishing a candidate, commit and build it, then set `ARTIUM_AXI_HYGIENE
827
834
  pnpm hygiene:check
828
835
  ```
829
836
 
830
- The UTF-8 list contains one literal term per line, matched case-insensitively after trimming whitespace; blanks and duplicates are ignored.
837
+ The UTF-8 list contains one literal term per line, matched after trimming whitespace using context-independent Unicode simple case folding; blanks and case-equivalent duplicates are ignored.
831
838
  Unset, unreadable, empty or in-tree lists fail.
832
839
  Never copy real terms or the list into this repository.
833
840
  Record only its revision or SHA-256, candidate commit and pass/fail result.
@@ -835,7 +842,7 @@ Record only its revision or SHA-256, candidate commit and pass/fail result.
835
842
  The check scans tracked, untracked and ignored files, generated output and every commit message reachable from `HEAD`, excluding only `.git` metadata and installed `node_modules` directories.
836
843
  Supply intended release assets outside the checkout as additional `pnpm hygiene:check` arguments, keeping the list outside those directories too.
837
844
  Symlinks, unreadable files and BOM-marked UTF-16/UTF-32 assets fail rather than reducing coverage; convert unsupported encodings to UTF-8.
838
- Diagnostics report location and normalized entry number without secret excerpts, and redact labels whose paths match a term.
845
+ Diagnostics report location (with one-based columns in the original text's UTF-16 code units) and normalized entry number without secret excerpts, and redact labels whose paths match a term using the same folding rule.
839
846
  The scan cannot guarantee absence of unknown sensitive values and does not approve publication.
840
847
 
841
848
  Further operational guidance lives in the [runbook](docs/runbook.md); local implementation and deferred live acceptance are tracked in the [evidence ledger](docs/evidence-ledger.md).
@@ -19692,7 +19692,7 @@ var definitions = {
19692
19692
  PASSWORD_FILE_INVALID: { status: 400, message: "The password file is missing or unreadable.", next: "Supply a readable UTF-8 password file containing the exact password, without an added newline." },
19693
19693
  BOOTSTRAP_INCONSISTENT: { status: 503, message: "The store contains data without a bootstrap marker.", next: "Stop the server and restore a consistent bootstrapped store and matching master key." },
19694
19694
  RECOVERY_FAILED: { status: 500, message: "Administrator recovery did not complete.", next: "Use an existing local username in a bootstrapped store, check the matching master key and inspect local storage." },
19695
- PASSWORD_INVALID: { status: 400, message: "The password does not meet the local password rules.", next: "Use 15 to 128 Unicode code points, at most 512 UTF-8 bytes, and avoid common passwords." },
19695
+ PASSWORD_INVALID: { status: 400, message: "The password must be non-empty and at most 512 UTF-8 bytes.", next: "Enter a password of at most 512 UTF-8 bytes." },
19696
19696
  SIGN_IN_FAILED: { status: 401, message: "The username or password is incorrect.", next: "Check your username and password." },
19697
19697
  SSO_STATE_INVALID: { status: 400, message: "The SSO sign-in request expired or was already used.", next: "Start a new sign-in from this browser." },
19698
19698
  SSO_TOKEN_INVALID: { status: 401, message: "The identity provider response could not be verified.", next: "Start a new sign-in or ask an administrator to check provider settings." },
@@ -19776,10 +19776,7 @@ var inputLimits = {
19776
19776
  files: 8
19777
19777
  };
19778
19778
  var byteLength = (value) => new TextEncoder().encode(value).length;
19779
- var passwordSchema = external_exports.string().refine((value) => {
19780
- const length = [...value].length;
19781
- return length >= 15 && length <= 128 && byteLength(value) <= 512;
19782
- }, "Expected 15 to 128 Unicode code points and at most 512 UTF-8 bytes");
19779
+ var passwordSchema = external_exports.string().min(1).refine((value) => byteLength(value) <= 512, "Expected at most 512 UTF-8 bytes");
19783
19780
  var passwordChangeSchema = external_exports.strictObject({ newPassword: external_exports.string(), currentPassword: external_exports.string().optional() });
19784
19781
  var loginSchema = external_exports.strictObject({ username: external_exports.string(), password: external_exports.string() });
19785
19782
  var refreshSchema = external_exports.strictObject({ refreshToken: external_exports.string().min(1) });
@@ -20452,7 +20449,7 @@ import { rootCertificates } from "node:tls";
20452
20449
  // package.json
20453
20450
  var package_default = {
20454
20451
  name: "artium-axi",
20455
- version: "0.0.4",
20452
+ version: "0.0.5",
20456
20453
  private: true,
20457
20454
  license: "MIT",
20458
20455
  type: "module",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@knowttl/artium-axi",
3
- "version": "0.0.4",
3
+ "version": "0.0.5",
4
4
  "description": "Client CLI and embedded skill for the Artium managed tools server.",
5
5
  "license": "MIT",
6
6
  "type": "module",