↓ API • ↓ Command-Line • ↓ Datatypes • ↓ Directories • ↓ Objects • ↓ FFDL • ↓ Metadata • ↓ Queries • ↓ URIs
API Docs
API • ↓ Command-Line • ↓ Datatypes • ↓ Directories • ↓ Objects • ↓ FFDL • ↓ Metadata • ↓ Queries • ↓ URIs
The FatFractal Platform supports a variety of clientside and serverside environments.
You can access the following API docs from this page. Clicking on the links below will open a new window.
![]() |
![]() |
![]() |
![]() |
|---|---|---|---|
| Download | Download | Download | Download |
Command-Line Tools
↑ API • Command-Line • ↓ Datatypes • ↓ Directories • ↓ Objects • ↓ FFDL • ↓ Metadata • ↓ Queries • ↓ URIs
ffef
ffef command is used for controlling your backend application. Use it to:- Scaffold a new application
- Deploy an application, either locally or to the cloud
- Retrieve the current backend definition of your application
The executable is located in the runtime/ffnsbin directory of your install.
The forms of the command are:
newapp
ffef newapp <application name> <domain>
Scaffold a new application with the specified domain. Generally run from within a directory specifically for the application. Scaffolding creates the directory structure and configuration files for your application.
deploylocal
ffef deploylocal
Deploy the application in the current directory to the local engine.
deployFFFabric
ffef deployFFFabric
Deploy the application in the current directory to the FatFractal fabric, i.e. the cloud.
getFFDL
ffef getFFDL <local application URL>
Retrieve the FFDL application definition from the application at the specified URL. Note that this command only applies to local deployments. Should be run from the application’s directory.
When you run this command, the application’s current application.ffdl file is renamed to application.ffdl.<datetime>, and the application definition retrieved from the provided URL is saved as application.ffdl.
ff-service
The ff-service command is used to start and stop a local engine. The command should be run from the runtime directory of your install. The executable is located in the runtime/bin directory of your install.
The forms of the command are:
cl
Start the engine in the foreground.
start
Start the engine in the background.
stop
Stop the engine running in the background.
USAGE NOTE: If your engine is configured to use the default HTTP/HTTPS ports of 80/443, you may need to run the ff-service command as root (OS X/Linux/UNIX). To change the ports used by your engine, please re-run the installer.
Datatypes
↑ API • ↑ Command-Line • Datatypes • ↓ Directories • ↓ Objects • ↓ FFDL • ↓ Metadata • ↓ Queries • ↓ URIs
This table lists the backend datatypes supported by FatFractal. The unvalidated datatype may only be assigned using either the FatFractal Definition Language (FFDL) or JavaScript Serverside (JSSS).
| Datatype | Description |
|---|---|
| STRING | Java definition http://www.linfo.org/string.html. |
| NUMERIC | All numeric datatypes, including, for example, int, long, short, float and double. |
| DATE | Date values down to millisecond precision. Stored as milliseconds since Jan 1 1970. (Negative implies a date before Jan 1 1970) |
| BOOLEAN | A logical value, either “true” or “false”. |
| <type>[] | Arrays. A single-dimension list of constituents; arrays are always defined as ‘of some datatype,’ including objecttypes (e.g. STRING[] or <objecttype name>[]). |
| BYTEARRAY | An array of bytes, usually used as a container for files such as images, video or source-code. |
| MAP | A list of key/value pairs, sometimes called a hashmap or dictionary. |
| GEOLOCATION | A map (dictionary) which conforms to the W3C Coordinates specification. At a minimum, latitude and longitude must be supplied. |
| UNVALIDATED | No validation is done on this member. Datatype is non-determinant to your app’s backend. You can assign a datatype of unvalidated[], as well. |
| OBJECTTYPE | The name of an object which has previously been defined (e.g. Message, Task or Order). Embeds that object’s datastructure as a member. |
| REFERENCE [/<collection name>] | A pointer to another object (i.e. indirect reference). Incorporated as part of the clientside object model. If the optional /<collection name> is provided, the reference may only point to objects in the specified collection. See Data Modeling. |
| GRABBAG [/<collection name>] | A named set of references to other objects. Not incorporated as part of the clientside object model; clientside SDKs provide methods to add, remove, access, and modify grab bags. If the optional /<collection name> is provided, the grab bag may only contain objects from the specified collection. See Data Modeling. |
Directory Layout
↑ API • ↑ Command-Line • ↑ Datatypes • Directories • ↓ Objects • ↓ FFDL • ↓ Metadata • ↓ Queries • ↓ URIs
Scaffolded Application
When you scaffold an application, the following directory structure is created.
| ff-config | Directory containing configuration files for your application. |
|
.appName
|
Invisible file containing your application’s name. |
|
application.ffdl
|
Main configuration file for your application’s backend. See Application Configuration. |
|
context.xml
|
Descriptor file declaring your application name and domain name. |
|
fatfractal.xml
|
Descriptor file declaring other parameters for your application. |
| ff-scripts | Directory containing custom code scripts. See Custom Code. |
| webapp | Directory containing the web application interface to your application’s backend. |
|
index.html
|
HTML file defining the web application interface to your application’s backend. |
Installation
When you install FatFractal on your local machine, the following directory structure is created. Depending on your installation options, not all files may be present.
| runtime | Directory containing files necessary to scaffold and deploy an application and to run a local engine. |
|
archive
|
|
|
bin
|
Directory containing local engine executables. |
|
ff-service
|
Executable to run a local engine. |
|
clone
|
|
|
conf
|
Directory containing configuration files. |
|
.pem
|
Your credentials for deploying applications to the cloud. Do not distribute your credentials! |
|
config.properties.c
|
Encrypted engine configuration file. |
|
keystore.js
|
|
|
domain
|
Root directory for local deployments. |
|
ffnsbin
|
Directory containing executables for application creation and deployment. |
|
ffef
|
Executable for application creation and deployment. See the Command Line Reference. |
|
template.*
|
Template files for application scaffolding. |
|
lib
|
Library directory for local engine. |
|
logs
|
Log directory for local engine. |
|
fatfractal.log
|
Local engine log file. |
|
module
|
Module directory for local engine. |
|
queue
|
Queue directory for local engine. WAR files in this directory are periodically detected by a running local engine and deployed. |
|
scripts
|
Directory containing FatFractal serverside SDKs to aid serverside development |
|
store
|
|
| sdk | Directory containing the FatFractal clientside SDKs. |
FF Special Objects
↑ API • ↑ Command-Line • ↑ Datatypes • ↑ Directories • Objects • ↓ FFDL • ↓ Metadata • ↓ Queries • ↓ URIs
The FatFractal Platform supplies a few other built-in objects for particular purposes. Certain members of these special objects, as well as their datatypes, are pre-defined by the FatFractal Platform; in most cases you can add fields and subclass these objects as well.
FFUser
The FFUser object is an object, like any other, except that it has pre-defined members which are useful for managing end-users of your application. For example, FFUser objects have authentication information associated with them. Those members are:
| Member | Type | Description |
|---|---|---|
| userName | String | User name, used for login. Must be unique to your application. |
| firstName | String | First name of user. |
| lastName | String | Last name of user. |
| String | Email address of user. | |
| active | Boolean | Whether the user has been activated. If a user account is not active, that user may not log in. |
| groups | Grab bag | FFUserGroup objects representing groups to which this user belongs. |
You may use and add to the members of the FFUser object in the same way as you would to any other object in your application; however you may not remove the pre-defined members from the object definition.
The groups member is a grab bag containing all the FFUserGroup objects owned by the FFUser. The groups member starts empty, and is manipulated using methods in the client APIs.
The active member default depends on the value of ActivateUsersOnReg parameter in your application’s application.ffdl file. If ActivateUsersOnReg is true, newly created FFUser objects begin with active set to true.
System User
Every FatFractal application has a special user, with username and guid system. This user has read and write permission to everything in the application, similar to root on *nix systems. In a local deployment, you may login as system (using password system) for convenience in modifying objects in your datastore. Additionally, all serverside custom code is run as the system user.
Logged-In User
The client SDKs provide methods to retrieve the FFUser object of the currently logged-in user:
FatFractal *ff = [FatFractal main]; FFUser *loggedInUser = ff.loggedInUser;
FatFractal ff = FatFractal.getMain(); FFUser loggedInUser = ff.getLoggedInUser();
var ff = new FatFractal(); ... var loggedInUser = ff.FFUser(ff.loggedInUser());
User login and registration is always done via HTTPS for over-the-wire security. User passwords are stored as hashes using the PBKDF2 function, using SHA1-HMAC for its random number generator, and every hash is created using a unique random 128-bit salt per user.
See Managing Users and the API Reference.
FFUserGroup
The FFUserGroup is a system object for managing sets of FFUser objects. One of the primary functions of the FFUserGroup is to provide a simple way to add and remove OAPs to sets of FFUsers; see Permissions.
FFUserGroup has the following members:
| Member | Type | Description |
|---|---|---|
| groupName | String | Name of the group. |
| users | Grab bag | FFUser objects representing members of the group. |
See Managing Groups and the API Reference.
FFGeoLocation
The FFGeoLocation object encapsulates geolocation information across clients and facilitates geo-queries. This object is used in conjunction with the GEOLOCATION backend datatype.
FFGeoLocation has the following members:
| Member | Type | Description |
|---|---|---|
| latitude | Numeric | Latitude in degrees. Required. |
| longitude | Numeric | Longitude in degrees. Required. |
| altitude | Numeric | Altitude in meters. |
| accuracy | Numeric | Accuracy of latitude and longitude (95% confidence interval.) |
| altitudeAccuracy | Numeric | Accuracy of altitude (95% confidence interval.) |
| heading | Numeric | Direction of movement in degrees. NaN if speed is zero. |
| speed | Numeric | Magnitude of horizontal component of velocity, in meters per second. |
See the API Reference.
Subclassing
You may want to extend the functionality of FF Special Objects by subclassing them. Doing so involves three steps:
- Subclass the class you would like to extend.
- Add any new members you’ve added to the objecttype definition of the original objecttypein your application.ffdl file.
- Register your new class with the FatFractal library, so that it maps to your new class instead of the built-in one.
Example
Let’s say we want to subclass FFUserGroup so that it includes a new string member called notes. Here’s how we would do it:
- Define a new class, which we will call NotesUserGroup:
@interface NotesUserGroup : FFUserGroup @property (strong, nonatomic) NSString *notes; @end
public class NotesUserGroup extends FFUserGroup { private String m_notes; public String getNotes() { return m_notes; } public void setNotes(String notes) { m_notes = notes; } } - Change the FFDL definition of FFUserGroup:
CREATE OBJECTTYPE FFUserGroup (groupName STRING, users GRABBAG /FFUser, notes STRING)
- Register NotesUserGroup with the FatFractal library:
[ff registerClass:[NotesUserGroup class] forClazz:@"FFUserGroup"]; // // IMPORTANT: Right now, registerClass:forClazz: will only take effect for the // FatFractal object on which you invoke it. This means that if you have multiple // 'FatFractal' objects then you would need to invoke registerClass:forClazz: // on each one. In the next release this behaviour will be changed so that // registerClass:forClazz: will take effect across all instances. //
FFObjectMapper.registerClassNameForClazz(NoteUserGroup.class.getName(), "FFUserGroup");
FFDL
↑ API • ↑ Command-Line • ↑ Datatypes • ↑ Directories • ↑ Objects • FFDL • ↓ Metadata • ↓ Queries • ↓ URIs
FFDL has two principal uses on the FatFractal Platform:
- Used in an application’s application.ffdl file, FFDL is used to set defaults for the application on startup.
- When retrieving the backend state representation for a running application, FFDL is returned representing the current state of the application.
SET command
SET commands take the general form
SET <parameter> <value>
Options for <parameter> and associated options for <value> are given in the following tables.
Registration parameters
| Parameter | Value | Effect |
|---|---|---|
| AllowAutoRegistration | true false |
When true, a login attempt with an unknown username will automatically register that user. |
| ActivateUsersOnReg | true false |
When true, a user is activated immediately upon registration. When false, a user must be activated separately before login can occur. This is useful, for example, if you want to validate user email addresses. |
Learn Mode parameters
| Parameter | Value | Effect |
|---|---|---|
| AllowNewCollections | true false |
When true, collections will be dynamically created as the clientside requests them. When false, the clientside can only add objects to collections that have been explicitly defined already on the application’s backend using the CREATE COLLECTION command. |
| AllowNewObjectTypes | true false |
When true, objecttypes will be dynamically created as the clientside requests them. When false, the clientside can only add objects that have been explicitly defined already on the application’s backend using the CREATE OBJECTTYPE command. |
| AllowNewMembers | true false |
When true, any object sent from the clientside may contain any members, whether or not they have been explicitly defined. When false, the backend will reject object creates or updates which include members that are not already explicitly defined. |
Push parameters
| Parameter | Value | Effect |
|---|---|---|
| PushIsInactive | true false |
When true, push is disabled. When false, push is enabled. |
| ApplePushUsingProduction | true false |
When true, use a Production Push SSL Certificate for the Apple Push Notification Service (APNS). When false, use a Development Push SSL Certificate. For more information on APNS, see here. |
| ApplePushKeystorePassword | <password> | Provide the password used to encrypt your Apple Push SSL Certificate. |
| AndroidPushAuthToken | <token> | Provide your Android Cloud to Device Messaging (C2DM) token to enable push notifications to Android devices. |
See Push Notifications.
Other parameters
| Parameter | Value | Effect |
|---|---|---|
| LogLevel | TRACE INFO WARN ERROR |
Sets the message level of logs. Options are in descending order of detail. |
| ETaggingEnabled | true false |
If true, the FatFractal backend will issue ETag responses, which allow certain HTTP request responses to be cached on the clientside. Currently, ETags are issued for requests to specific objects (i.e. /<collection>/<guid>) and to BLOB members of specific requests (e.g. /Celebrity/abcde/imageData). |
| SessionTimeoutInSeconds | <timeout> | Sets the amount of time after login that a session times out. Time is given in seconds. Default is 129600, i.e. 36 hours. |
| MaintainCreatedUpdatedBackReferences | true false |
Defaults to false. When true, then back-references are maintained from /FFUser objects to all objects which were createdBy or updatedBy that user. |
| ReferentialIntegrityActionOnDelete | NONE PREVENT SET_NULL |
Controls what sort of action to take based on referential integrity checks if an object is being deleted. Currently this is an application-wide setting – let us know if you would like to control this per-collection.
Defaults to NONE. If NONE, then the delete will proceed. If PREVENT, then the delete will be prevented if there are any references to this object. In next release we will support SET_NULL, where the delete will proceed but all references (from other objects or grab bags) to this object will be removed. |
Security parameters
| Parameter | Value | Effect |
|---|---|---|
| PasswordValidation | true false |
Defaults to false. When true, then passwords are validated using the PasswordPattern regex (see below) and if validation fails then the PasswordMessage is sent back in the response to the client. |
| PasswordPattern | A regular expression | Default value is ((?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,50}) – see PasswordMessage for description of what this is |
| PasswordMessage | String | The message which is returned in a response to the client if an invalid password is supplied when registering or changing passwords. Default value is Password must be between 8 and 50 characters long, must contain at least one digit, at least one lowercase letter and at least one uppercase letter |
| AllowAnonymousGets | true false |
Defaults to true. When false, users who are not logged in will receive 403 (forbidden) responses if they make requests to your app’s backend. |
| AllowInactiveGets | true false |
Defaults to true. When false, ‘inactive’ users (see active member in the FFUser type) will receive 403 (forbidden) responses if they make requests to your app’s backend, even if they have logged in. |
| AllowSystemUserToLogin | true false |
Defaults to false in production; defaults to true if you are testing your app using a local FF engine. |
| SystemUserPassword | String which conforms to your PasswordValidation settings. | The system user is, effectively, the super-user of your application. When your backend is first created on the FF cloud, a random 25-character password is chosen for the system user. You may reset the password either by executing the resetPassword function in some server-side code, or by re-deploying your app and including this setting in your application.ffdl |
| AllowedGetPattern | A regular expression | Controls a whitelist which means that only HTTP requests which match these patterns are allowed. For example,
would mean that only GETs which match that pattern are permitted. (In this case, only GETS to /collection/guid – i.e. no queries) You may include multiple SET AllowedGetPattern xxx commands in your application.ffdl See also DisallowedGetPattern which allows you to set a corresponding blacklist. If you set both a whitelist and a blacklist then first of all the whitelist is checked, then the blacklist. So you can limit client queries first by enforcing match to the whitelist, and refine by adding specific exceptions to the blacklist |
| DisallowedGetPattern | A regular expression | Controls a blacklist which means that any HTTP requests which match these patterns are forbidden. For example, adding the following to your application.ffdl
would mean that all direct HTTP GETs to SomeCollection and SomeOtherCollection would be forbidden You may include multiple SET DisallowedGetPattern xxx commands in your application.ffdl See also AllowedGetPattern which allows you to set a corresponding whitelist. If you set both a whitelist and a blacklist then first of all the whitelist is checked, then the blacklist. So you can limit client queries first by enforcing match to the whitelist, and refine by adding specific exceptions to the blacklist |
| CORS | See Cross-Origin-Resource-Sharing
Typical value: http://example.com:8080 |
An Access-Control-Allow-Origin header with the specified value is sent in HTTP responses. |
CORS
The CORS parameter instructs your backend to include the Access-Control-Allow-Origin header in its responses, listing the provided origins as the value. This will allow XMLHttpRequests (XHRs) from a browser with one of the listed origins to proceed.
For example, the FatFractal Data Browser has a base URL of https://system.fatfractal.com. In order to send XHRs to your backend, your FFDL file should include:
SET CORS https://system.fatfractal.com
Note that you may provide multiple origins to the CORS parameter, separated by spaces.
CREATE command
COLLECTION
The syntax to create a collection is
CREATE COLLECTION /<collection name> [OBJECTTYPE <objecttype>[, <objecttype>, ...]]
If OBJECTTYPE is provided, then the collection may only contain objects of the listed objecttypes. Otherwise, the collection may contain objects of any objecttype.
OBJECTTYPE
The syntax to create a new objecttype is
CREATE OBJECTTYPE <objecttype name> (<member>[, <member>, ...])
Each <member> is given as follows:
<member name> [ ENCRYPTED ] <backend datatype>
ENCRYPTED applies only to the backend datatype STRING; if provided, the member is stored encrypted on your app’s backend. For the supported backend datatypes, see Backend Datatypes.
ALIAS
Aliases allow you to set up shorter names for referring to grab bags, as a convenience. The syntax to create an alias is
CREATE ALIAS ON OBJECTTYPE <objecttype name> GRABBAG <grab bag name> AS <alias>
EVENT HANDLER
The syntax to associate a CRUD event or trigger to an event handler is
CREATE [ CRUD ] HANDLER <handler name> [ PRE | POST | ASYNC ] ON /<collection name> [ Create | Update | Delete ] AS <script type>:<script text>
See Custom Code.
EXTENSION
A server extension (or API extension) is another method for triggering serverside code, which, in this case executes on HTTP GET requests to a specified URI. The syntax to associate a server extension name to its code is
CREATE EXTENSION /<extension name> [ UNSECURED ] AS <script type>:<script text>
By default, a server extension can only be triggered by a user who is logged in. The optional UNSECURED keyword allows users that are not logged in to execute the extension.
See Custom Code.
PERMIT command
The PERMIT command is used to set default OAPs for individual users and/or groups with the specified permissions on collections. These defaults may be altered in code during runtime using FatFractal’s declarative security. The syntax for the PERMIT command is
PERMIT read:<group>[,<group>,...] write:<group>[,<group>,...] ON /<collection name>
See Permissions and Managing Users.
SCHEDULE command
The SCHEDULE command is used to schedule execution of serverside code. The syntax of the SCHEDULE command is
SCHEDULE <task name> <schedule> AS <script type>:<script text>
<schedule> is given in cron syntax:
<minute (0-59)> <hour (0-23)> <day of month (1-31)> <month (1-12)> <day of week (0-6)>
Each parameter may also be the character *, indicating all.
See Custom Code.
Metadata
↑ API • ↑ Command-Line • ↑ Datatypes • ↑ Directories • ↑ Objects • ↑ FFDL • Metadata • ↓ Queries • ↓ URIs
Whenever you create an object, the FatFractal Platform returns metadata about that object. The FatFractal Platform provides a built-in datatype, FFMetaData, to encapsulate this metadata. As for all built-in types, each of the FatFractal APIs provides an FFMetaData type appropriate for the API’s platform.
| Metadata Item | Info Type and Example | Comments |
|---|---|---|
| createdAt | Date Date |
In the format your client expects it to be in. Natively stored on you app’s backend as number. of milliseconds since January 1 1970. |
| createdBy | String lF0J_bnwLRgrkEI4vSjod7 |
GUID of the FFUser who created the object. |
| ffRL | String /Celebrity |
|
| ffUrl | URL /ff/resources/Celebrity/lF0J_bnwLRgrkEI4vSjod7 |
The location of the resource in question. Appends to the BaseURL. |
| ffUserCanEdit | Boolean true |
Whether or not the currently logged-in user has write privileges for this object. |
| guid | String lF0J_bnwLRgrkEI4vSjod7 |
Unique to your app’s namespace. Identifies a specific object in a particular collection. |
| objVersion | Numeric 19 |
The number of times an object has been updated. |
| updatedAt | Date Date |
In the format your client expects it to be in. Natively stored on you app’s backend as number of milliseconds since January 1 1970. |
| updatedBy | String lF0J_bnwLRgrkEI4vSjod7 |
GUID of the FFUser who last modified the object. |
For information on how to retrieve the metadata for an object using a specific API, see the API Reference.
Query Language
↑ API • ↑ Command-Line • ↑ Datatypes • ↑ Directories • ↑ Objects • ↑ FFDL • ↑ Metadata • Queries • ↓ URIs
The following table lists the query operators available on the FatFractal Platform. See Queries and Data Modeling.
| Class | Operator | Description | Examples |
|---|---|---|---|
| Comparison | eq | Equal to | guid eq ‘abc123′ |
| ne | Not equal to | userName ne ‘steve’ | |
| lt | Less than | age lt 8 | |
| lte | Less than or equal to | age lte 7 | |
| gt | Greater than | age gt 20 | |
| gte | Greater than or equal to | age gte 21 | |
| between | Between | rating between 7 and 10 | |
| Matching | matches | String matches regular expression | userName matches ‘[a-z].*’ |
| Boolean | and | AND | title eq ‘Breaking Bad’ and season eq 5 |
| or | OR | guid eq ‘abc123′ or userName eq ‘Steve’ | |
| not | Negation (NOT) | not (userName matches ‘[a-z].*’) | |
| Numeric | + | Addition | (length + width) gt 5 |
| - | Subtraction | (income – expenses) gt 10000 | |
| / | Division | distance/time lt 55 | |
| * | Multiplication | (length * width) between 5 and 10 | |
| % | Modulo division | n % 2 eq 0 | |
| Bitwise | & | Bitwise AND | (flags & mask) ne 0 |
| | | Bitwise OR | ((flags | 4) & mask) ne 0 | |
| ^ | Bitwise NOT | ^flags ne 0 | |
| Random | random(guid) | Return a guid from a random object | guid eq random(guid) |
| Geolocation | distance | Return the distance between two GEOLOCATION objects in kilometers | distance(location, [45.1, -122.2]) lte 10 |
NOTES:
- Operations are always performed left to right
- Parentheses will group operations as you would expect
- Single quotes are used to define a literal string, rather than double-quotes
URI Structure
↑ API • ↑ Command-Line • ↑ Datatypes • ↑ Directories • ↑ Objects • ↑ FFDL • ↑ Metadata • ↑ Queries • URIs
URLs on the FatFractal Platform are extensions of your application’s base URL:
<scheme>://<domain name>.fatfractal.com/<application name>
Or, if you are working locally:
<scheme>://localhost/<application name>
There are two groupings of allowed URLs:
<scheme>://<domain name>.fatfractal.com/<application name>/ff/resources/collection/guid
<scheme>://<domain name>.fatfractal.com/<application name>/ff/ext/extName
For information on how resources are organized on the FatFractal Platform, see Resource Hierarchy. For information on finding objects using queries and traversals, see Queries and Data Modeling, respectively.
BaseURL: <scheme>://<domain name>.fatfractal.com/<application name>
| Platform Naming Convention | Scope | Usage | Form | Valid URI |
|---|---|---|---|---|
| domain name | Third-level domain | This subdomain allows you to refer to a set of applications as a logical group. Domains are created in the FatFractal Console | alphanum | Required (or localhost if not deploying to cloud) |
| fatfractal | Second-level domain | Part of URL that points to the FatFractal platform | single value | Required |
| com | Top-level domain | Part of URL that points to the FatFractal platform | single value | Required |
| application name | Specific app name | A backend is created for each app, by application name. The BaseURL defines all resources “owned” by an app. Applications are created in the FatFractal Console. | unique to a domain alphanum |
Required |
OBJECTS: <BaseURL>/ff/resources/<collection>/<guid>
| PLATFORM NAMING CONVENTION | SCOPE | USAGE | FORM | VALID URI |
|---|---|---|---|---|
| resources | Targets an area of your app’s backend | Defines the namespace, available to your app’s backend, which refers to objects and values | value is ‘resources’ | Required value to refer to objects and values |
| collection | Points to a set of objects | A set of objects that is “grouped” into a shared namespace on your app’s backend. | Name is unique to the application’s namespace (alphanum) |
required |
| guid | Refers to an object | The term guid is always used to refer to a pointer to an object on the FatFractal Platform; may be assigned directly, if not, it is generated for you. | Name is unique to the application’s namespace (alphanum) |
required |
| ff | Targets the FatFractal Platform | This tag is required. | value is ‘ff’ | required |
SERVER EXTENSIONS: <BaseURL>/ff/ext/<extension name>
| PLATFORM NAMING CONVENTION | SCOPE | USAGE | FORM | VALID URI |
|---|---|---|---|---|
| ext | Targets an area of your app’s backend | Defines the namespace, available to your app’s backend, which refers to serverside API extensions your app has access to. | Value is ‘ext’ | optional |
| extension name | The name of a server extension | The server extension here must have been created and refer to a specific file and function in that file. See Custom Code for more information. |
Unique (alphanum) |
required |
| ff | Targets the FatFractal Platform | This tag is required. | value is ‘ff’ | required |









Facebook
Linked In
Twitter