@mnemonik/credentials 0.1.76 → 0.1.77
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/dist/index.js +3 -3
- package/dist/storage.d.ts +2 -2
- package/dist/storage.js +2 -2
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -300,7 +300,7 @@ export function createCredentialAdapter(options = {}) {
|
|
|
300
300
|
/**
|
|
301
301
|
* One rotation request, with its retry rules. A lost response is retried once, inside the
|
|
302
302
|
* caller's lease and with the same predecessor, because the issuer may already have rotated
|
|
303
|
-
* (rotation_response_lost otherwise). A 429/5xx is an answer
|
|
303
|
+
* (rotation_response_lost otherwise). A 429/5xx is an answer - nothing rotated - so its
|
|
304
304
|
* back-off is not slept here: it is returned as `{ backoffMs }` for rotateStored to wait out
|
|
305
305
|
* with the lease released. `state` carries the attempt counters across those lease entries.
|
|
306
306
|
*/
|
|
@@ -544,7 +544,7 @@ export function createCredentialAdapter(options = {}) {
|
|
|
544
544
|
* goes first: a crash between the two deletes then leaves only a record-less secret, which
|
|
545
545
|
* every reader treats as absent, sign-in overwrites, revokeFamily can still revoke with, and
|
|
546
546
|
* forget erases. Deleting the secret first left a record without its secret, on which every
|
|
547
|
-
* read
|
|
547
|
+
* read - and so every sign-in, sign-out and rollback - failed.
|
|
548
548
|
*/
|
|
549
549
|
async function removeStored(recordPath, kind, secretPath) {
|
|
550
550
|
const record = await readRecord(recordPath, kind);
|
|
@@ -647,7 +647,7 @@ export function createCredentialAdapter(options = {}) {
|
|
|
647
647
|
* The root-binding key. Hooks call this on every run, so an existing key is read without the
|
|
648
648
|
* lease or ensureParent (which on Windows runs icacls for each directory): the binding is
|
|
649
649
|
* written once, secret then record, under the lease, so a record whose secret reads back is
|
|
650
|
-
* a complete key. Only a key that must be created takes the slow path
|
|
650
|
+
* a complete key. Only a key that must be created takes the slow path - the private
|
|
651
651
|
* directories first, then the lease (never the reverse, or the lease would create them
|
|
652
652
|
* without their ACLs), a reread, and the write. A record whose secret is gone is replaced.
|
|
653
653
|
*/
|
package/dist/storage.d.ts
CHANGED
|
@@ -32,9 +32,9 @@ export declare function credentialPaths(stateDir?: string, familyId?: string): {
|
|
|
32
32
|
secret: string;
|
|
33
33
|
};
|
|
34
34
|
/**
|
|
35
|
-
* Symlink policy (
|
|
35
|
+
* Symlink policy (the credential store design: "reject symlinks, wrong ownership, weak permissions"): the
|
|
36
36
|
* directories ABOVE the configured state root are canonicalized once, at construction, and
|
|
37
|
-
* trusted
|
|
37
|
+
* trusted - the user's home or the OS temp directory may legitimately be reached through a
|
|
38
38
|
* link (/home -> /data/home, macOS /var -> /private/var), and refusing those made every
|
|
39
39
|
* credential operation fail. The root itself is not resolved: it and every component inside
|
|
40
40
|
* it are lstat()ed on each use and a symbolic link there is refused (symlink_rejected; for
|
package/dist/storage.js
CHANGED
|
@@ -55,9 +55,9 @@ function canonicalDirectory(path) {
|
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
57
|
/**
|
|
58
|
-
* Symlink policy (
|
|
58
|
+
* Symlink policy (the credential store design: "reject symlinks, wrong ownership, weak permissions"): the
|
|
59
59
|
* directories ABOVE the configured state root are canonicalized once, at construction, and
|
|
60
|
-
* trusted
|
|
60
|
+
* trusted - the user's home or the OS temp directory may legitimately be reached through a
|
|
61
61
|
* link (/home -> /data/home, macOS /var -> /private/var), and refusing those made every
|
|
62
62
|
* credential operation fail. The root itself is not resolved: it and every component inside
|
|
63
63
|
* it are lstat()ed on each use and a symbolic link there is refused (symlink_rejected; for
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mnemonik/credentials",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.77",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/JayDeeCo-Limited/mnemonik.git",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
},
|
|
30
30
|
"license": "SEE LICENSE IN LICENSE",
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@mnemonik/local-setup": "0.1.
|
|
32
|
+
"@mnemonik/local-setup": "0.1.77"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
35
|
"@typescript/native": "npm:typescript@7.0.2",
|