Application Version Management

This feature is only available on platforms with admin privileges available.

Application Version Management allows administrators to control which application versions are available to users for various JuliaHub apps such as Julia IDE (Code Server). This feature provides fine-grained control over version selection, default versions, staging access, and hot standby configurations.

Enabling Application Version Management

Before you can use Application Version Management, it must be enabled by the JuliaHub support. If you want to manage versions for an app that isn't available in the management panel, please ask JuliaHub support to enable it for you.

Accessing Application Version Management

Admin Dropdown with image management option highlighted

  1. Click on the Admin button
  2. Select Application Version Management from the dropdown menu

This will take you to the main Application Version Management page.

Application Version Management Overview Page

Main Application Version Management page showing "Managed Applications" section with application cards

The overview page displays all managed applications as cards. Each card shows:

  • Application display name (e.g., "Julia IDE")
  • Image group name (e.g., "codeserver")
  • Number of repositories (CPU/GPU)
Note

Only applications selected to be managed by administrators will appear on this page. Applications must be configured at the system level to allow customer admin management. If you want to manage an application but it's missing from this screen, please contact JuliaHub support.

Click on any application card to view and configure its repositories.

Configuring an Application

Image Group View page showing repository tiles for CPU and GPU

After selecting an application, you'll see the application view, which displays:

  • The group of products you're configuring
  • Repository tiles for CPU and GPU version repositories

Each repository tile shows:

  • Repository type (CPU or GPU)
  • Repository URL
  • Number of versions configured
  • List of active/inactive versions

Click on any repository tile to manage the application versions within that repository.

Managing Image Versions

Repository View page showing repository information card

The Repository View is where you configure individual image versions. The page includes:

Repository Information

At the top, you'll see a card with repository details:

  • Repository type (e.g., "cpu" or "gpu")
  • Repository URL
  • Registry type (Amazon ECR, Docker Hub, etc.)
  • Active status

Configured Versions Table

Image Entries table showing multiple image versions with all columns visible

The main table displays all currently configured image versions with the following columns:

  • Tag: The version tag (e.g., "latest", "v1.10.0")
  • SHA: Shortened SHA digest of the image (first 12 characters)
  • Display Name: User-friendly name shown to end users (editable)
  • Enabled: Toggle to make the image available to all users with access to the app
  • Staging Access: Toggle to grant access only to users with staging access enabled and access to the app. This can be used for beta testing with a small group of users before fully enabling the version for all users
  • Hot Standby: Toggle to enable faster startup by keeping the image cached on worker nodes
  • Default: Sets this version as the default version to use
  • Actions: Delete button to remove the image from configuration
  • Details: Expand button to view additional information
Important

Only one version can be set as the default per repository.

Editing Image Settings

To modify a version:

  1. Edit Display Name: Click in the Display Name field and type a user-friendly name (e.g., "Julia 1.10.0")
  2. Toggle Enabled: Turn on to make the image available to all users, or off to hide it
  3. Toggle Staging Access: Turn on to make the image available only to users with staging access enabled
  4. Toggle Hot Standby: Turn on to keep a cached image ready on worker nodes for faster startup
  5. Set as Default: Check the Default toggle to make this the default version for new sessions

All changes are tracked but not applied until you click the Apply Changes button.

Viewing Version Details

Expanded row details showing full SHA, created date, Julia version, JobAPI version, and labels

Click the expand button in the Details column to view additional information:

  • Full SHA digest
  • Created date/time
  • Julia version
  • JobAPI version
  • Scanned time
  • Image labels (key-value pairs showing image metadata)

Removing Image Versions

To remove an image version from the configuration:

  1. Click the trash icon (🗑️) in the Actions column
  2. The image will be removed from the table
Warning

Some images may be marked as "site managed" and cannot be removed by customer admins. These will have the delete button disabled.

Applying Changes

After making any modifications:

  1. Review your changes in the table
  2. Click the Apply Changes button at the bottom of the table
  3. Wait for the success confirmation message

Adding New Versions

"Available Images" section showing the search bar and table

Below the configured images table, you'll find the Available Versions section. This section lists all images that exist in the container registry but are not yet configured.

Searching Available Versions

Use the search bar to filter available images by:

  • Tag name
  • Julia version
  • SHA digest

Simply type your search term and the table will filter automatically.

Available Versions Table

The Available Versions table displays:

  • Tag: Image tag
  • SHA: Shortened SHA digest
  • Julia Version: Julia version included in the image
  • JobAPI Version: JobAPI version included in the image
  • Created: When the image was created
  • Actions: Add button to include the image in configuration
  • Details: Expand button for additional information

Adding an Image

To add a new image version:

  1. Find the desired image in the Available Images table (use search if needed)
  2. Click the Add button in the Actions column
  3. The image will be moved to the Configured Images table above
  4. Configure the image settings (display name, enabled status, etc.)
  5. Click Apply Changes to save

When an image is added, it will:

  • Appear in the configured images table
  • Be set as enabled by default
  • Have staging access and hot standby disabled by default
  • Not be set as the default version
  • Auto-populate the display name with Julia version (if available)

Best Practices

Staging Access

Use staging access to test new image versions before making them generally available:

  1. Add a new image version with Staging Access enabled and Enabled set to false (public access disabled)
  2. Grant staging access to specific test users (User Features panel)
  3. Have test users validate the new version
  4. Once validated, disable Staging Access and set Enabled to true to make it available to all users

Default Versions

  • Set a stable, well-tested version as the default
  • Only change the default after thorough testing
  • Communicate default version changes to your users

Display Names

Use consistent, clear naming conventions for display names:

  • Good: "Julia 1.10.0", "Julia 1.9.4 LTS"
  • Avoid: "latest", "new-version", "test"

Hot Standby

Enable hot standby for the most commonly used versions to improve user experience with faster startup times.

Image Cleanup

Regularly review and remove outdated or unused image versions to:

  • Reduce clutter in the version selector
  • Simplify maintenance
  • Improve user experience

Troubleshooting

Application Not Showing in Managed Applications

If an application doesn't appear in the Managed Applications list, it needs to be configured at the system level with the managed_customer_admin flag enabled. Contact your JuliaHub system administrator.

Changes Not Taking Effect

If changes don't appear after clicking Apply Changes:

  1. Check for error messages in the alert notification
  2. Verify you have admin privileges
  3. Refresh the repository view to see the latest configuration
  4. Check the browser console for any errors
  5. Reach out to JuliaHub support

Technical Notes

Image Synchronization

JuliaHub periodically scans configured container registries to discover new images. The scanning frequency is configured at the system level. Newly pushed images may take up to 60 minutes to appear in the Available Images list.

Configuration Storage

Image configurations are stored in the JuliaHub configuration system and are applied immediately upon clicking Apply Changes. The configuration affects the API that clients use to determine available image versions.