Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
define AuthenticationMethod as storable category
define authenticationMethod as storable AuthenticationMethod attribute
define NoAuthenticationMethod as storable AuthenticationMethod
define BasicAuthenticationMethod as storable AuthenticationMethod
define loginPage as storable Text attribute
define errorPage as storable Text attribute
define FormAuthenticationMethod as storable AuthenticationMethod with attributes loginPage and errorPage
define AuthenticationSource as storable category
define authenticationSource as storable AuthenticationSource attribute
define storeName as storable Text attribute
define DataStoreAuthenticationSource as storable AuthenticationSource with attribute storeName
define PasswordIsLoginAuthenticationSource as storable AuthenticationSource
define skipAuthInDev as storable Boolean attribute
define useTestSourceInDev as storable Boolean attribute
define whiteList as storable Text[] attribute
define useDefaultWhiteList as storable Boolean attribute
define AuthenticationSettings as storable category with attributes authenticationMethod, skipAuthInDev, authenticationSource, useTestSourceInDev, whiteList and useDefaultWhiteList
define authenticationSettings as storable AuthenticationSettings attribute
// don't directly connect Modules to keep them lightweight
// also eliminates any (accidental) cyclical dependency
define Dependency as storable category with attributes name and version
define dependencies as storable Dependency[] attribute
define Module as storable category with attributes name, version, description, image, dependencies, moduleStatus and parked
define Library as storable Module
define Thesaurus as storable Library
define Application as storable Module
define Script as storable Application
define startMethod as storable Text attribute
define Batch as storable Application with attribute startMethod
define serverAboutToStartMethod as storable Text attribute
define Service as storable Module with attributes serverAboutToStartMethod and authenticationSettings
define homePage as storable Text attribute
define WebSite as storable Service and Application with attribute homePage
define widgetLibrary as storable Text attribute
define htmlEngine as storable Text attribute
define uiFramework as storable Text attribute
define nativeResource as storable Text attribute
define stubResource as storable Text attribute
define WebLibrary as storable Library with attributes widgetLibrary, htmlEngine, uiFramework, nativeResource and stubResource
define ReleaseStatus as enumerated Text with symbols:
PENDING with "Pending" as value
CANCELLED with "Cancelled" as value
RELEASED with "Released" as value
ARCHIVED with "Archived" as value
define module as storable Module attribute
define supersedesOlder as storable Boolean attribute
define releaseStatus as storable ReleaseStatus attribute with key index
// not a member of Application because a given release might not succeed, so we might have multiple releases per application
define Release as storable category with attributes module, supersedesOlder, author, timeStamp and releaseStatus
define fetchReleases as method receiving releaseStatus doing:
return fetch all Release where releaseStatus = releaseStatus
define fetchUnreleased as method doing:
apps = fetch all Application
return apps filtered with app where (fetch one Release where module = app and releaseStatus in [PENDING, RELEASED] ) is nothing
define startRelease as method receiving dbId, supersedesOlder and Text[] signOffUsers doing:
module = fetch one Module where dbId = dbId
if module is nothing:
raise NULL_REFERENCE
author = getHttpUser
timeStamp = now
release = Release with module as module, supersedesOlder as supersedesOlder, author as author, timeStamp as timeStamp and PENDING as releaseStatus
store release
define setReleaseStatus as method receiving dbId, releaseStatus doing:
release = fetch one mutable Release where dbId = dbId
if release is nothing:
raise NULL_REFERENCE
release.releaseStatus = releaseStatus
store release
define coresCount as storable Integer attribute
define memoryMegabytes as storable Integer attribute
define storageGigabytes as storable Integer attribute
define DataCenter as storable category with attribute name
define dataCenter as storable DataCenter attribute
define dataCenters as storable DataCenter[] attribute
define NodeSize as storable category with attributes coresCount, memoryMegabytes and storageGigabytes
define nodeSize as storable NodeSize attribute
define nodeCount as storable Integer attribute
define release as storable Release attribute
define Deployment as storable category with attributes release, url, nodeSize, nodeCount, dataCenters, author and timeStamp
define fetchDeployed as method doing:
return fetch all Deployment
define fetchUndeployed as method doing:
releases = fetchReleases with RELEASED as releaseStatus
return releases filtered with release where (fetch one Deployment where release = release) is nothing
define deployRelease as method receiving dbId, nodeSize, nodeCount and dataCenters doing:
release = fetch one Release where dbId = dbId
if release is nothing:
raise NULL_REFERENCE
author = getHttpUser
timeStamp = now
deployment = Deployment with release as release, nodeSize as nodeSize, nodeCount as nodeCount, dataCenters as dataCenters, author as author and timeStamp as timeStamp
store deployment