You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* docs: collections in juno.config
Signed-off-by: David Dal Busco <david.dalbusco@outlook.com>
* π Update LLMs.txt snapshot for PR review
* docs: collections in juno.config
Signed-off-by: David Dal Busco <david.dalbusco@outlook.com>
* π Update LLMs.txt snapshot for PR review
* docs: bigint type as in backend
Signed-off-by: David Dal Busco <david.dalbusco@outlook.com>
* π Update LLMs.txt snapshot for PR review
---------
Signed-off-by: David Dal Busco <david.dalbusco@outlook.com>
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Copy file name to clipboardExpand all lines: .llms-snapshots/llms-full.txt
+73-23Lines changed: 73 additions & 23 deletions
Original file line number
Diff line number
Diff line change
@@ -8086,6 +8086,72 @@ You can customize the ports exposed by the emulator:
8086
8086
8087
8087
---
8088
8088
8089
+
## Collections Configuration
8090
+
8091
+
The `collections` field allows you to define collections for both the Datastore and Storage modules directly in your configuration file.
8092
+
8093
+
This is useful if you prefer defining access rules in code rather than through the Console UI. Itβs especially important when using the [junobuild/satellite](/docs/reference/emulator/satellite.md) image, which runs headlessly and doesn't include the Console UI.
8094
+
8095
+
Defining collections in code ensures:
8096
+
8097
+
* Your configuration lives alongside your source code.
8098
+
* Teams working together share the same environment setup.
8099
+
* Developers forking or cloning your project can easily get started with a consistent configuration.
8100
+
8101
+
### Datastore
8102
+
8103
+
Use `datastore` field to define the collection of your Datastore.
| `collection` | `string` | β | Name of the collection. Must be unique. |
8144
+
| `memory` | `"stable"` or `"heap"` | β | Memory type used for storing assets. |
8145
+
| `read` | `"public"` \| `"private"` \| `"managed"` \| `"controllers"` | β | Who can read assets. |
8146
+
| `write` | `"public"` \| `"private"` \| `"managed"` \| `"controllers"` | β | Who can write assets. |
8147
+
| `version` | `bigint` | β | Optional. If omitted, the CLI will resolve it and prompt on conflicts. |
8148
+
| `maxSize` | `bigint` | β | Maximum size of the collection in bytes. |
8149
+
| `maxChangesPerUser` | `number` | β | Max number of changes (create/update/delete) per user. |
8150
+
| `maxTokens` | `bigint` | β | Max number of writes and deletes per minute. |
8151
+
| `mutablePermissions` | `boolean` (default: `true`) | β | Whether permissions can be updated after creation. |
8152
+
8153
+
---
8154
+
8089
8155
## Apply Changes
8090
8156
8091
8157
Configurations such as above ([storage](#storage)), ([datastore](#datastore)), ([authentication](#authentication)), and ([settings](#settings)) require explicit application to your smart contract as they directly impact its behavior.
@@ -8156,7 +8222,7 @@ The junobuild/skylab image is an all-in-one emulator for local development. It b
8156
8222
8157
8223
[## ποΈ Satellite
8158
8224
8159
-
Unlike Skylab, the image junobuild/satellite runs a single Satellite in a sandboxed local environment.](/docs/reference/emulator/satellite.md)
8225
+
Unlike Skylab, the image junobuild/satellite runs a single Satellite in a headless environment, without the Console UI. It always mounts the same Satellite, using the fixed ID jx5yt-yyaaa-aaaal-abzbq-cai.](/docs/reference/emulator/satellite.md)
8160
8226
8161
8227
[## ποΈ Infrastructure
8162
8228
@@ -8452,45 +8518,29 @@ However, in some cases, it may be useful to explicitly reference module IDs. Bel
8452
8518
8453
8519
# Satellite
8454
8520
8455
-
Unlike Skylab, the image [junobuild/satellite](https://hub.docker.com/r/junobuild/satellite) runs a single Satellite in a sandboxed local environment.
8456
-
8457
-
You can configure the behavior of Satellite with a specific configuration file to define Datastore and Storage collections, additional administrative access keys, and optional serverless extensions. Like Skylab, it also supports live reloading for these serverless functions through a shared folder.
8458
-
8459
-
The CLI watches configuration files and a dedicated `deploy` folder, automatically applying changes and upgrading modules as needed.
8521
+
Unlike Skylab, the image [junobuild/satellite](https://hub.docker.com/r/junobuild/satellite) runs a single Satellite in a headless environment, without the Console UI. It always mounts the same Satellite, using the fixed ID `jx5yt-yyaaa-aaaal-abzbq-cai`.
8460
8522
8461
8523
---
8462
8524
8463
8525
## Configuration
8464
8526
8465
-
The behavior of the Satellite running in a container can be configured with the help of a local configuration file commonly named `juno.dev.config.ts` (or JavaScript or JSON).
8466
-
8467
-
This configuration file enables you to define the collections of the Datastore and Storage that run locally, but it also allows for defining additional controllers - i.e. administrative access keys - for your satellite.
8527
+
To use this image, your configuration must include the `satellite` field in the `emulator` section.
Make also sure to set the `runner` type to match your container runtime, and define the static Satellite ID expected by the image.
8474
8530
8475
-
### Example
8476
-
8477
-
If, for example, we want to configure a "metadata" collection in the Datastore, a "content" collection in the Storage, and provide an additional controller, we could use the following configuration:
For more advanced options like customizing ports, image name, or CI setup, see the [Emulator Configuration](/docs/reference/configuration.md#emulator-configuration) section.
8488
8538
8489
8539
# Skylab
8490
8540
8491
8541
The [junobuild/skylab](https://hub.docker.com/r/junobuild/skylab) image is an all-in-one emulator for local development. It bundles everything you need to build, test, and explore the Juno ecosystem:
8492
8542
8493
-
* β Juno Console (smart contract + UI)
8543
+
* β Juno Console (backend + UI)
8494
8544
* π°οΈ Satellites (support for multiple application containers)
8495
8545
* π Orbiter (analytics and tracking module)
8496
8546
* βοΈ Supporting infrastructure (see table below)
Copy file name to clipboardExpand all lines: .llms-snapshots/llms.txt
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -127,7 +127,7 @@ Juno is your self-contained serverless platform for building full-stack web apps
127
127
## Reference - Emulator
128
128
129
129
- [Infrastructure](https://juno.build/docs/reference/emulator/infrastructure.md): In the local environment, several modules (also known as "canisters" on the Internet Computer) are automatically spun up. This ensures that developers have everything they need to start building right out of the box. Thanks to built-in plugins and tooling, these modules are automatically integrated into the environment, eliminating the need for devs to manually manage their bindings.
130
-
- [Satellite](https://juno.build/docs/reference/emulator/satellite.md): Unlike Skylab, the image junobuild/satellite runs a single Satellite in a sandboxed local environment.
130
+
- [Satellite](https://juno.build/docs/reference/emulator/satellite.md): Unlike Skylab, the image junobuild/satellite runs a single Satellite in a headless environment, without the Console UI. It always mounts the same Satellite, using the fixed ID jx5yt-yyaaa-aaaal-abzbq-cai.
131
131
- [Skylab](https://juno.build/docs/reference/emulator/skylab.md): The junobuild/skylab image is an all-in-one emulator for local development. It bundles everything you need to build, test, and explore the Juno ecosystem:
Copy file name to clipboardExpand all lines: docs/reference/configuration.mdx
+112Lines changed: 112 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -421,6 +421,118 @@ You can customize the ports exposed by the emulator:
421
421
422
422
---
423
423
424
+
## Collections Configuration
425
+
426
+
The `collections` field allows you to define collections for both the Datastore and Storage modules directly in your configuration file.
427
+
428
+
This is useful if you prefer defining access rules in code rather than through the Console UI. Itβs especially important when using the [junobuild/satellite](./emulator/satellite.md) image, which runs headlessly and doesn't include the Console UI.
429
+
430
+
Defining collections in code ensures:
431
+
432
+
- Your configuration lives alongside your source code.
433
+
- Teams working together share the same environment setup.
434
+
- Developers forking or cloning your project can easily get started with a consistent configuration.
435
+
436
+
### Datastore
437
+
438
+
Use `datastore` field to define the collection of your Datastore.
|`collection`|`string`| β | Name of the collection. Must be unique. |
525
+
|`memory`|`"stable"` or `"heap"`| β | Memory type used for storing assets. |
526
+
|`read`|`"public"`\|`"private"`\|`"managed"`\|`"controllers"`| β | Who can read assets. |
527
+
|`write`|`"public"`\|`"private"`\|`"managed"`\|`"controllers"`| β | Who can write assets. |
528
+
|`version`|`bigint`| β | Optional. If omitted, the CLI will resolve it and prompt on conflicts. |
529
+
|`maxSize`|`bigint`| β | Maximum size of the collection in bytes. |
530
+
|`maxChangesPerUser`|`number`| β | Max number of changes (create/update/delete) per user. |
531
+
|`maxTokens`|`bigint`| β | Max number of writes and deletes per minute. |
532
+
|`mutablePermissions`|`boolean` (default: `true`) | β | Whether permissions can be updated after creation. |
533
+
534
+
---
535
+
424
536
## Apply Changes
425
537
426
538
Configurations such as above [storage](#storage), [datastore](#datastore), [authentication](#authentication), and [settings](#settings) require explicit application to your smart contract as they directly impact its behavior.
0 commit comments