Cloudfier feature list

Ever curious if Cloudfier apps can or cannot do something? This document is for you.

Business modeling features

Note: For tips on how to use these features, head on to the How-to page.

Attributes

- types: String, Memo, Integer, Double, Boolean, Date, Time, DateTime, Picture, Geolocation, enumerations
- multiplicity: optional, required
- derived attributes (computed values)
- initial values
- readonly attributes (only changeable via an action)
- id attributes (unique, and generated if derived)

Relationships

- multiplicity: optional/required, single/multiple
- bi-directional or uni-directional
- regular vs. composition vs. aggregation
- derived relationships

Collections

- filtering
- mapping inputs to outputs
- for-each
- set operations (member-checking, union, intersection)

Behavior

- static vs. instance actions
- optional/required parameters for actions and queries
- actions for mutating data
- derived relationships for instance-rooted queries (this branch’s biggest accounts)
- query operations for non-rooted queries (the biggest accounts across all branches)

Constraints

- class and attribute invariants
- preconditions on actions

Entities, Services and Tuples

- entities for data entities
- services for external/singleton functionality
- tuples for simple data records

State machines

- states (initial, intermediate, final)
- state transitions
- transition triggers
- before/during/after transition behaviors

Communication

- signals (events)
- components and required/provided ports (dependency injection)

Technical features

Persistence

- database schema generation
- object-relational mapping
- transactional operations
- referential integrity
- PostgreSQL only at this time

REST API (inbound)

- application data
- related instances
- actions, with enablement exposed per instance so a client can tell if an operation is applicable for a given instance
- queries
- services
- HTTP/JSON only at this time

REST API (outbound)

- synchronous RPC-style operations on external systems via HTTP/JSON
- event pushing via HTTP/JSON
- bridge required for other protocols

Authentication & Authorization

- signup/login/logout
- profile creation
- role-based authorization

User interface

- responsive Web/Javascript UI for desktop and mobile browsers using kirra-angular
- custom UI recommended for better application-tailored UX

Code generation

- JavaEE (in progress)
- Other platforms planned – contributions are welcome.