Skip to main content

Project Entities

These entities are used by the Project adapter and encapsulate data objects used by Epicenter Project API.

Enums

Access type

The ACCESS_TYPE enum defines project access levels.

ValueDescription
PRIVATEOnly the owner can access.
PUBLICPublicly accessible, no login required.
AUTHENTICATEDParticipants must authenticate to access the project's simulations.

Worker partition

The WORKER_PARTITION enum identifies which compute cluster a simulation runs in.

ValueDescription
NONENo partition - the simulation cannot run.
ALLAny cluster
FREEFor admins' personal accounts
DEVELOPMENTFor developing and testing projects before going to production
LICENSEDShared with other paying customers
ACCOUNTDedicated compute for the account

Phylogeny

The PHYLOGENY enum identifies a project's phylogeny.

ValueDescription
ORIGINALOriginal version
HISTORICALIn this version, the run replay data for Excel, Simlang, and Vensim models is stored in a more compact and efficient format.
REFERENTIALChanges the way the run replay data is stored for Python3 models.
ORDEREDA further improvement to the way the run replay data is stored for Excel, Simlang, Vensim, Powersim, and Stella models.
EVENTUALUpdated the naming convention of the events that are sent to the model. For example, now the events are called onInitialized, onRestored, etc.
TRANSMOGRIFIEDImproves the way Epicenter runs proxies.
REANIMATEDChanges the default run start-up ritual.
SILENTInhibits push channel notifications unless allowChannel is true, which by default is false.

File type

The FILE_TYPE enum describes a file system as case-sensitive or case-insensitive.

ValueDescription
INSENSITIVEcase-insensitive
SENSITIVEcase-sensitive

Interfaces

Member

A Member object describes a member of the admin. The members property of a project contains an array of Member objects.

Properties

  • role: ROLE enum - The role of the admin
  • adminKey: string - Unique key identifying the admin
  • objectType: 'project' - Type of object

Deployment

A Deployment object stores the deployment settings of a project in the deployment property of a personal or team project.

Properties

  • defaultGroupName: string - The group name used to create a group after an SSO login.
  • autoCreatePlayer: boolean - If true, a new user record is created automatically on first login.
  • loginFile: string - The redirect destination after logout, timeout or unsuccessful authentication.
  • welcomeFile: string - The page that opens after a successful authentication.
  • groupFile: string - The page where a user can select a group after authentication.

Types

Project

Project is a union type for projects, which can be either:

Team project

The TeamProject interface contains the properties of a team project.

Properties

  • concurrentRunLimit: number - Maximum concurrent runs allowed for the project
  • modelFile: string - The name of the model file to load for the project.
  • available: boolean - Availability status
  • allowWorldSelfAssign: boolean - If True, allow simulation participants to move from one classroom to another. When False, a facilitator must assign participants to the classrooms.
  • objectType: 'team' - Identifies this as a team project.
  • accessType: ACCESS_TYPE enum value - The project's access level
  • sessionTimeoutSeconds: number - Idle time in seconds before a model can be removed from memory.
  • projectKey: string - A globally unique project identifier
  • members: Member[] - List of project members
  • channelEnabled: boolean - If True, the simulation participants can sign up for push notifications.
  • workerPartition: WORKER_PARTITION enum value - Worker partition type. Overrides the account-level worker partition setting.
  • name: string - A descriptive name for the project
  • phylogeny: PHYLOGENY enum value - The project's phylogeny. Always set to latest system level at the time of project creation.
  • multiPlayerEnabled: boolean - Whether multiplayer features are enabled
  • shortName: string - A project identifier unique for the account. Used in the project URL.
  • approximateRunCount: number - Estimated run count
  • pricing: { amount: number } - Project owners can decide to charge users. This is the amount (in cents) for a user to sign up.
  • dataRetentionDays: number - The number of days Forio stores the project data.
  • fileType: FILE_TYPE enum value - The file system containing project files can be case-sensitive or case-insensitive.
  • dimensions: 'UNIVERSE' | 'MULTIVERSE' - Dimensional scope
  • deployment: Deployment - Deployment configuration
  • channelProtocol: 'OUMUAMUA' | 'COMETD' - Identifies the server used for push notifications.

Personal project

The PersonalProject interface contains the properties of an admin's personal project.

Properties

  • concurrentRunLimit: number - Maximum concurrent runs allowed for the project
  • available: boolean - Availability status
  • objectType: 'personal' - Identifies this as a personal project.
  • accessType: ACCESS_TYPE enum value - Access level
  • sessionTimeoutSeconds: number - Idle time in seconds before a model can be removed from memory.
  • projectKey: string - A globally unique project identifier
  • workerPartition: keyof typeof WORKER_PARTITION - Worker partition type. Overrides the account-level worker partition setting.
  • name: string - A descriptive name for the project
  • phylogeny: PHYLOGENY enum value - The project's phylogeny. Always set to latest system level at the time of project creation.
  • shortName: string - A project identifier unique for the account. Used in the project URL.
  • approximateRunCount: number - Estimated run count
  • fileType: FILE_TYPE enum value - The file system containing project files can be case-sensitive or case-insensitive.
  • deployment: Deployment - Deployment configuration
  • channelProtocol: 'OUMUAMUA' | 'COMETD' - Identifies the server used for push notifications.
  • channelEnabled: boolean - If True, the simulation participants can sign up for push notifications.