@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 +13 -6
- package/bin/artium-axi.mjs +3 -6
- package/package.json +1 -1
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
|
|
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` |
|
|
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
|
|
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
|
|
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).
|
package/bin/artium-axi.mjs
CHANGED
|
@@ -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
|
|
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.
|
|
20452
|
+
version: "0.0.5",
|
|
20456
20453
|
private: true,
|
|
20457
20454
|
license: "MIT",
|
|
20458
20455
|
type: "module",
|