Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added source/img/sandbox_create.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
53 changes: 50 additions & 3 deletions source/instructors/admin/sandboxes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Sandboxes
About Sandboxes
---------------

Sandboxes provide time-boxed, ephemeral **AWS Management Console environments** that expire automatically. A sandbox's permissions are defined by a template and can range from full administrator access to least-privileged roles, depending on need. When a sandbox's duration ends, access is revoked and all resources created inside the sandbox are cleaned up automatically—no user action required.
Sandboxes provide time-boxed, ephemeral environments for hands-on work in AWS that expire automatically. Depending on the sandbox type, learners may get access to the **AWS Management Console**, a provisioned **EC2 instance**, or a managed **Jupyter** environment. Permissions and runtime behavior are defined by a template and can range from full administrator access to least-privileged roles, depending on need. When a sandbox's duration ends, access is revoked and any resources created within the sandbox are cleaned up automatically—no user action required.

.. important::

Expand All @@ -31,11 +31,13 @@ Key Concepts
* - **Sandbox**
- A short-lived AWS environment defined by a ``sandbox.yml`` template. It grants time-boxed access and (optionally) provisions resources for hands-on work.
* - **Type**
- The sandbox runtime. Two types are illustrated in the examples below:
- The sandbox runtime. Three types are illustrated in the examples below:

- ``aws_cloud`` — console-first sessions that assume an AWS role defined by a policy (optionally orchestrated by an Infrastructure-as-Code engine).

- ``aws_ec2`` — a session that provisions an EC2 instance with parameters like instance type, image, disk size, and connection mode (``ssh`` or ``vnc``).

- ``jupyter`` — a notebook-first session that launches a managed Jupyter environment with configurable compute (for example, ``t3.large`` or ``g4dn.xlarge``) and optional custom container images.
* - **Lifetime**
- The initial duration of the sandbox (e.g., ``15m``, ``30m``). Access and resources automatically expire at the end of the lifetime.
* - **Lifetime Extension**
Expand All @@ -60,6 +62,10 @@ Lifecycle, Duration, and Cleanup
- **Extend:** While running, you may extend the lifetime in ``lifetime_extension`` increments, **not exceeding** ``lifetime_max``.
- **Expire & Clean:** When the lifetime ends, access is revoked and resources created by the sandbox are cleaned up automatically—no user action required.

.. note::

**Cooldown:** There is a 15-minute cooldown period between sandbox launches.

Creating a Sandbox and a Collection
-----------------------------------

Expand Down Expand Up @@ -97,6 +103,13 @@ Define sandboxes in YAML, one sandbox per folder. The best starting point is usi

The command above will copy the repository to your current directory. Make sure your folder is empty.

You can also use the dedicated **Create Sandbox** button:

.. image:: /img/sandbox_create.png
:width: 60%
:align: center
:alt: Sandbox create button.

Configuration Reference
-----------------------

Expand All @@ -118,7 +131,7 @@ Top-level keys
* - ``type``
- enum
- Yes
- Sandbox runtime type. Supported in examples: ``aws_cloud`` or ``aws_ec2``.
- Sandbox runtime type. Supported in examples: ``aws_cloud``, ``aws_ec2``, or ``jupyter``.
* - ``settings``
- mapping
- Yes
Expand Down Expand Up @@ -151,6 +164,10 @@ Top-level keys
- string
- No
- Maximum total runtime allowed for the sandbox (e.g., ``"20m"``, ``"60m"``). Once reached, the sandbox cannot be extended further.
* - ``cloud_account``
- string
- Optional
- Cloud account to run the sandbox in (for example, ``codio``).
* - ``policy``
- string
- Conditional
Expand Down Expand Up @@ -210,6 +227,36 @@ After setting ``type`` to ``aws_ec2``, configure the following ``parameters``:
- Default access channel for the instance. Supported values in examples: ``ssh`` or ``vnc``.
If omitted, both connection modes are available.



.. _jupytertype-sandboxes:

``settings.parameters`` for ``jupyter``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

After setting ``type`` to ``jupyter``, configure the following ``parameters``:

.. list-table::
:widths: 22 14 10 54
:header-rows: 1

* - Key
- Type
- Required
- Description
* - ``instance_type``
- string
- Yes
- Instance type to run the Jupyter environment (for example, ``t3.large`` or ``g4dn.xlarge``).
* - ``custom_image``
- string
- Optional
- Optional container image to use for the Jupyter environment (for example, an ECR or Quay image reference).
* - ``volume_size``
- integer (GB)
- Yes
- Root volume size in GiB for the Jupyter environment (for example, ``40``).

``prime`` (common)
~~~~~~~~~~~~~~~~~~

Expand Down
2 changes: 1 addition & 1 deletion source/instructors/authoring/guides/freeze_code.rst
Original file line number Diff line number Diff line change
Expand Up @@ -28,4 +28,4 @@ If you just wish to highlight code to the students but allow them to be able to
Supported language files
------------------------

.c .cpp .java .py .html .css .r .rb .js .ts .sql .h .hpp .ocaml .ml .php .pas .yml .xml .cs .coffescript .fs .go .kt .kts .less .lua .m .h .pl .scala .vb .swift .sh .scss .sass .md .yaml .hs .rkt .ss .scm .lisp .erl .ex .exs .elm .asm .s .rs .rlib .dart .jl
.c .cpp .java .py .html .css .r .rb .js .ts .sql .h .hpp .ml .php .pas .yml .xml .cs .coffee .fs .go .kt .kts .less .lua .m .pl .scala .vb .swift .sh .scss .sass .md .yaml .hs .erl .elm .rs .rlib .dart .jl
12 changes: 11 additions & 1 deletion source/instructors/getstarted/support/changelog.rst
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,16 @@ We do not report small bug fixes or issues that affect individual users, who we
`[I]` = Update or improvement
`[F]` = New feature

**March 2026**

- `[F] [4th]`: Added :ref:`Jupyter Sandboxes <jupytertype-sandboxes>`.
- `[I] [4th]`: Added an option to create VM images from Sandbox > Preview.

**February 2026**

- `[I] [26th]`: Added an option to create a Sandbox from templates.
- `[I] [24th]`: Improved the way we detect an internet connection.

**January 2026**

- `[F] [28th]`: A Previous button is now available in guides as long as :ref:`Forward Only Navigation <exam-proctoring>` is not enabled.
Expand Down Expand Up @@ -964,7 +974,7 @@ We do not report small bug fixes or issues that affect individual users, who we
- `[I] [ 5th]`: Improve handling for opening of large project warning
- `[I] [ 5th]`: Fix issue with terminal reconnections

**Febuary 2018**
**February 2018**

- `[I] [26th]`: Fix issue with unit reloading for students
- `[F] [26th]`: Expand Gigabox options to include 1GB, 2GB, 8GB,16GB and GPU (for GPU-accelerated instances) boxes.
Expand Down
20 changes: 0 additions & 20 deletions source/instructors/setupcourses/awscloudlearning.rst

This file was deleted.

2 changes: 0 additions & 2 deletions source/instructors/setupcourses/common-storage.rst
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,6 @@ Add Folders & Files
:width: 80%
:align: center

.. caution:: You can upload many files, but no single file can be more than 5 GB.

Access Storage From Assignments
-------------------------------

Expand Down