ulda-auth 1.0.0 → 1.1.0
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/CHANGELOG.md +15 -1
- package/MANIFEST.md +14 -3
- package/README.md +6 -0
- package/SECURITY.md +2 -0
- package/dist/ulda-library.js +1 -1
- package/docs/API.md +5 -1
- package/docs/GUIDE.md +23 -0
- package/docs/LIMITS.md +102 -0
- package/docs/PIPELINES.md +3 -1
- package/docs/PROTOCOL.md +35 -2
- package/package.json +3 -2
- package/src/client.js +35 -25
- package/src/crypto.js +6 -6
- package/src/diagnostics.js +1 -1
- package/src/protocol.js +27 -27
- package/src/transfer.js +80 -0
- package/src/transport.js +110 -5
- package/src/values.js +11 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,20 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## 1.1.0
|
|
4
|
+
|
|
5
|
+
- Remove the fixed 63-content catalog limit; read larger catalogs in bounded ID batches.
|
|
6
|
+
- Transfer large encrypted resources and atomic mutation batches in bounded frames, with a single server commit and complete Changed assembly before client publication.
|
|
7
|
+
- Bound staging by bytes and deadlines; keep uncertain commits non-replayable. Require transfer-capable servers for operations beyond the ordinary wire limits.
|
|
8
|
+
- Document effective server subscription, staging, queue and timeout limits, eager-loading costs and upgrade requirements.
|
|
9
|
+
- Preserve public API signatures, the encrypted container format and the core dependency.
|
|
10
|
+
|
|
11
|
+
## 1.0.1
|
|
12
|
+
|
|
13
|
+
- Fix the release dry-run for versions already present in npm, with regression tests for dry-run safety and archive integrity.
|
|
14
|
+
- Clarify GitHub Actions rehearsals, trusted publisher configuration and maintainer approval in the publishing guide.
|
|
15
|
+
- SDK runtime, public API, wire protocol, cryptographic profile and dependencies are unchanged from 1.0.0.
|
|
16
|
+
|
|
17
|
+
## 1.0.0
|
|
4
18
|
|
|
5
19
|
- Initial public SDK package: encrypted master/content lifecycle over ULDA and Socket.IO.
|
|
6
20
|
- Per-resource chains, binary transport, subscriptions, X/S queues and explicit conflict handling.
|
package/MANIFEST.md
CHANGED
|
@@ -76,8 +76,11 @@ The client provides registration/opening, CRUD, nested references, local snapsho
|
|
|
76
76
|
| Application JSON per resource | 1,048,576 UTF-8 bytes |
|
|
77
77
|
| JSON nesting depth | 48 |
|
|
78
78
|
| Visited JSON nodes | 40,000 |
|
|
79
|
-
| Content entries per master |
|
|
80
|
-
| Items per protocol batch/event | 64 |
|
|
79
|
+
| Content entries per master | No fixed count; catalog bytes and server budgets apply |
|
|
80
|
+
| Items per ordinary protocol batch/event or transfer append | 64 |
|
|
81
|
+
| Reassembled encrypted resource | 67,108,864 bytes |
|
|
82
|
+
| Logical transfer / queued incoming binary budget | 134,217,728 bytes |
|
|
83
|
+
| Large-resource fragment | 1,048,576 bytes |
|
|
81
84
|
| Combined witness/payload bytes per message | 8,388,608 |
|
|
82
85
|
| Binary attachments per Socket.IO packet | 128 |
|
|
83
86
|
| Bytes per binary attachment | 1,100,000 |
|
|
@@ -87,7 +90,11 @@ The client provides registration/opening, CRUD, nested references, local snapsho
|
|
|
87
90
|
| Content name | 1–256 UTF-16 code units |
|
|
88
91
|
| Master password input | 1–1024 UTF-16 code units |
|
|
89
92
|
|
|
90
|
-
Container overhead and catalog metadata consume additional space; not every theoretical maximum can necessarily be combined in one batch.
|
|
93
|
+
Container overhead and catalog metadata consume additional space; not every theoretical maximum can necessarily be combined in one batch. The 40,000-node and 1 MiB JSON limits apply to application content; the private catalog uses the resource byte budget (with 4,096 bytes reserved for envelope overhead) and a byte-derived node bound. JSON depth remains bounded in both cases.
|
|
94
|
+
|
|
95
|
+
The SDK reads catalog contents in groups of at most 64 IDs and reduces the group when a server explicitly rejects its size. Large ciphertext is reassembled from fragments. Large atomic writes use a staged transfer followed by one commit, never separate partial mutations. Logical transfer accounting includes 256 bytes per item. This framing requires a server implementing the [transfer extension](docs/PROTOCOL.md#large-operation-transfer). Server subscription, Router, byte and timeout budgets can reject an otherwise valid catalog or operation.
|
|
96
|
+
|
|
97
|
+
Catalogs are loaded eagerly: all required content is verified before a new snapshot is published. There is no lazy loading or nested-master API. Removing the fixed entry count does not promise unlimited memory, storage or operation size.
|
|
91
98
|
|
|
92
99
|
## Environment and distribution
|
|
93
100
|
|
|
@@ -98,3 +105,7 @@ The normal ESM entry uses npm dependencies. The browser ESM bundles them and inc
|
|
|
98
105
|
Private fields, non-extractable keys and best-effort cleanup do not isolate secrets from hostile code controlling the same page or process. [Secret lifecycle](docs/SECRET_LIFECYCLE.md) defines cleanup responsibilities.
|
|
99
106
|
|
|
100
107
|
The [ULDA Library Community Source License](LICENSE.md) governs the SDK. Dependencies retain their own licenses; the core and server have separate scopes.
|
|
108
|
+
|
|
109
|
+
## Capacity and compatibility
|
|
110
|
+
|
|
111
|
+
See [Limits and capacity planning](docs/LIMITS.md) for SDK bounds, interacting server budgets, eager-loading costs, atomicity, timeouts and upgrades from 1.0.x.
|
package/README.md
CHANGED
|
@@ -4,6 +4,8 @@ A JavaScript SDK for encrypted JSON resources over Socket.IO, built on [ULDA Cor
|
|
|
4
4
|
|
|
5
5
|
ULDA Auth encrypts application data on the client, maintains a separate ULDA chain for each resource, and synchronizes changes across connected clients. Applications work with JSON and explicit update methods.
|
|
6
6
|
|
|
7
|
+
Catalogs have no fixed content-entry count limit. The SDK uses bounded read batches and, with a transfer-capable server, stages large encrypted operations for a single atomic commit. Byte, memory and server admission budgets still apply; see [large catalogs](docs/GUIDE.md#large-catalogs).
|
|
8
|
+
|
|
7
9
|
## Install
|
|
8
10
|
|
|
9
11
|
~~~sh
|
|
@@ -130,3 +132,7 @@ For repository tooling, see [development](https://github.com/ulda-io/ulda-auth/b
|
|
|
130
132
|
[ULDA Library Community Source License 1.0](LICENSE.md), a source-available license with revenue and competitive-use conditions. Commercial licensing: [mark@shaposhnik.ch](mailto:mark@shaposhnik.ch).
|
|
131
133
|
|
|
132
134
|
See the [licensing guide](docs/LICENSING.md) for a summary. Dependencies retain their own licenses.
|
|
135
|
+
|
|
136
|
+
## Capacity and compatibility
|
|
137
|
+
|
|
138
|
+
See [Limits and capacity planning](docs/LIMITS.md) for SDK bounds, interacting server budgets, eager-loading costs, atomicity, timeouts and upgrades from 1.0.x.
|
package/SECURITY.md
CHANGED
|
@@ -89,6 +89,8 @@ See [Secret lifecycle](docs/SECRET_LIFECYCLE.md) for allocation and cleanup beha
|
|
|
89
89
|
|
|
90
90
|
The SDK bounds JSON sizes, queues, batches and binary reconstruction. See the [manifest](MANIFEST.md) for exact limits. Parser checks do not impose a total memory limit on the browser or Node process: the runtime may have allocated a frame before validation.
|
|
91
91
|
|
|
92
|
+
Large-operation frames contain ciphertext and public witnesses only. Framing does not change the encrypted container or its authentication. A compatible server must bound staged bytes, expire abandoned uploads, validate every candidate before one atomic commit, and keep an accepted commit's reservations until completion. The client does not expose a partial assembled Changed event or a partially checked catalog. Temporary transfer tokens do not add replay protection or resolve a lost Commit ACK. Larger catalogs increase client memory and processing costs despite bounded network frames.
|
|
93
|
+
|
|
92
94
|
SDK diagnostics contain fixed event codes, IDs, counts, sizes and timings. They omit plaintext, content names, credentials, full origins and raw packets. Server error strings are mapped to fixed local errors. IDs and access patterns can still be sensitive metadata; protect application logs accordingly.
|
|
93
95
|
|
|
94
96
|
The test reporter and local secret scanner reduce accidental disclosure during development. They do not sandbox arbitrary code or prove the absence of all secrets.
|