Full support for workspaces was added in Profound.js 5.0.0.

The ability to create a workspace is only available in the Profound.js IDE. This functionality is not available in the Profound UI Visual Designer. You can access the Profound.js IDE using the following URL: http://systemName:port/ide (where 'systemName' is the name of your system and 'port' is the port number that your Profound.js instance is installed on). 

What is a Workspace?

A workspace is a convenient way of organizing your projects. A workspace is a directory on the file system that includes all of the source code and configuration files needed to make an application work, along with a Git repository for source control. Workspace directories are stored within the 'modules' sub-directory of the Profound.js installation directory. Workspaces from Profound.js can easily be deployed in the cloud on Profound.js Spaces and vice versa.

Use of workspaces in Profound.js is optional, but strongly recommended. On Profound.js Spaces, all applications are organized into workspaces.

Creating a Workspace

To create a new workspace, use the option New→Workspace from the Home section of the ribbon:

Then enter a workspace name and description on the Create Workspace dialog:

The workspace is created and then automatically opened in the IDE.

Workspace Directory Structure

A workspace has the following directory structure. Note that you'll need to select Show Hidden in order to show all of the contents.

Adding Files and Directories

New files and directories can be added to the workspace by using the right-click options on the Files Tree:


Or by using the New File drop down options on the Home section of the ribbon: 


And then saving the file into the workspace directory or a sub-directory, by clicking the Save button in the Home section of the ribbon:

When a workspace is open in the IDE, the default save location will be the workspace directory:

Configuring Routes to Run Profound.js Modules

To run an application, you must first create one or more callable Profound.js modules. See here for instructions on creating a callable module. Then, you must configure a route (a URL path) that will be used to call the module. To configure routes, right-click on your Profound.js module file or Rich Display JSON file in the Files Tree and select Properties:


On the File Properties dialog, you can configure two different types of routes: 

For a stateless Express program, also check the Express Route box and optionally select the desired HTTP method to respond to:

The Files Tree will display an icon next to the file associated with the App Start route, if configured:

The Files Tree will display an icon next to any files associated with a Named Route:

Running Routes

Workspace routes are run using URLs like this:

If an App Start Route is configured, it can be launched in a browser tab by using the option Launch→Launch App in Browser Tab from Home section of the ribbon:

The App Start Route can also be run within the IDE by clicking on Run Your App in the bottom bar to expand it, and then using the Start App button:

Opening Workspaces

Workspaces can be opened by clicking on the Open option on the Home section of the Ribbon:

And then selecting the workspace from the Workspace tab on the Open Dialog:

Workspaces can also be opened using the Spaces List in the bottom bar:

Clicking a workspace name in the list will open it in a new browser tab.

Renaming Workspaces

To rename a workspace, use the right-click option in the Files Tree to rename the workspace directory:

Changing Workspace Descriptions

To change a workspace description, open the file '.noderun/settings.json' in the workspace directory, and edit the "description" field.

Removing Workspaces

To remove a workspace, click on the minus icon on the Spaces List:

Or use the right-click option in the Files Tree to delete the workspace directory:

Customizing HTML Page and Built-in Screens for Rich Display File Apps

Profound.js applications use the Profound UI Rich Display File framework. The following files can be customized in each workspace: