From ed5733e85dcc085201efd14299861593ecb244ad Mon Sep 17 00:00:00 2001 From: "Todd V. Jonker" Date: Mon, 20 Jul 2026 12:04:54 -0700 Subject: [PATCH 1/2] Move security article out of drafts --- .../{drafts => articles}/about_security.md | 19 ++++++++----------- sdk/src/doc/articles/index.md | 3 ++- sdk/src/doc/templates/common.html | 3 +++ 3 files changed, 13 insertions(+), 12 deletions(-) rename sdk/src/doc/{drafts => articles}/about_security.md (94%) diff --git a/sdk/src/doc/drafts/about_security.md b/sdk/src/doc/articles/about_security.md similarity index 94% rename from sdk/src/doc/drafts/about_security.md rename to sdk/src/doc/articles/about_security.md index 8a4a72d76..89faff54d 100644 --- a/sdk/src/doc/drafts/about_security.md +++ b/sdk/src/doc/articles/about_security.md @@ -104,21 +104,18 @@ Currently accessible only via the Java embedding APIs, sandboxed evaluation is i of the [`TopLevel`][TopLevel] interface produced by a `SandboxBuilder`. In a typical use case, this embedding code: -```java -TopLevel top = myFusionRuntime.makeTopLevel(); -``` + TopLevel top = myFusionRuntime.makeTopLevel(); is replaced with this: -```java -SandboxBuilder b = myFusionRuntime.makeSandboxBuilder(); -b.setLanguage("/fusion"); -TopLevel top = b.build(); -``` + SandboxBuilder b = myFusionRuntime.makeSandboxBuilder(); + b.setLanguage("/fusion"); + TopLevel top = b.build(); -> [!WARNING] -> The runtime currently has no guards around module loading, which would be needed to block access -> to the [FFI][] and to private modules in the standard library or other repositories. +**WARNING:** +The runtime currently has no guards around module loading, which would be needed to +block access to the [FFI][] and to private modules in the standard library or other +repositories. [Sandboxed Evaluation]: https://docs.racket-lang.org/reference/Sandboxed_Evaluation.html [Security Guards]: https://docs.racket-lang.org/reference/securityguards.html diff --git a/sdk/src/doc/articles/index.md b/sdk/src/doc/articles/index.md index 212c8c703..a464d0b31 100644 --- a/sdk/src/doc/articles/index.md +++ b/sdk/src/doc/articles/index.md @@ -6,7 +6,7 @@ This is the documentation for the [Ion Fusion Programming Language][home]. While the project has a long history, this site is very much **Work In Progress**. If you have any -questions, requests, or other feedback, please post to our [Discussion boards][discuss] or +questions, requests, or other feedback, please post to our [Discussion boards][discuss] or [create a GitHub issue][new-issue] so we can keep improving. [discuss]: https://github.com/orgs/ion-fusion/discussions @@ -27,6 +27,7 @@ questions, requests, or other feedback, please post to our [Discussion boards][d ## Explanation * [About the `fusion` CLI](about_cli.html) +* [About Fusion Security Mechanisms](about_security.html) ## Reference diff --git a/sdk/src/doc/templates/common.html b/sdk/src/doc/templates/common.html index 2557debc3..cd67b7e75 100644 --- a/sdk/src/doc/templates/common.html +++ b/sdk/src/doc/templates/common.html @@ -40,6 +40,9 @@

Explanation

+
From 63f333243f96c18f528d6996af05fe94a8c26d8d Mon Sep 17 00:00:00 2001 From: "Todd V. Jonker" Date: Sun, 9 Aug 2026 13:16:36 -0700 Subject: [PATCH 2/2] Update sdk/src/doc/articles/about_security.md Co-authored-by: Jonathan Little --- sdk/src/doc/articles/about_security.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/src/doc/articles/about_security.md b/sdk/src/doc/articles/about_security.md index 89faff54d..9fe396916 100644 --- a/sdk/src/doc/articles/about_security.md +++ b/sdk/src/doc/articles/about_security.md @@ -63,7 +63,7 @@ The mechanism for doing this is straightforward. When a namespace is created, th the identity of a single module representing the desired dialect. The new namespace is initialized with exactly the set of bindings exported by that module. The invoker can then add more bindings as necessary before evaluating code. The same thing happens when declaring a module. Every module -declares it’s dialect explicitly: in the canonical prologue `(module M "/fusion" ...)` the new +declares its dialect explicitly: in the canonical prologue `(module M "/fusion" ...)` the new module `M` declares its dialect to be the `/fusion` module. That dialect is generally the default for non-module scripts and ad-hoc evaluation from a programmatic invoker, but all such facilities allow explicit dialect control.