@junobuild/config 1.1.0 → 1.1.1

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
@@ -14,18 +14,125 @@ Configuration options for [Juno] CLI.
14
14
 
15
15
  ### :wrench: Constants
16
16
 
17
+ - [SatelliteAssertionsSchema](#gear-satelliteassertionsschema)
18
+ - [AuthenticationConfigInternetIdentitySchema](#gear-authenticationconfiginternetidentityschema)
19
+ - [AuthenticationConfigRulesSchema](#gear-authenticationconfigrulesschema)
20
+ - [AuthenticationConfigSchema](#gear-authenticationconfigschema)
21
+ - [PermissionTextSchema](#gear-permissiontextschema)
22
+ - [MemoryTextSchema](#gear-memorytextschema)
23
+ - [RulesTypeSchema](#gear-rulestypeschema)
24
+ - [RuleSchema](#gear-ruleschema)
25
+ - [DatastoreCollectionSchema](#gear-datastorecollectionschema)
26
+ - [StorageCollectionSchema](#gear-storagecollectionschema)
27
+ - [CollectionsSchema](#gear-collectionsschema)
17
28
  - [MaxMemorySizeConfigSchema](#gear-maxmemorysizeconfigschema)
29
+ - [DatastoreConfigSchema](#gear-datastoreconfigschema)
30
+ - [EmulatorConfigSchema](#gear-emulatorconfigschema)
31
+ - [ModuleLogVisibilitySchema](#gear-modulelogvisibilityschema)
32
+ - [ModuleSettingsSchema](#gear-modulesettingsschema)
33
+ - [JunoConfigModeSchema](#gear-junoconfigmodeschema)
34
+ - [JunoConfigEnvSchema](#gear-junoconfigenvschema)
35
+ - [OrbiterIdSchema](#gear-orbiteridschema)
36
+ - [OrbiterIdsSchema](#gear-orbiteridsschema)
37
+ - [OrbiterConfigSchema](#gear-orbiterconfigschema)
18
38
  - [StorageConfigSourceGlobSchema](#gear-storageconfigsourceglobschema)
19
39
  - [StorageConfigHeaderSchema](#gear-storageconfigheaderschema)
20
40
  - [StorageConfigRewriteSchema](#gear-storageconfigrewriteschema)
21
41
  - [StorageConfigRedirectSchema](#gear-storageconfigredirectschema)
22
42
  - [StorageConfigSchema](#gear-storageconfigschema)
23
- - [ModuleLogVisibilitySchema](#gear-modulelogvisibilityschema)
24
- - [ModuleSettingsSchema](#gear-modulesettingsschema)
25
- - [JunoConfigModeSchema](#gear-junoconfigmodeschema)
26
- - [JunoConfigEnvSchema](#gear-junoconfigenvschema)
27
43
  - [EncodingTypeSchema](#gear-encodingtypeschema)
28
44
  - [CliConfigSchema](#gear-cliconfigschema)
45
+ - [SatelliteIdSchema](#gear-satelliteidschema)
46
+ - [SatelliteIdsSchema](#gear-satelliteidsschema)
47
+ - [SatelliteConfigOptionsSchema](#gear-satelliteconfigoptionsschema)
48
+
49
+ #### :gear: SatelliteAssertionsSchema
50
+
51
+ | Constant | Type |
52
+ | --------------------------- | ---------------------------------------------------------------------------------------------- |
53
+ | `SatelliteAssertionsSchema` | `ZodObject<{ heapMemory: ZodOptional<ZodUnion<readonly [ZodBigInt, ZodBoolean]>>; }, $strict>` |
54
+
55
+ [:link: Source](https://github.com/junobuild/juno-js/tree/main/packages/config/src/satellite/configs/assertions.config.ts#L6)
56
+
57
+ #### :gear: AuthenticationConfigInternetIdentitySchema
58
+
59
+ | Constant | Type |
60
+ | -------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
61
+ | `AuthenticationConfigInternetIdentitySchema` | `ZodObject<{ derivationOrigin: ZodOptional<ZodURL>; externalAlternativeOrigins: ZodOptional<ZodArray<ZodURL>>; }, $strict>` |
62
+
63
+ [:link: Source](https://github.com/junobuild/juno-js/tree/main/packages/config/src/satellite/configs/authentication.config.ts#L7)
64
+
65
+ #### :gear: AuthenticationConfigRulesSchema
66
+
67
+ | Constant | Type |
68
+ | --------------------------------- | -------------------------------------------------------------- |
69
+ | `AuthenticationConfigRulesSchema` | `ZodObject<{ allowedCallers: ZodArray<ZodString>; }, $strict>` |
70
+
71
+ [:link: Source](https://github.com/junobuild/juno-js/tree/main/packages/config/src/satellite/configs/authentication.config.ts#L36)
72
+
73
+ #### :gear: AuthenticationConfigSchema
74
+
75
+ | Constant | Type |
76
+ | ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
77
+ | `AuthenticationConfigSchema` | `ZodObject<{ internetIdentity: ZodOptional<ZodObject<{ derivationOrigin: ZodOptional<ZodURL>; externalAlternativeOrigins: ZodOptional<ZodArray<ZodURL>>; }, $strict>>; rules: ZodOptional<...>; version: ZodOptional<...>; }, $strict>` |
78
+
79
+ [:link: Source](https://github.com/junobuild/juno-js/tree/main/packages/config/src/satellite/configs/authentication.config.ts#L59)
80
+
81
+ #### :gear: PermissionTextSchema
82
+
83
+ | Constant | Type |
84
+ | ---------------------- | ---------------------------------------------------------------------------------------------------- |
85
+ | `PermissionTextSchema` | `ZodEnum<{ public: "public"; private: "private"; managed: "managed"; controllers: "controllers"; }>` |
86
+
87
+ [:link: Source](https://github.com/junobuild/juno-js/tree/main/packages/config/src/satellite/configs/rules.ts#L6)
88
+
89
+ #### :gear: MemoryTextSchema
90
+
91
+ | Constant | Type |
92
+ | ------------------ | ---------------------------------------------- |
93
+ | `MemoryTextSchema` | `ZodEnum<{ heap: "heap"; stable: "stable"; }>` |
94
+
95
+ [:link: Source](https://github.com/junobuild/juno-js/tree/main/packages/config/src/satellite/configs/rules.ts#L17)
96
+
97
+ #### :gear: RulesTypeSchema
98
+
99
+ | Constant | Type |
100
+ | ----------------- | -------------------------------------------- |
101
+ | `RulesTypeSchema` | `ZodEnum<{ db: "db"; storage: "storage"; }>` |
102
+
103
+ [:link: Source](https://github.com/junobuild/juno-js/tree/main/packages/config/src/satellite/configs/rules.ts#L28)
104
+
105
+ #### :gear: RuleSchema
106
+
107
+ | Constant | Type |
108
+ | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
109
+ | `RuleSchema` | `ZodObject<{ collection: ZodString; read: ZodEnum<{ public: "public"; private: "private"; managed: "managed"; controllers: "controllers"; }>; write: ZodEnum<{ public: "public"; private: "private"; managed: "managed"; controllers: "controllers"; }>; ... 8 more ...; maxTokens: ZodOptional<...>; }, $strict>` |
110
+
111
+ [:link: Source](https://github.com/junobuild/juno-js/tree/main/packages/config/src/satellite/configs/rules.ts#L39)
112
+
113
+ #### :gear: DatastoreCollectionSchema
114
+
115
+ | Constant | Type |
116
+ | --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
117
+ | `DatastoreCollectionSchema` | `ZodObject<{ version: ZodOptional<ZodBigInt>; collection: ZodString; read: ZodEnum<{ public: "public"; private: "private"; managed: "managed"; controllers: "controllers"; }>; ... 5 more ...; maxTokens: ZodOptional<...>; }, $strict>` |
118
+
119
+ [:link: Source](https://github.com/junobuild/juno-js/tree/main/packages/config/src/satellite/configs/collections.ts#L7)
120
+
121
+ #### :gear: StorageCollectionSchema
122
+
123
+ | Constant | Type |
124
+ | ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
125
+ | `StorageCollectionSchema` | `ZodObject<{ version: ZodOptional<ZodBigInt>; collection: ZodString; read: ZodEnum<{ public: "public"; private: "private"; managed: "managed"; controllers: "controllers"; }>; ... 5 more ...; maxTokens: ZodOptional<...>; }, $strict>` |
126
+
127
+ [:link: Source](https://github.com/junobuild/juno-js/tree/main/packages/config/src/satellite/configs/collections.ts#L22)
128
+
129
+ #### :gear: CollectionsSchema
130
+
131
+ | Constant | Type |
132
+ | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
133
+ | `CollectionsSchema` | `ZodObject<{ datastore: ZodOptional<ZodArray<ZodObject<{ version: ZodOptional<ZodBigInt>; collection: ZodString; read: ZodEnum<{ public: "public"; private: "private"; managed: "managed"; controllers: "controllers"; }>; ... 5 more ...; maxTokens: ZodOptional<...>; }, $strict>>>; storage: ZodOptional<...>; }, $strict>` |
134
+
135
+ [:link: Source](https://github.com/junobuild/juno-js/tree/main/packages/config/src/satellite/configs/collections.ts#L37)
29
136
 
30
137
  #### :gear: MaxMemorySizeConfigSchema
31
138
 
@@ -35,6 +142,78 @@ Configuration options for [Juno] CLI.
35
142
 
36
143
  [:link: Source](https://github.com/junobuild/juno-js/tree/main/packages/config/src/shared/feature.config.ts#L6)
37
144
 
145
+ #### :gear: DatastoreConfigSchema
146
+
147
+ | Constant | Type |
148
+ | ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
149
+ | `DatastoreConfigSchema` | `ZodObject<{ maxMemorySize: ZodOptional<ZodObject<{ heap: ZodOptional<ZodBigInt>; stable: ZodOptional<ZodBigInt>; }, $strict>>; version: ZodOptional<...>; }, $strict>` |
150
+
151
+ [:link: Source](https://github.com/junobuild/juno-js/tree/main/packages/config/src/satellite/configs/datastore.config.ts#L7)
152
+
153
+ #### :gear: EmulatorConfigSchema
154
+
155
+ | Constant | Type |
156
+ | ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
157
+ | `EmulatorConfigSchema` | `ZodUnion<readonly [ZodObject<{ runner: ZodOptional<ZodObject<{ type: ZodEnum<{ docker: "docker"; podman: "podman"; }>; image: ZodOptional<ZodString>; name: ZodOptional<ZodString>; volume: ZodOptional<...>; target: ZodOptional<...>; platform: ZodOptional<...>; }, $strict>>; skylab: ZodObject<...>; }, $strict>, ZodObj...` |
158
+
159
+ [:link: Source](https://github.com/junobuild/juno-js/tree/main/packages/config/src/satellite/configs/emulator.config.ts#L151)
160
+
161
+ #### :gear: ModuleLogVisibilitySchema
162
+
163
+ | Constant | Type |
164
+ | --------------------------- | ------------------------------------------------------------ |
165
+ | `ModuleLogVisibilitySchema` | `ZodEnum<{ public: "public"; controllers: "controllers"; }>` |
166
+
167
+ [:link: Source](https://github.com/junobuild/juno-js/tree/main/packages/config/src/satellite/configs/module.settings.ts#L6)
168
+
169
+ #### :gear: ModuleSettingsSchema
170
+
171
+ | Constant | Type |
172
+ | ---------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
173
+ | `ModuleSettingsSchema` | `ZodObject<{ freezingThreshold: ZodOptional<ZodBigInt>; reservedCyclesLimit: ZodOptional<ZodBigInt>; logVisibility: ZodOptional<ZodEnum<{ public: "public"; controllers: "controllers"; }>>; heapMemoryLimit: ZodOptional<...>; memoryAllocation: ZodOptional<...>; computeAllocation: ZodOptional<...>; }, $strict>` |
174
+
175
+ [:link: Source](https://github.com/junobuild/juno-js/tree/main/packages/config/src/satellite/configs/module.settings.ts#L21)
176
+
177
+ #### :gear: JunoConfigModeSchema
178
+
179
+ | Constant | Type |
180
+ | ---------------------- | ---------------------------------------------------------- |
181
+ | `JunoConfigModeSchema` | `ZodUnion<readonly [ZodLiteral<"production">, ZodString]>` |
182
+
183
+ [:link: Source](https://github.com/junobuild/juno-js/tree/main/packages/config/src/types/juno.env.ts#L6)
184
+
185
+ #### :gear: JunoConfigEnvSchema
186
+
187
+ | Constant | Type |
188
+ | --------------------- | ---------------------------------------------------------------------------------------- |
189
+ | `JunoConfigEnvSchema` | `ZodObject<{ mode: ZodUnion<readonly [ZodLiteral<"production">, ZodString]>; }, $strip>` |
190
+
191
+ [:link: Source](https://github.com/junobuild/juno-js/tree/main/packages/config/src/types/juno.env.ts#L17)
192
+
193
+ #### :gear: OrbiterIdSchema
194
+
195
+ | Constant | Type |
196
+ | ----------------- | --------------------------------------- |
197
+ | `OrbiterIdSchema` | `ZodObject<{ id: ZodString; }, $strip>` |
198
+
199
+ [:link: Source](https://github.com/junobuild/juno-js/tree/main/packages/config/src/satellite/configs/orbiter.config.ts#L10)
200
+
201
+ #### :gear: OrbiterIdsSchema
202
+
203
+ | Constant | Type |
204
+ | ------------------ | ------------------------------------------------------------------------------------------------------------- |
205
+ | `OrbiterIdsSchema` | `ZodObject<{ ids: ZodRecord<ZodUnion<readonly [ZodLiteral<"production">, ZodString]>, ZodString>; }, $strip>` |
206
+
207
+ [:link: Source](https://github.com/junobuild/juno-js/tree/main/packages/config/src/satellite/configs/orbiter.config.ts#L29)
208
+
209
+ #### :gear: OrbiterConfigSchema
210
+
211
+ | Constant | Type |
212
+ | --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
213
+ | `OrbiterConfigSchema` | `ZodUnion<readonly [ZodObject<{ id: ZodString; }, $strict>, ZodObject<{ ids: ZodRecord<ZodUnion<readonly [ZodLiteral<"production">, ZodString]>, ZodString>; }, $strict>]>` |
214
+
215
+ [:link: Source](https://github.com/junobuild/juno-js/tree/main/packages/config/src/satellite/configs/orbiter.config.ts#L56)
216
+
38
217
  #### :gear: StorageConfigSourceGlobSchema
39
218
 
40
219
  | Constant | Type |
@@ -75,38 +254,6 @@ Configuration options for [Juno] CLI.
75
254
 
76
255
  [:link: Source](https://github.com/junobuild/juno-js/tree/main/packages/config/src/shared/storage.config.ts#L114)
77
256
 
78
- #### :gear: ModuleLogVisibilitySchema
79
-
80
- | Constant | Type |
81
- | --------------------------- | ------------------------------------------------------------ |
82
- | `ModuleLogVisibilitySchema` | `ZodEnum<{ controllers: "controllers"; public: "public"; }>` |
83
-
84
- [:link: Source](https://github.com/junobuild/juno-js/tree/main/packages/config/src/module/module.settings.ts#L6)
85
-
86
- #### :gear: ModuleSettingsSchema
87
-
88
- | Constant | Type |
89
- | ---------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
90
- | `ModuleSettingsSchema` | `ZodObject<{ freezingThreshold: ZodOptional<ZodBigInt>; reservedCyclesLimit: ZodOptional<ZodBigInt>; logVisibility: ZodOptional<ZodEnum<{ controllers: "controllers"; public: "public"; }>>; heapMemoryLimit: ZodOptional<...>; memoryAllocation: ZodOptional<...>; computeAllocation: ZodOptional<...>; }, $strict>` |
91
-
92
- [:link: Source](https://github.com/junobuild/juno-js/tree/main/packages/config/src/module/module.settings.ts#L21)
93
-
94
- #### :gear: JunoConfigModeSchema
95
-
96
- | Constant | Type |
97
- | ---------------------- | ---------------------------------------------------------- |
98
- | `JunoConfigModeSchema` | `ZodUnion<readonly [ZodLiteral<"production">, ZodString]>` |
99
-
100
- [:link: Source](https://github.com/junobuild/juno-js/tree/main/packages/config/src/types/juno.env.ts#L6)
101
-
102
- #### :gear: JunoConfigEnvSchema
103
-
104
- | Constant | Type |
105
- | --------------------- | ---------------------------------------------------------------------------------------- |
106
- | `JunoConfigEnvSchema` | `ZodObject<{ mode: ZodUnion<readonly [ZodLiteral<"production">, ZodString]>; }, $strip>` |
107
-
108
- [:link: Source](https://github.com/junobuild/juno-js/tree/main/packages/config/src/types/juno.env.ts#L17)
109
-
110
257
  #### :gear: EncodingTypeSchema
111
258
 
112
259
  see EncodingType
@@ -125,16 +272,120 @@ see EncodingType
125
272
 
126
273
  [:link: Source](https://github.com/junobuild/juno-js/tree/main/packages/config/src/types/cli.config.ts#L7)
127
274
 
275
+ #### :gear: SatelliteIdSchema
276
+
277
+ | Constant | Type |
278
+ | ------------------- | --------------------------------------- |
279
+ | `SatelliteIdSchema` | `ZodObject<{ id: ZodString; }, $strip>` |
280
+
281
+ [:link: Source](https://github.com/junobuild/juno-js/tree/main/packages/config/src/satellite/configs/satellite.config.ts#L17)
282
+
283
+ #### :gear: SatelliteIdsSchema
284
+
285
+ | Constant | Type |
286
+ | -------------------- | ------------------------------------------------------------------------------------------------------------- |
287
+ | `SatelliteIdsSchema` | `ZodObject<{ ids: ZodRecord<ZodUnion<readonly [ZodLiteral<"production">, ZodString]>, ZodString>; }, $strip>` |
288
+
289
+ [:link: Source](https://github.com/junobuild/juno-js/tree/main/packages/config/src/satellite/configs/satellite.config.ts#L36)
290
+
291
+ #### :gear: SatelliteConfigOptionsSchema
292
+
293
+ | Constant | Type |
294
+ | ------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
295
+ | `SatelliteConfigOptionsSchema` | `ZodUnion<readonly [ZodObject<{ storage: ZodOptional<ZodObject<{ headers: ZodOptional<ZodArray<ZodObject<{ source: ZodString; headers: ZodArray<ZodTuple<[ZodString, ZodString], null>>; }, $strict>>>; ... 5 more ...; version: ZodOptional<...>; }, $strip>>; ... 5 more ...; id: ZodString; }, $strict>, ZodObject<...>]>` |
296
+
297
+ [:link: Source](https://github.com/junobuild/juno-js/tree/main/packages/config/src/satellite/configs/satellite.config.ts#L75)
298
+
128
299
  ### :tropical_drink: Interfaces
129
300
 
301
+ - [SatelliteAssertions](#gear-satelliteassertions)
302
+ - [AuthenticationConfigInternetIdentity](#gear-authenticationconfiginternetidentity)
303
+ - [AuthenticationConfigRules](#gear-authenticationconfigrules)
304
+ - [AuthenticationConfig](#gear-authenticationconfig)
305
+ - [Rule](#gear-rule)
306
+ - [Collections](#gear-collections)
130
307
  - [MaxMemorySizeConfig](#gear-maxmemorysizeconfig)
308
+ - [DatastoreConfig](#gear-datastoreconfig)
309
+ - [EmulatorPorts](#gear-emulatorports)
310
+ - [EmulatorSkylab](#gear-emulatorskylab)
311
+ - [EmulatorConsole](#gear-emulatorconsole)
312
+ - [EmulatorSatellite](#gear-emulatorsatellite)
313
+ - [EmulatorRunner](#gear-emulatorrunner)
314
+ - [ModuleSettings](#gear-modulesettings)
315
+ - [JunoConfigEnv](#gear-junoconfigenv)
316
+ - [OrbiterId](#gear-orbiterid)
317
+ - [OrbiterIds](#gear-orbiterids)
131
318
  - [StorageConfigHeader](#gear-storageconfigheader)
132
319
  - [StorageConfigRewrite](#gear-storageconfigrewrite)
133
320
  - [StorageConfigRedirect](#gear-storageconfigredirect)
134
321
  - [StorageConfig](#gear-storageconfig)
135
- - [ModuleSettings](#gear-modulesettings)
136
- - [JunoConfigEnv](#gear-junoconfigenv)
137
322
  - [CliConfig](#gear-cliconfig)
323
+ - [SatelliteId](#gear-satelliteid)
324
+ - [SatelliteIds](#gear-satelliteids)
325
+ - [SatelliteConfigOptions](#gear-satelliteconfigoptions)
326
+
327
+ #### :gear: SatelliteAssertions
328
+
329
+ Configuration for satellite assertions.
330
+
331
+ | Property | Type | Description |
332
+ | ------------ | -------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
333
+ | `heapMemory` | `bigint or boolean or undefined` | Configuration for the heap memory size check, which can be: - `true` to enable the check with a default threshold of 900MB, - `false` to disable the heap memory size check, - A `bigint` to specify a custom threshold in MB (megabytes) for the heap memory size check. If not specified, then `true` is used as the default value. type: {bigint or boolean} |
334
+
335
+ #### :gear: AuthenticationConfigInternetIdentity
336
+
337
+ Configure the behavior of Internet Identity.
338
+
339
+ | Property | Type | Description |
340
+ | ---------------------------- | ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
341
+ | `derivationOrigin` | `string or undefined` | This setting ensures that users are recognized on your app, regardless of whether they use the default URL or any other custom domain. For example, if set to hello.com, a user signing on at https://hello.com will receive the same identifier (principal) as when signing on at https://www.hello.com. type: {string}optional |
342
+ | `externalAlternativeOrigins` | `string[] or undefined` | An optional list of external alternative origins allowed for authentication, which can be useful if you want to reuse the same derivation origin across multiple Satellites. type: {string[]}optional |
343
+
344
+ #### :gear: AuthenticationConfigRules
345
+
346
+ Configure the rules of the authentication.
347
+
348
+ | Property | Type | Description |
349
+ | ---------------- | ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
350
+ | `allowedCallers` | `string[]` | This option defines who's allowed to use your app. If you enable this, only the identities you list (in user key, format, like `bj4r4-5cdop-...`) will be allowed to sign in or use any features like Datastore or Storage. type: {PrincipalText[]}optional |
351
+
352
+ #### :gear: AuthenticationConfig
353
+
354
+ Configures the Authentication options of a Satellite.
355
+
356
+ | Property | Type | Description |
357
+ | ------------------ | --------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
358
+ | `internetIdentity` | `AuthenticationConfigInternetIdentity or undefined` | Optional configuration of Internet Identity authentication method. type: {AuthenticationConfigInternetIdentity}optional |
359
+ | `rules` | `AuthenticationConfigRules or undefined` | Optional configuration for the rules of the authentication. type: {AuthenticationConfigRules}optional |
360
+ | `version` | `bigint or undefined` | The current version of the config. Optional. The CLI will automatically resolve the version and warn you if there's a potential overwrite. You can provide it if you want to manage versioning manually within your config file. type: {bigint}optional |
361
+
362
+ #### :gear: Rule
363
+
364
+ Represents a rule configuration for a collection.
365
+
366
+ | Property | Type | Description |
367
+ | -------------------- | ---------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
368
+ | `collection` | `string` | The name of the collection the rule applies to. type: {string} |
369
+ | `read` | `PermissionText` | The permission level for read access. type: {PermissionText} |
370
+ | `write` | `PermissionText` | The permission level for write access. type: {PermissionText} |
371
+ | `memory` | `MemoryText` | The type of memory allocated for the collection. type: {MemoryText} |
372
+ | `createdAt` | `bigint or undefined` | The timestamp when the rule was created. type: {bigint}optional |
373
+ | `updatedAt` | `bigint or undefined` | The timestamp when the rule was last updated. type: {bigint}optional |
374
+ | `version` | `bigint or undefined` | The version of the rule. type: {bigint}optionaldescription: Must be provided when updating the rule to ensure the correct version is being updated. |
375
+ | `maxSize` | `bigint or undefined` | The maximum size of the collection in bytes. type: {number}optional |
376
+ | `maxChangesPerUser` | `number or undefined` | The maximum number of changes (create, update or delete) per user for the collection. type: {number}optional |
377
+ | `maxCapacity` | `number or undefined` | The maximum capacity of the collection. type: {number}optional |
378
+ | `mutablePermissions` | `boolean or undefined` | Indicates whether the permissions are mutable. default: truetype: {boolean} |
379
+ | `maxTokens` | `bigint or undefined` | The maximum number of writes and deletes per minute. |
380
+
381
+ #### :gear: Collections
382
+
383
+ Represents the configuration for all the collections of a Satellite.
384
+
385
+ | Property | Type | Description |
386
+ | ----------- | ------------------------------------ | ------------------------------------------------------------------------------------------------------ |
387
+ | `datastore` | `DatastoreCollection[] or undefined` | An optional array that defines the collections of the Datastore. type: {DatastoreCollection[]}optional |
388
+ | `storage` | `StorageCollection[] or undefined` | An optional array that defines the collections of the Storage. type: {StorageCollection[]}optional |
138
389
 
139
390
  #### :gear: MaxMemorySizeConfig
140
391
 
@@ -147,6 +398,100 @@ The maximum size corresponds to the overall heap or stable memory of the smart c
147
398
  | `heap` | `bigint or undefined` | Maximum allowed heap memory size in bytes. This field is optional. If not specified, no limit is enforced on the heap memory size. type: {bigint} |
148
399
  | `stable` | `bigint or undefined` | Maximum allowed stable memory size in bytes. This field is optional. If not specified, no limit is enforced on the stable memory size. type: {bigint} |
149
400
 
401
+ #### :gear: DatastoreConfig
402
+
403
+ Configures the behavior of the Datastore.
404
+
405
+ | Property | Type | Description |
406
+ | --------------- | ---------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
407
+ | `maxMemorySize` | `MaxMemorySizeConfig or undefined` | Configuration for maximum memory size limits for the Datastore. This is used to specify optional limits on heap and stable memory for the smart contract. When the limit is reached, the Datastore and smart contract continue to operate normally but reject the creation or updates of documents. If not specified, no memory limits are enforced. type: {MaxMemorySizeConfig}optional |
408
+ | `version` | `bigint or undefined` | The current version of the config. Optional. The CLI will automatically resolve the version and warn you if there's a potential overwrite. You can provide it if you want to manage versioning manually within your config file. type: {bigint}optional |
409
+
410
+ #### :gear: EmulatorPorts
411
+
412
+ Represents the ports exposed by an emulator container.
413
+
414
+ | Property | Type | Description |
415
+ | -------- | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
416
+ | `server` | `number or undefined` | The port of the server used to simulate execution. This is the port your app connects to. Also known as the "local Internet Computer replica" or the "Pocket-IC port". default: 5987 |
417
+ | `admin` | `number or undefined` | The port of the admin server used for tasks like transferring ICP from the ledger. default: 5999 |
418
+
419
+ #### :gear: EmulatorSkylab
420
+
421
+ Configuration for the Skylab emulator.
422
+
423
+ | Property | Type | Description |
424
+ | -------- | ------------------------------------------------------- | -------------------------------------- |
425
+ | `ports` | `(EmulatorPorts and { console: number; }) or undefined` | Ports exposed by the Skylab container. |
426
+
427
+ #### :gear: EmulatorConsole
428
+
429
+ Configuration for the Console emulator.
430
+
431
+ | Property | Type | Description |
432
+ | -------- | ---------------------------- | --------------------------------------- |
433
+ | `ports` | `EmulatorPorts or undefined` | Ports exposed by the Console container. |
434
+
435
+ #### :gear: EmulatorSatellite
436
+
437
+ Configuration for the Satellite emulator.
438
+
439
+ | Property | Type | Description |
440
+ | -------- | ---------------------------- | ----------------------------------------- |
441
+ | `ports` | `EmulatorPorts or undefined` | Ports exposed by the Satellite container. |
442
+
443
+ #### :gear: EmulatorRunner
444
+
445
+ Shared options for all runner variants.
446
+
447
+ | Property | Type | Description |
448
+ | ---------- | --------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
449
+ | `type` | `"docker" or "podman"` | The containerization tool to run the emulator. |
450
+ | `image` | `string or undefined` | Image reference. default: depends on emulator type, e.g. "junobuild/skylab:latest" |
451
+ | `name` | `string or undefined` | Optional container name to use for the emulator. Useful for reusing or managing a specific container. |
452
+ | `volume` | `string or undefined` | Persistent volume to store internal state. default: "juno" |
453
+ | `target` | `string or undefined` | Shared folder for deploying and hot-reloading serverless functions. |
454
+ | `platform` | `"linux/amd64" or "linux/arm64" or undefined` | The platform to use when running the emulator container. |
455
+
456
+ #### :gear: ModuleSettings
457
+
458
+ Settings for a module - Satellite, Mission Control or Orbiter.
459
+
460
+ These settings control various aspects of the module's behavior and resource usage.
461
+
462
+ | Property | Type | Description |
463
+ | --------------------- | ---------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
464
+ | `freezingThreshold` | `bigint or undefined` | The cycle threshold below which the module will automatically stop to avoid running out of cycles. For example, if set to `BigInt(1000000)`, the module will stop when it has fewer than 1,000,000 cycles remaining. type: {bigint} |
465
+ | `reservedCyclesLimit` | `bigint or undefined` | The number of cycles reserved for the module's operations to ensure it has enough cycles to function. For example, setting it to `BigInt(5000000)` reserves 5,000,000 cycles for the module. type: {bigint} |
466
+ | `logVisibility` | `ModuleLogVisibility or undefined` | Controls who can see the module's logs. type: {ModuleLogVisibility} |
467
+ | `heapMemoryLimit` | `bigint or undefined` | The maximum amount of WebAssembly (Wasm) memory the module can use on the heap. For example, setting it to `BigInt(1024 * 1024 * 64)` allows the module to use up to 64 MB of Wasm memory. type: {bigint} |
468
+ | `memoryAllocation` | `bigint or undefined` | The amount of memory explicitly allocated to the module. For example, setting it to `BigInt(1024 * 1024 * 128)` allocates 128 MB of memory to the module. type: {bigint} |
469
+ | `computeAllocation` | `bigint or undefined` | The proportion of compute capacity allocated to the module. This is a fraction of the total compute capacity of the subnet. For example, setting it to `BigInt(10)` allocates 10% of the compute capacity to the module. type: {bigint} |
470
+
471
+ #### :gear: JunoConfigEnv
472
+
473
+ Represents the environment configuration for Juno.
474
+
475
+ | Property | Type | Description |
476
+ | -------- | -------- | ---------------------------------------------------------- |
477
+ | `mode` | `string` | The mode of the Juno configuration. type: {JunoConfigMode} |
478
+
479
+ #### :gear: OrbiterId
480
+
481
+ Represents the configuration for an orbiter.
482
+
483
+ | Property | Type | Description |
484
+ | -------- | -------- | -------------------------------------------------------------- |
485
+ | `id` | `string` | The identifier of the orbiter used in the dApp. type: {string} |
486
+
487
+ #### :gear: OrbiterIds
488
+
489
+ Represents a mapping of orbiter identitifiers to different configurations based on the mode of the application.
490
+
491
+ | Property | Type | Description |
492
+ | -------- | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
493
+ | `ids` | `Record<string, string>` | A mapping of orbiter identifiers (IDs) to different configurations based on the mode of the application. This allows the application to use different orbiter IDs, such as production, development, etc. Example: { "production": "xo2hm-lqaaa-aaaal-ab3oa-cai", "development": "gl6nx-5maaa-aaaaa-qaaqq-cai" } type: {Record<JunoConfigMode, string>} |
494
+
150
495
  #### :gear: StorageConfigHeader
151
496
 
152
497
  Headers allow the client and the Storage to pass additional information along with a request or a response.
@@ -191,29 +536,6 @@ Configures the hosting behavior of the Storage.
191
536
  | `maxMemorySize` | `MaxMemorySizeConfig or undefined` | Configuration for maximum memory size limits for the Storage. This is used to specify optional limits on heap and stable memory for the smart contract. When the limit is reached, the Storage and smart contract continue to operate normally but reject the upload of new assets. If not specified, no memory limits are enforced. type: {MaxMemorySizeConfig}optional |
192
537
  | `version` | `bigint or undefined` | The current version of the config. Optional. The CLI will automatically resolve the version and warn you if there's a potential overwrite. You can provide it if you want to manage versioning manually within your config file. type: {bigint}optional |
193
538
 
194
- #### :gear: ModuleSettings
195
-
196
- Settings for a module - Satellite, Mission Control or Orbiter.
197
-
198
- These settings control various aspects of the module's behavior and resource usage.
199
-
200
- | Property | Type | Description |
201
- | --------------------- | ---------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
202
- | `freezingThreshold` | `bigint or undefined` | The cycle threshold below which the module will automatically stop to avoid running out of cycles. For example, if set to `BigInt(1000000)`, the module will stop when it has fewer than 1,000,000 cycles remaining. type: {bigint} |
203
- | `reservedCyclesLimit` | `bigint or undefined` | The number of cycles reserved for the module's operations to ensure it has enough cycles to function. For example, setting it to `BigInt(5000000)` reserves 5,000,000 cycles for the module. type: {bigint} |
204
- | `logVisibility` | `ModuleLogVisibility or undefined` | Controls who can see the module's logs. type: {ModuleLogVisibility} |
205
- | `heapMemoryLimit` | `bigint or undefined` | The maximum amount of WebAssembly (Wasm) memory the module can use on the heap. For example, setting it to `BigInt(1024 * 1024 * 64)` allows the module to use up to 64 MB of Wasm memory. type: {bigint} |
206
- | `memoryAllocation` | `bigint or undefined` | The amount of memory explicitly allocated to the module. For example, setting it to `BigInt(1024 * 1024 * 128)` allocates 128 MB of memory to the module. type: {bigint} |
207
- | `computeAllocation` | `bigint or undefined` | The proportion of compute capacity allocated to the module. This is a fraction of the total compute capacity of the subnet. For example, setting it to `BigInt(10)` allocates 10% of the compute capacity to the module. type: {bigint} |
208
-
209
- #### :gear: JunoConfigEnv
210
-
211
- Represents the environment configuration for Juno.
212
-
213
- | Property | Type | Description |
214
- | -------- | -------- | ---------------------------------------------------------- |
215
- | `mode` | `string` | The mode of the Juno configuration. type: {JunoConfigMode} |
216
-
217
539
  #### :gear: CliConfig
218
540
 
219
541
  | Property | Type | Description |
@@ -225,20 +547,104 @@ Represents the environment configuration for Juno.
225
547
  | `predeploy` | `string[] or undefined` | Defines a list of scripts or commands to be run before the deployment process begins. This can be useful for tasks such as compiling assets, running tests, or building production-ready files. Example: `json { "predeploy": ["npm run build", "npm run lint"] } ` type: {string[]}optional |
226
548
  | `postdeploy` | `string[] or undefined` | Defines a list of scripts or commands to be run after the deployment process completes. This can be used for tasks such as notifications, cleanup, or sending confirmation messages to services or team members. Example: `json { "postdeploy": ["./scripts/notify-admins.sh", "echo 'Deployment complete'"] } ` type: {string[]}optional |
227
549
 
550
+ #### :gear: SatelliteId
551
+
552
+ Represents the unique identifier for a satellite.
553
+
554
+ | Property | Type | Description |
555
+ | -------- | -------- | -------------------------------------------------------------------------------- |
556
+ | `id` | `string` | The unique identifier (ID) of the satellite for this application. type: {string} |
557
+
558
+ #### :gear: SatelliteIds
559
+
560
+ Represents a mapping of satellite identifiers to different configurations based on the mode of the application.
561
+
562
+ | Property | Type | Description |
563
+ | -------- | ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
564
+ | `ids` | `Record<string, string>` | A mapping of satellite identifiers (IDs) to different configurations based on the mode of the application. This allows the application to use different satellite IDs, such as production, staging, etc. Example: { "production": "xo2hm-lqaaa-aaaal-ab3oa-cai", "staging": "gl6nx-5maaa-aaaaa-qaaqq-cai" } type: {Record<JunoConfigMode, string>} |
565
+
566
+ #### :gear: SatelliteConfigOptions
567
+
568
+ SatelliteConfigOptions interface provides configuration settings that allow for fine-tuning
569
+ the operational behavior of various aspects of a Satellite, such as storage, datastore,
570
+ authentication, and deployment assertions.
571
+
572
+ These options affect specific modules of the Satellite and may require manual application of
573
+ changes, typically through CLI commands (e.g., `juno config`).
574
+
575
+ | Property | Type | Description |
576
+ | ---------------- | ----------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
577
+ | `storage` | `StorageConfig or undefined` | Optional configuration parameters for the satellite, affecting the operational behavior of its Storage. Changes to these parameters must be applied manually afterwards, for example with the CLI using `juno config` commands. type: {StorageConfig}optional |
578
+ | `datastore` | `DatastoreConfig or undefined` | Optional configuration parameters for the satellite, affecting the operational behavior of its Datastore. Changes to these parameters must be applied manually afterwards, for example with the CLI using `juno config` commands. type: {DatastoreConfig}optional |
579
+ | `authentication` | `AuthenticationConfig or undefined` | Optional configuration parameters for the satellite, affecting the operational behavior of its Authentication. Changes to these parameters must be applied manually afterwards, for example with the CLI using `juno config` commands. type: {AuthenticationConfig}optional |
580
+ | `assertions` | `SatelliteAssertions or undefined` | Optional configurations to override default assertions made by the CLI regarding satellite deployment conditions. type: {SatelliteAssertions}optional |
581
+ | `settings` | `ModuleSettings or undefined` | Optional configuration parameters for the Satellite. These settings control various aspects of the module's behavior and resource usage. type: {ModuleSettings}optional |
582
+ | `collections` | `Collections or undefined` | Optional configuration for the Datastore and Storage collections. type: {Collections}optional |
583
+
228
584
  ### :cocktail: Types
229
585
 
230
- - [StorageConfigSourceGlob](#gear-storageconfigsourceglob)
586
+ - [PermissionText](#gear-permissiontext)
587
+ - [MemoryText](#gear-memorytext)
588
+ - [RulesType](#gear-rulestype)
589
+ - [DatastoreCollection](#gear-datastorecollection)
590
+ - [StorageCollection](#gear-storagecollection)
591
+ - [EmulatorConfig](#gear-emulatorconfig)
231
592
  - [ModuleLogVisibility](#gear-modulelogvisibility)
232
593
  - [JunoConfigMode](#gear-junoconfigmode)
594
+ - [OrbiterConfig](#gear-orbiterconfig)
595
+ - [StorageConfigSourceGlob](#gear-storageconfigsourceglob)
233
596
  - [EncodingType](#gear-encodingtype)
597
+ - [SatelliteConfig](#gear-satelliteconfig)
234
598
 
235
- #### :gear: StorageConfigSourceGlob
599
+ #### :gear: PermissionText
236
600
 
237
- | Type | Type |
238
- | ------------------------- | ---- |
239
- | `StorageConfigSourceGlob` | |
601
+ | Type | Type |
602
+ | ---------------- | ----------------------------------------------------- |
603
+ | `PermissionText` | `'public' or 'private' or 'managed' or 'controllers'` |
240
604
 
241
- [:link: Source](https://github.com/junobuild/juno-js/tree/main/packages/config/src/shared/storage.config.ts#L13)
605
+ [:link: Source](https://github.com/junobuild/juno-js/tree/main/packages/config/src/satellite/configs/rules.ts#L12)
606
+
607
+ #### :gear: MemoryText
608
+
609
+ | Type | Type |
610
+ | ------------ | -------------------- |
611
+ | `MemoryText` | `'heap' or 'stable'` |
612
+
613
+ [:link: Source](https://github.com/junobuild/juno-js/tree/main/packages/config/src/satellite/configs/rules.ts#L23)
614
+
615
+ #### :gear: RulesType
616
+
617
+ | Type | Type |
618
+ | ----------- | ------------------- |
619
+ | `RulesType` | `'db' or 'storage'` |
620
+
621
+ [:link: Source](https://github.com/junobuild/juno-js/tree/main/packages/config/src/satellite/configs/rules.ts#L34)
622
+
623
+ #### :gear: DatastoreCollection
624
+
625
+ | Type | Type |
626
+ | --------------------- | ----------------------------------------------------- |
627
+ | `DatastoreCollection` | `Omit<Rule, 'createdAt' or 'updatedAt' or 'maxSize'>` |
628
+
629
+ [:link: Source](https://github.com/junobuild/juno-js/tree/main/packages/config/src/satellite/configs/collections.ts#L17)
630
+
631
+ #### :gear: StorageCollection
632
+
633
+ | Type | Type |
634
+ | ------------------- | --------------------------------------------------------- |
635
+ | `StorageCollection` | `Omit<Rule, 'createdAt' or 'updatedAt' or 'maxCapacity'>` |
636
+
637
+ [:link: Source](https://github.com/junobuild/juno-js/tree/main/packages/config/src/satellite/configs/collections.ts#L32)
638
+
639
+ #### :gear: EmulatorConfig
640
+
641
+ The configuration for running the Juno emulator.
642
+
643
+ | Type | Type |
644
+ | ---------------- | ---- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
645
+ | `EmulatorConfig` | ` | {runner?: EmulatorRunner; skylab: EmulatorSkylab} or {runner?: EmulatorRunner; console: EmulatorConsole} or {runner?: EmulatorRunner; satellite: EmulatorSatellite}` |
646
+
647
+ [:link: Source](https://github.com/junobuild/juno-js/tree/main/packages/config/src/satellite/configs/emulator.config.ts#L169)
242
648
 
243
649
  #### :gear: ModuleLogVisibility
244
650
 
@@ -246,7 +652,7 @@ Represents the environment configuration for Juno.
246
652
  | --------------------- | --------------------------- |
247
653
  | `ModuleLogVisibility` | `'controllers' or 'public'` |
248
654
 
249
- [:link: Source](https://github.com/junobuild/juno-js/tree/main/packages/config/src/module/module.settings.ts#L16)
655
+ [:link: Source](https://github.com/junobuild/juno-js/tree/main/packages/config/src/satellite/configs/module.settings.ts#L16)
250
656
 
251
657
  #### :gear: JunoConfigMode
252
658
 
@@ -256,6 +662,22 @@ Represents the environment configuration for Juno.
256
662
 
257
663
  [:link: Source](https://github.com/junobuild/juno-js/tree/main/packages/config/src/types/juno.env.ts#L12)
258
664
 
665
+ #### :gear: OrbiterConfig
666
+
667
+ | Type | Type |
668
+ | --------------- | ------------------------------- |
669
+ | `OrbiterConfig` | `Either<OrbiterId, OrbiterIds>` |
670
+
671
+ [:link: Source](https://github.com/junobuild/juno-js/tree/main/packages/config/src/satellite/configs/orbiter.config.ts#L64)
672
+
673
+ #### :gear: StorageConfigSourceGlob
674
+
675
+ | Type | Type |
676
+ | ------------------------- | ---- |
677
+ | `StorageConfigSourceGlob` | |
678
+
679
+ [:link: Source](https://github.com/junobuild/juno-js/tree/main/packages/config/src/shared/storage.config.ts#L13)
680
+
259
681
  #### :gear: EncodingType
260
682
 
261
683
  | Type | Type |
@@ -264,6 +686,14 @@ Represents the environment configuration for Juno.
264
686
 
265
687
  [:link: Source](https://github.com/junobuild/juno-js/tree/main/packages/config/src/types/encoding.ts#L12)
266
688
 
689
+ #### :gear: SatelliteConfig
690
+
691
+ | Type | Type |
692
+ | ----------------- | ---------------------------------------------------------------------------- |
693
+ | `SatelliteConfig` | `Either<SatelliteId, SatelliteIds> and CliConfig and SatelliteConfigOptions` |
694
+
695
+ [:link: Source](https://github.com/junobuild/juno-js/tree/main/packages/config/src/satellite/configs/satellite.config.ts#L162)
696
+
267
697
  <!-- TSDOC_END -->
268
698
 
269
699
  ## License