## AweSim on Open OnDemand Documentation 1. [Developing on apps-test.awesim.org](Developing on apps-test.awesim.org) 2. [Porting an existing app to OOD](Port-an-existing-app-to-OOD) 3. [Sharing apps in OOD](Sharing-apps-in-OOD) 4. [OOD Gem Changes](ood-gem-changes) 5. Building new apps - see https://github.com/AweSim-OSC/rails-application-template/ - we will update this soon ## Tutorials 1. [[Python 2.7 Hello World App]] 2. Avoid AJAX Requests redirect to authenticate: `set header 'X-Requested-With': 'XMLHttpRequest'` ## Legacy documentation **Some of these links are on GitHub (external to AweSim) and require [permission to access](https://github.com/orgs/AweSim-OSC/teams/awesim-external-developers_ro/repositories). If you do not have access, GitHub will hide the page with a "404". This is not a broken link. Please [contact OSC Help](https://www.osc.edu/supercomputing/support) if you want access granted.** --- ### Getting started * [Onboarding OSC systems](Onboarding-OSC-systems) - Familiarize yourself with OSC's systems * [Getting started with dev sandbox](Getting-started-with-the-dev-sandbox) * [Create a new app with AppKit 1.0](Create-a-new-app-with-AppKit-1.0) - Tutorial on building a simple app * [Rationale for RAILS_DATAROOT](Rationale-for-RAILS_DATAROOT) - how shared applications run as the user and store the user's data in their own space ### Sharing Apps 1. [Use the awesim CLI to share an app](Use-the-awesim-CLI-to-share-an-app) using `awesim setup` and `awesim lint` 2. [Manage access to a shared app](Manage-access-to-a-shared-app) using `awesim permission` 3. [Update a shared app](Update-a-shared-app) - using `awesim update`, `awesim restart`, and `awesim maintenance` ### How to * [Fixing broken links to results files](Fixing-broken-links-to-results-files) * [Adding File Upload Caching for File Attachments](Adding-File-Upload-Caching-for-File-Attachments) - this will eventually be merged as a feature in a future version of the app kit * [Accessing Output and Error files](Accessing-Output-and-Error-files) - best practice for making job log files available to users through your app * [Where to store results and how to make them URL accessible](Where-to-store-results-and-how-to-make-them-URL-accessible) * [Resolving the file path to a results file of a simulation](Resolving-the-file-path-to-a-results-file-of-a-simulation) * [Resolving the URL to a results file of a simulation](Resolving-the-url-to-a-results-file-of-a-simulation) * [Validating the results of a simulation](Validating-the-results-of-a-simulation) * [Managing `public/.htaccess`](Managing-htaccess) - **do this after cloning an app or creating a new app under ~/awesim_dev/** * [Setting and modifying the application root](Setting-and-modifying-the-application-root) * [Updating an App to Enable Sharing](Updating-an-App-to-Enable-Sharing) - Do this if you built an app before app sharing was introduced (pre App Kit 1.0). ### Troubleshooting * [Problem submitting jobs from command line or rails console](Problem-submitting-jobs-from-command-line-or-rails-console) - _temporary issue till we switch to new web infrastructure in the Spring_ * [Sandbox app is running in production mode](Sandbox-app-is-running-in-production-mode) - how to ensure your sandbox/development (rails1-9) is running in development mode * [Problems accessing shared app](Problems-accessing-shared-app) - your app works in sandbox/development but when you share the app you experience problems accessing it * Results are not accessible from the app - make sure to [save user's results files to the right place](Where-to-store-results-and-how-to-make-them-URL-accessible)! * [Assets not loading in production](Assets-not-loading-in-production) ### App Kit 1.0 * **[Release Notes for AppKit 1.0](Release-Notes-for-AppKit-1.0)** * **[Porting an existing app to AppKit 1.0](Port-an-existing-app-to-AppKit-1.0)** ### Gems For building a web app: * [osc_machete_rails gem](https://github.com/AweSim-OSC/osc_machete_rails) - [docs](http://www.rubydoc.info/gems/osc_machete_rails/) - enable Rails apps to manage batch simulations using simulation templates * [osc_machete_rails stages simulations to a unique directory](osc_machete_rails-stages-simulations-to-a-unique-directory) * [ood_appkit](https://github.com/OSC/ood_appkit) - Provides dataroot and application and numerous helper methods for system accessibility applications. * [awesim_branding](https://github.com/AweSim-OSC/awesim_branding) Provides an AweSim branded header and backward compatibility for applications created with `awesim_rails` gem. * [awesim_rails](https://github.com/AweSim-OSC/awesim_rails/) **DEPRECATED** AweSim branding and dataroot manipulation. Replaced by `ood_appkit` and `awesim_branding` * [awesim_rails_logging](https://github.com/AweSim-OSC/awesim_rails_logging) - provide custom formatter to tag production logs with user and app token. We will eventually use this to provide developers access to logs of the users of their apps. * [rails-application-template](https://github.com/AweSim-OSC/rails-application-template) - use to generate a new app using the command `awesim rails new` Utility: * [osc-vnc gem](https://github.com/AweSim-OSC/osc-vnc) - [docs](http://www.rubydoc.info/gems/osc-vnc) - help launch vnc sessions on compute nodes and Oxymoron cluster * [osc-reservations gem](https://github.com/AweSim-OSC/osc-reservations) - [docs](http://www.rubydoc.info/gems/osc-reservations) - **this is currently broken** - provide read-only information about the reserved nodes you have access to Dependencies: * [osc-machete gem](https://github.com/AweSim-OSC/osc-machete) - [docs](http://www.rubydoc.info/gems/osc-machete/) - submit, check the status, setup dependencies, and stop batch jobs; a generic interface that sits in front of pbs-ruby * [osc_machete_rails gem](https://github.com/OSC/osc_machete_rails/) - [docs](http://www.rubydoc.info/gems/osc_machete_rails/) - Build and manage simulation workflows. * [pbs-ruby gem](https://github.com/AweSim-OSC/pbs-ruby) - [docs](http://www.rubydoc.info/gems/pbs) - provide Ruby interface to Torque libraries ### Example Apps * [containerfillsim](https://github.com/AweSim-OSC/containerfillsim) - example Rails app that uses osc-machete to submit simulation templates and osc-vnc to visualize results using Paraview