All Downloads are FREE. Search and download functionalities are using the official Maven repository.

libraries.AppStore.pec Maven / Gradle / Ivy

There is a newer version: 0.1.57
Show newest version
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




© 2015 - 2024 Weber Informatics LLC | Privacy Policy