Contributed applications¶
Contributed Sessions expose community-provided web applications, such as browser-based editors and reactive notebooks, through the Science Platform. The catalogue of images is deployment-specific; the contract an image must meet is the same everywhere and is described under Contribute an application.
Launch an application¶
- Sign in to the Science Portal.
- In Launch New Session, choose Contributed, select an image containing the software you need, and launch the Session.
- Wait for it to start under Active Sessions, then open its application link.
Save your work under /arc before using the Session's delete control in the
portal. Closing the browser tab does not stop the Session. See
Get started for account, storage, and cleanup steps.
Launch from the command line (optional)¶
Install the client before using these commands.
List the images currently available for this Session Kind:
canfar login cadc
canfar image ls --kind contributed
canfar create contributed IMAGE_NAME --name my-application
Open the Session when it is ready. If it remains Pending, use the checks in batch troubleshooting. If it is Running but the application page is unavailable, report the Session ID and image reference to the platform operator.
Data and persistence¶
Use the storage paths supplied by your project. Save inputs, notebooks, and
results under /arc/home/<user>/, /arc/projects/<project>/, or a configured
VOSpace Service. Use /scratch only for temporary files; it is not a durable
application workspace.
The application may have its own file picker or path conventions. Confirm the path with the application documentation rather than assuming that every contributed image exposes the same directories.
Contribute an application¶
A contributed image is a web application that meets this contract:
| Requirement | Detail |
|---|---|
| Listen on port 5000 | Serve plain HTTP on TCP port 5000, on all interfaces. The Server checks that port to decide the Session is ready and healthy, and routes the browser to it. |
| Start by itself | The Server sets no command. The image's own ENTRYPOINT or CMD must start the application without interactive setup. |
| Run as any user | The container starts as the Session owner's user and group IDs, never as root, with every Linux capability dropped and privilege escalation off. Keep runtime files in locations that user can write, such as the home directory or /tmp. |
| Provide a shell | The Server runs /bin/sh and cp from the image while it prepares the Session's user and group files. |
| Tolerate a URL prefix | The browser opens https://HOST/session/contrib/SESSION_ID/. The Server strips that prefix, so the application receives requests at /. Use relative links, or a configurable base URL, so pages and assets still load from the prefixed address. |
Within those limits the application sees the same environment as other
Sessions: HOME is the user's persistent home directory, /scratch and the
project directories are mounted, and OMP_NUM_THREADS and the matching
thread variables are set to the requested core count.
Test the image as an unprivileged user before publishing it:
docker run --rm --user 12345:12345 --cap-drop ALL -p 5000:5000 IMAGE
Then push it to a registry the Server trusts and label it contributed, so
it is listed for this Session Kind; see
Container Images
and Container Registry. Contact
support@canfar.net to have an application added
to the shared catalogue.