Structr
References
System Keywords
Page Keywords
Built-in keywords that are available in page rendering contexts.
| Name | Description |
|---|---|
adapter | Refers to the configured data adapter of the enclosing component. |
children | Refers to the child nodes of the current node. |
dataSource | Refers to the configured data source of the enclosing component. |
id | Refers to the id of the object returned by URI Object Resolution, if available. |
link | Refers to the linked filesystem element of an HTML element in a Page. |
page | Refers to the current page in a page rendering context. |
parent | Refers to the parent element of the current in a page rendering context. |
template | Refers to the closest Template element in the current page. |
Markdown Rendering Hint: Children of Topic(Page Keywords) not rendered because MarkdownTableFormatter prevents rendering of children.
General Keywords
Built-in keywords that are available in all scripting contexts.
| Name | Description |
|---|---|
applicationRootPath | Refers to the root path of the Structr application. |
applicationStore | Application-wide data store. |
baseUrl | Refers to the base URL for this Structr application. |
current | Refers to the object returned by URI Object Resolution, if available. |
host | Refers to the host name of the server that Structr runs on. |
ip | Refers to the IP address of the interface on which the request was received. |
locale | Refers to the current locale. |
me | Refers to the current user. |
now | Refers to the current timestamp. |
parameterMap | Refers to the HTTP request parameters of the current request. |
pathInfo | Refers to the HTTP path string of the current request. |
predicate | Refers to the set of query predicates for advanced find(). |
queryString | Refers to the HTTP query string of the current request. |
request | Refers to the current set of HTTP request parameters. |
session | Refers to the current HTTP session. |
tenantIdentifier | Refers to the tenant identifier configured in structr.conf. |
this | Refers to the enclosing object instance of the currently executing method or script. |
Markdown Rendering Hint: Children of Topic(General Keywords) not rendered because MarkdownTableFormatter prevents rendering of children.
Special Keywords
Built-in keywords that are only available in special contexts.
| Name | Description |
|---|---|
data | Refers to the current element in an each() loop iteration or in a filter() expression. |
methodParameters | Refers to the arguments a method was called with. |
value | Refers to the input value in the write function of a Function property. |
Markdown Rendering Hint: Children of Topic(Special Keywords) not rendered because MarkdownTableFormatter prevents rendering of children.
Built-in Functions
Database Functions
| Name | Description | |
|---|---|---|
addLabels() | Adds the given set of labels to the given node. | Show detailsHide details |
create() | Creates a new node with the given type and key-value pairs in the database. | Show detailsHide details |
createOrUpdate() | Creates an object with the given properties or updates an existing object if it can be identified by a unique property. | Show detailsHide details |
createRelationship() | Creates and returns relationship of the given type between two entities. | Show detailsHide details |
cypher() | Executes the given Cypher query directly on the database and returns the results as Structr entities. | Show detailsHide details |
delete() | Deletes the one or more nodes or relationships from the database. | Show detailsHide details |
find() | Returns a collection of entities of the given type from the database. | Show detailsHide details |
findPrivileged() | Executes a find() operation with elevated privileges. | Show detailsHide details |
findRelationship() | Returns a collection of relationship entities of the given type from the database, takes optional key/value pairs. | Show detailsHide details |
get() | Returns the value with the given name of the given entity, or an empty string. | Show detailsHide details |
getIncomingRelationships() | Returns all incoming relationships between the given nodes, with an optional qualifying relationship type. | Show detailsHide details |
getOrCreate() | Returns an entity with the given properties, creating one if it doesn’t exist. | Show detailsHide details |
getOrNull() | Returns the value with the given name of the given entity, or null. | Show detailsHide details |
getOutgoingRelationships() | Returns the outgoing relationships of the given entity with an optional relationship type. | Show detailsHide details |
getRelationships() | Returns the relationships of the given entity with an optional relationship type. | Show detailsHide details |
hasIncomingRelationship() | Returns true if the given entity has incoming relationships of the given type. | Show detailsHide details |
hasOutgoingRelationship() | Returns true if the given entity has outgoing relationships of the given type. | Show detailsHide details |
hasRelationship() | Returns true if the given entity has relationships of the given type. | Show detailsHide details |
incoming() | Returns all incoming relationships of a node, with an optional qualifying relationship type. | Show detailsHide details |
instantiate() | Converts the given raw Neo4j entity to a Structr entity. | Show detailsHide details |
isEntity() | Returns true if the given argument is a Structr entity (node or relationship). | Show detailsHide details |
jdbc() | Fetches data from a JDBC source. | Show detailsHide details |
mongodb() | Opens a connection to a MongoDB source and returns a MongoCollection which can be used to further query the Mongo database. | Show detailsHide details |
outgoing() | Returns all outgoing relationships of a node, with an optional qualifying relationship type. | Show detailsHide details |
prefetch() | Prefetches a subgraph. | Show detailsHide details |
prefetch2() | Prefetches a subgraph using a query that returns explicit node and relationship collections. | Show detailsHide details |
remoteCypher() | Returns the result of the given Cypher query against a remote instance. | Show detailsHide details |
removeLabels() | Removes the given set of labels from the given node. | Show detailsHide details |
rollbackTransaction() | Marks the current transaction as failed and prevents all objects from being persisted in the database. | Show detailsHide details |
search() | Returns a collection of entities of the given type from the database, takes optional key/value pairs. Searches case-insensitive / inexact. | Show detailsHide details |
searchFulltext() | Returns a map of entities and search scores matching the given search string from the given fulltext index. | Show detailsHide details |
searchRelationshipsFulltext() | Returns a map of entities and search scores matching the given search string from the given fulltext index. Searches case-insensitve / inexact. | Show detailsHide details |
set() | Sets a value or multiple values on an entity. The values can be provided as a map or as a list of alternating keys and values. | Show detailsHide details |
setPrivileged() | Sets the given key/value pair(s) on the given entity with super-user privileges. | Show detailsHide details |
Markdown Rendering Hint: Children of Topic(Database Functions) not rendered because MarkdownTableWithDetailsFormatter prevents rendering of children.
Conversion Functions
| Name | Description | |
|---|---|---|
bson() | Creates BSON document from a map / object. | Show detailsHide details |
coalesce() | Returns the first non-null value in the list of expressions passed to it. In case all arguments are null, null will be returned. | Show detailsHide details |
dateFormat() | Formats the given date object according to the given pattern, using the current locale (language/country settings). | Show detailsHide details |
escapeHtml() | Replaces HTML characters with their corresponding HTML entities. | Show detailsHide details |
escapeJavascript() | Escapes the given string for use with Javascript. | Show detailsHide details |
escapeJson() | Escapes the given string for use within JSON. | Show detailsHide details |
escapeXml() | Replaces XML characters with their corresponding XML entities. | Show detailsHide details |
formurlencode() | Encodes the given object to an application/x-www-form-urlencoded string. | Show detailsHide details |
hash() | Returns the hash (as a hexadecimal string) of a given string, using the given algorithm (if available via the underlying JVM). | Show detailsHide details |
int() | Tries to convert the given object into an integer value. | Show detailsHide details |
latLonToUtm() | Converts the given latitude/longitude coordinates into an UTM string. | Show detailsHide details |
long() | Tries to convert the given object into a long integer value. | Show detailsHide details |
md5() | Returns the MD5 hash of a given object. | Show detailsHide details |
num() | Tries the convert given object into a floating-point number with double precision. | Show detailsHide details |
numberFormat() | Formats the given value using the given locale and format string. | Show detailsHide details |
parseDate() | Parses the given date string using the given format string. | Show detailsHide details |
parseNumber() | Parses the given string using the given (optional) locale. | Show detailsHide details |
toDate() | Converts the given number to a date. | Show detailsHide details |
toGraphObject() | Converts the given entity to GraphObjectMap. | Show detailsHide details |
unescapeHtml() | Reverses the effect of escape_html(). | Show detailsHide details |
urlencode() | URL-encodes the given string. | Show detailsHide details |
utmToLatLon() | Converts the given UTM string to latitude/longitude coordinates. | Show detailsHide details |
Markdown Rendering Hint: Children of Topic(Conversion Functions) not rendered because MarkdownTableWithDetailsFormatter prevents rendering of children.
String Functions
| Name | Description | |
|---|---|---|
abbr() | Abbreviates the given string at the last space character before the maximum length is reached. | Show detailsHide details |
base64decode() | Decodes the given base64 text using the supplied scheme. | Show detailsHide details |
base64encode() | Encodes the given string and returns a base64-encoded string. | Show detailsHide details |
capitalize() | Capitalizes the given string. | Show detailsHide details |
clean() | Cleans the given string. | Show detailsHide details |
concat() | Concatenates the given list of objects into a single string without a separator between them. | Show detailsHide details |
contains() | Returns true if the given string or collection contains a given element. | Show detailsHide details |
endsWith() | Returns true if the given string ends with the given suffix. | Show detailsHide details |
indexOf() | Returns the position of the first occurrence of the given word in the given string, or -1 if the string doesn’t contain the word. | Show detailsHide details |
join() | Joins the given collection of strings into a single string, separated by the given separator. | Show detailsHide details |
length() | Returns the length of the given string. | Show detailsHide details |
localize() | Returns a (cached) Localization result for the given key and optional domain. | Show detailsHide details |
lower() | Returns the lowercase version of the given string. | Show detailsHide details |
replace() | Replaces script expressions in the given template with values from the given entity. | Show detailsHide details |
split() | Splits the given string by the whole separator string. | Show detailsHide details |
splitRegex() | Splits the given string by given regex. | Show detailsHide details |
startsWith() | Returns true if the given string starts with the given prefix. | Show detailsHide details |
stopWords() | Returns a list of words (for the given language) which can be ignored for NLP purposes. | Show detailsHide details |
strReplace() | Replaces each substring of the subject that matches the given regular expression with the given replacement. | Show detailsHide details |
stripHtml() | Removes all HTML tags from the given source string and returns only the content. | Show detailsHide details |
substring() | Returns the substring of the given string. | Show detailsHide details |
titleize() | Titleizes the given string. | Show detailsHide details |
trim() | Removes whitespace at the edges of the given string. | Show detailsHide details |
upper() | Returns the uppercase value of its parameter. | Show detailsHide details |
Markdown Rendering Hint: Children of Topic(String Functions) not rendered because MarkdownTableWithDetailsFormatter prevents rendering of children.
System Functions
| Name | Description | |
|---|---|---|
changelog() | Returns the changelog for a given entity. | Show detailsHide details |
disableCascadingDelete() | Disables cascading delete in the Structr Backend for the current transaction. | Show detailsHide details |
disableNotifications() | Disables the Websocket broadcast notifications in the Structr Backend UI for the current transaction. | Show detailsHide details |
disableUuidValidation() | Disables the validation of user-supplied UUIDs when creating objects. | Show detailsHide details |
doAs() | Runs the given function in the context of the given user. | Show detailsHide details |
doInNewTransaction() | Runs the given function in a new transaction context. | Show detailsHide details |
doPrivileged() | Runs the given function in a privileged (superuser) context. | Show detailsHide details |
enableCascadingDelete() | Enables cascading delete in the Structr Backend for the current transaction. | Show detailsHide details |
enableNotifications() | Enables the Websocket broadcast notifications in the Structr Backend Ui for the current transaction. | Show detailsHide details |
evaluateScript() | Evaluates a serverside script string in the context of the given entity. | Show detailsHide details |
getAvailableServerlogs() | Returns a collection of available server logs files. | Show detailsHide details |
getCacheValue() | Retrieves the cached value for the given key. | Show detailsHide details |
getSessionAttribute() | Retrieve a value for the given key from the user session. | Show detailsHide details |
getenv() | Returns the value of the specified environment variable. If no value is specified, all environment variables are returned as a map. An environment variable is a system-dependent external named value. | Show detailsHide details |
hasCacheValue() | Checks if a cached value exists for the given key. | Show detailsHide details |
isLocale() | Returns true if the current user locale is equal to the given argument. | Show detailsHide details |
jobInfo() | Returns information about the job with the given job ID. | Show detailsHide details |
jobList() | Returns a list of running jobs. | Show detailsHide details |
logEvent() | Logs an event to the Structr log. | Show detailsHide details |
maintenance() | Allows an admin user to execute a maintenance command from within a scripting context. | Show detailsHide details |
random() | Returns a random alphanumeric string of the given length. | Show detailsHide details |
randomUuid() | Returns a new random UUID (v4). | Show detailsHide details |
removeSessionAttribute() | Remove key/value pair from the user session. | Show detailsHide details |
serverlog() | Returns the last n lines from the server log file. | Show detailsHide details |
setEncryptionKey() | Sets the secret key for encryt()/decrypt(), overriding the value from structr.conf. | Show detailsHide details |
setLogLevel() | Sets the application log level to the given level, if supported. | Show detailsHide details |
setSessionAttribute() | Store a value under the given key in the users session. | Show detailsHide details |
sleep() | Pauses the execution of the current thread for the given number of milliseconds. | Show detailsHide details |
stackDump() | Logs the current execution stack. | Show detailsHide details |
store() | Stores the given value in the current request context under the given key. | Show detailsHide details |
structrEnv() | Returns Structr runtime env information. | Show detailsHide details |
systemInfo() | Returns information about the system. | Show detailsHide details |
timer() | Controls a named timer by starting, pausing, clearing, or returning its current elapsed time in milliseconds. | Show detailsHide details |
userChangelog() | Returns the changelog for the changes a specific user made. | Show detailsHide details |
Markdown Rendering Hint: Children of Topic(System Functions) not rendered because MarkdownTableWithDetailsFormatter prevents rendering of children.
Mathematical Functions
| Name | Description | |
|---|---|---|
add() | Returns the sum of the given arguments. | Show detailsHide details |
ceil() | Returns the given value, rounded up to the nearest integer. | Show detailsHide details |
div() | Returns the result of value1 divided by value2. | Show detailsHide details |
floor() | Returns the given value, rounded down to the nearest integer. | Show detailsHide details |
max() | Returns the greater of the given values. | Show detailsHide details |
min() | Returns the smaller of the given values. | Show detailsHide details |
mod() | Implements the modulo operation on two integer values. | Show detailsHide details |
mult() | Returns the product of all given arguments. | Show detailsHide details |
quot() | Divides the first argument by the second argument. | Show detailsHide details |
rint() | Returns a random integer in the given range. | Show detailsHide details |
round() | Rounds the given argument to the nearest integer. | Show detailsHide details |
subt() | Subtracts the second argument from the first argument. | Show detailsHide details |
Markdown Rendering Hint: Children of Topic(Mathematical Functions) not rendered because MarkdownTableWithDetailsFormatter prevents rendering of children.
Access Control Functions
| Name | Description | |
|---|---|---|
addToGroup() | Adds the given user as a member of the given group. | Show detailsHide details |
copyPermissions() | Copies the security configuration of an entity to another entity. | Show detailsHide details |
grant() | Grants the given permissions on the given node to the given principal. | Show detailsHide details |
isAllowed() | Returns true if the given principal has the given permissions on the given node. | Show detailsHide details |
isInGroup() | Returns true if the given user is in the given group. | Show detailsHide details |
removeFromGroup() | Removes the given user from the given group. | Show detailsHide details |
revoke() | Revokes the given permissions on the given entity from a user. | Show detailsHide details |
Markdown Rendering Hint: Children of Topic(Access Control Functions) not rendered because MarkdownTableWithDetailsFormatter prevents rendering of children.
Scripting Functions
| Name | Description | |
|---|---|---|
applicationStoreDelete() | Removes a stored value from the application level store. | Show detailsHide details |
applicationStoreGet() | Returns a stored value from the application level store. | Show detailsHide details |
applicationStoreGetKeys() | Lists all keys stored in the application level store. | Show detailsHide details |
applicationStoreHas() | Checks if a key is present in the application level store. | Show detailsHide details |
applicationStorePut() | Stores a value in the application level store. | Show detailsHide details |
call() | Calls the given user-defined function in the current users context. | Show detailsHide details |
callPrivileged() | Calls the given user-defined function in a superuser context. | Show detailsHide details |
coalesceObjects() | Returns the first non-null value in the list of expressions passed to it. In case all arguments are null, null will be returned. | Show detailsHide details |
mergeProperties() | Copies the values for the given list of property keys from the source entity to the target entity. | Show detailsHide details |
requestStoreDelete() | Removes a stored value from the request level store. | Show detailsHide details |
requestStoreGet() | Retrieves a stored value from the request level store. | Show detailsHide details |
requestStoreGetKeys() | Lists all keys stored in the request level store. | Show detailsHide details |
requestStoreHas() | Checks if a key is present in the request level store. | Show detailsHide details |
requestStorePut() | Stores a value in the request level store. | Show detailsHide details |
retrieve() | Returns the value associated with the given key from the temporary store. | Show detailsHide details |
schedule() | Schedules a script or a function to be executed in a separate thread. | Show detailsHide details |
weekDays() | Calculates the number of week days (working days) between given dates. | Show detailsHide details |
Markdown Rendering Hint: Children of Topic(Scripting Functions) not rendered because MarkdownTableWithDetailsFormatter prevents rendering of children.
Logic Functions
| Name | Description | |
|---|---|---|
and() | Returns the logical AND result of the given boolean expressions. | Show detailsHide details |
empty() | Returns a boolean value that indicates whether the given object is null or empty. | Show detailsHide details |
equal() | Returns a boolean value that indicates whether the values are equal. | Show detailsHide details |
gt() | Returns true if the first argument is greater than the second argument. | Show detailsHide details |
gte() | Returns true if the first argument is greater than or equal to the second argument. | Show detailsHide details |
lt() | Returns true if the first argument is less than the second argument. | Show detailsHide details |
lte() | Returns true if the first argument is less that or equal to the second argument. | Show detailsHide details |
not() | Returns the logical negation given boolean expression. | Show detailsHide details |
one() | Checks if a number is equal to 1, returns the oneValue if yes, the otherValue if no. | Show detailsHide details |
or() | Returns the logical OR result of the given boolean expressions. | Show detailsHide details |
Markdown Rendering Hint: Children of Topic(Logic Functions) not rendered because MarkdownTableWithDetailsFormatter prevents rendering of children.
Collection Functions
| Name | Description | |
|---|---|---|
complement() | Removes objects from a list. | Show detailsHide details |
doubleSum() | Returns the sum of all the values in the given collection as a floating-point value. | Show detailsHide details |
extract() | Extracts property values from all elements of a collection and returns them as a collection. | Show detailsHide details |
first() | Returns the first element of the given collection. | Show detailsHide details |
intSum() | Returns the sum of the given arguments as an integer. | Show detailsHide details |
isCollection() | Returns true if the given argument is a collection. | Show detailsHide details |
last() | Returns the last element of the given collection. | Show detailsHide details |
merge() | Merges collections and objects into a single collection. | Show detailsHide details |
mergeUnique() | Merges collections and objects into a single collection, removing duplicates. | Show detailsHide details |
nth() | Returns the element with the given index of the given collection. | Show detailsHide details |
size() | Returns the size of the given collection. | Show detailsHide details |
sort() | Sorts the given collection or array according to the given property key. Default sort key is ‘name’. | Show detailsHide details |
unwind() | Converts a list of lists into a flat list. | Show detailsHide details |
Markdown Rendering Hint: Children of Topic(Collection Functions) not rendered because MarkdownTableWithDetailsFormatter prevents rendering of children.
Rendering Functions
| Name | Description | |
|---|---|---|
component() | Finds and returns the component with the given name in the current page. | Show detailsHide details |
getSource() | Returns the rendered HTML content for the given element. | Show detailsHide details |
hasCssClass() | Returns whether the given element has the given CSS class(es). | Show detailsHide details |
include() | Loads the element with the given name and renders its HTML representation into the output buffer. | Show detailsHide details |
includeChild() | Loads a template’s child element with the given name and renders its HTML representation into the output buffer. | Show detailsHide details |
insertHtml() | Inserts a new HTML subtree into the DOM. | Show detailsHide details |
print() | Prints the given strings or objects to the output buffer. | Show detailsHide details |
removeDomChild() | Removes a node from the DOM. | Show detailsHide details |
render() | Renders the children of the current node. | Show detailsHide details |
renderEach() | Renders the filtered contents of a component’s enclosing data source according to the data adapter configuration. | Show detailsHide details |
renderFields() | Renders values for one or all of the fields of one element from the enclosing component’s data source, wrapped in the given tag. | Show detailsHide details |
renderLabels() | Renders labels for one or all of the fields of one element from the enclosing component’s data source, wrapped in the given tag. | Show detailsHide details |
replaceDomChild() | Replaces a node from the DOM with new HTML. | Show detailsHide details |
setDetailsObject() | Allows overriding the current keyword with a given entity. | Show detailsHide details |
setLocale() | Sets the locale for the current request. | Show detailsHide details |
template() | Returns a MailTemplate object with the given name, replaces the placeholders with values from the given entity. | Show detailsHide details |
Markdown Rendering Hint: Children of Topic(Rendering Functions) not rendered because MarkdownTableWithDetailsFormatter prevents rendering of children.
Miscellaneous Functions
| Name | Description | |
|---|---|---|
dateAdd() | Adds the given values to a date. | Show detailsHide details |
invalidateCacheValue() | Invalidates the cached value for the given key (if present). | Show detailsHide details |
Markdown Rendering Hint: Children of Topic(Miscellaneous Functions) not rendered because MarkdownTableWithDetailsFormatter prevents rendering of children.
Input Output Functions
| Name | Description | |
|---|---|---|
append() | Appends text to a file in the exchange/ folder. | Show detailsHide details |
appendContent() | Appends content to a Structr File. | Show detailsHide details |
barcode() | Creates a barcode image of given type with the given data. | Show detailsHide details |
config() | Returns the configuration value associated with the given key from structr.conf. | Show detailsHide details |
copyFileContents() | Copies the content of sourceFile to targetFile and updates the meta-data accordingly. | Show detailsHide details |
createArchive() | Creates and returns a ZIP archive with the given files (and folders). | Show detailsHide details |
createFolderPath() | Creates a new folder in the virtual file system including all parent folders if they don’t exist already. | Show detailsHide details |
createZip() | Creates and returns a ZIP archive with the given files (and folders). | Show detailsHide details |
decrypt() | Decrypts a base 64 encoded AES ciphertext and returns the decrypted result. | Show detailsHide details |
encrypt() | Encrypts the given string using AES and returns the ciphertext encoded in base 64. | Show detailsHide details |
exec() | Executes a script returning the standard output of the script. | Show detailsHide details |
execBinary() | Executes a script returning the returning the raw output directly into the output stream. | Show detailsHide details |
flow() | Executes a given Flow and returns the evaluation result. | Show detailsHide details |
fromCsv() | Parses the given CSV string and returns a list of objects. | Show detailsHide details |
fromExcel() | Reads data from a given Excel sheet. | Show detailsHide details |
fromJson() | Parses the given JSON string and returns an object. | Show detailsHide details |
fromXml() | Parses the given XML and returns a JSON string. | Show detailsHide details |
getContent() | Returns the content of the given file. | Show detailsHide details |
getCsvHeaders() | Parses the given CSV string and returns a list of column headers. | Show detailsHide details |
importCss() | Imports CSS classes, media queries etc. from given CSS file. | Show detailsHide details |
importGpx() | Parses a given GPX string and returns its contents as an object with. | Show detailsHide details |
importHtml() | Imports HTML source code into an element. | Show detailsHide details |
log() | Logs the given objects to the logfile. | Show detailsHide details |
pdf() | Creates the PDF representation of a given page. | Show detailsHide details |
read() | Reads text from a file in the exchange/ folder. | Show detailsHide details |
setContent() | Sets the content of the given file. Content can either be of type String or byte[]. | Show detailsHide details |
toCsv() | Returns a CSV representation of the given nodes. | Show detailsHide details |
toExcel() | Creates Excel from given data. | Show detailsHide details |
toJson() | Serializes the given object to JSON. | Show detailsHide details |
translate() | Translates the given string from the source language to the target language. | Show detailsHide details |
unarchive() | Unarchives given file to an optional parent folder. | Show detailsHide details |
write() | Writes text to a new file in the exchange/ folder. | Show detailsHide details |
xml() | Tries to parse the contents of the given string into an XML document, returning the document on success. | Show detailsHide details |
xpath() | Returns the value of the given XPath expression from the given XML document. | Show detailsHide details |
Markdown Rendering Hint: Children of Topic(Input Output Functions) not rendered because MarkdownTableWithDetailsFormatter prevents rendering of children.
Security Functions
| Name | Description | |
|---|---|---|
confirmationKey() | Creates a confirmation key to use as a one-time token. Used for user confirmation or password reset. | Show detailsHide details |
createAccessAndRefreshToken() | Creates both JWT access token and refresh token for the given User entity that can be used for request authentication and authorization. | Show detailsHide details |
createAccessToken() | Creates a JWT access token for the given user entity that can be used for request authentication and authorization. | Show detailsHide details |
hmac() | Returns a keyed-hash message authentication code generated out of the given payload, secret and hash algorithm. | Show detailsHide details |
login() | Logs the given user in. With two arguments, verifies the password first. With one argument (user only), requires a privileged context (doPrivileged). | Show detailsHide details |
pdfEncrypt() | Encrypts a PDF file so that it can’t be opened without password. | Show detailsHide details |
Markdown Rendering Hint: Children of Topic(Security Functions) not rendered because MarkdownTableWithDetailsFormatter prevents rendering of children.
Validation Functions
| Name | Description | |
|---|---|---|
assert() | Aborts the current request if the given condition evaluates to false. | Show detailsHide details |
clearError() | Clears the given error token from the current context. | Show detailsHide details |
clearErrors() | Clears all error tokens present in the current context. | Show detailsHide details |
error() | Stores error tokens in the current context causing the transaction to fail at the end of the request. | Show detailsHide details |
getErrors() | Returns all error tokens present in the current context. | Show detailsHide details |
hasError() | Allows checking if an error has been raised in the scripting context. | Show detailsHide details |
isValidEmail() | Checks if the given address is a valid email address. | Show detailsHide details |
isValidUuid() | Tests if a given string is a valid UUID. | Show detailsHide details |
Markdown Rendering Hint: Children of Topic(Validation Functions) not rendered because MarkdownTableWithDetailsFormatter prevents rendering of children.
theme()
| Name | Description |
|---|
Markdown Rendering Hint: Children of Function(theme()) not rendered because MarkdownTableWithDetailsFormatter prevents rendering of children.
EMail Functions
| Name | Description | |
|---|---|---|
mailAddAttachment() | Adds an attachment with an optional file name to the current mail. | Show detailsHide details |
mailAddBcc() | Adds a Bcc: recipient to the current mail. | Show detailsHide details |
mailAddCc() | Adds a Cc: recipient to the current mail. | Show detailsHide details |
mailAddHeader() | Adds a custom header to the current mail. | Show detailsHide details |
mailAddMimePart() | Adds a MIME part to the current mail. | Show detailsHide details |
mailAddReplyTo() | Adds a Reply-To: recipient to the current mail. | Show detailsHide details |
mailAddTo() | Adds a To: recipient to the current mail. | Show detailsHide details |
mailBegin() | Begins a new mail configuration. | Show detailsHide details |
mailClearAttachments() | Removes all attachments from the current mail. | Show detailsHide details |
mailClearBcc() | Clears the current list of Bcc: recipients. | Show detailsHide details |
mailClearBounceAddress() | Removes the bounce address from the current mail. | Show detailsHide details |
mailClearCc() | Clears the current list of Cc: recipients. | Show detailsHide details |
mailClearHeaders() | Clears any configured custom headers for the current mail. | Show detailsHide details |
mailClearInReplyTo() | Removes the In-Reply-To header from the current mail. | Show detailsHide details |
mailClearMimeParts() | Removes all custom MIME parts from the current mail. | Show detailsHide details |
mailClearReplyTo() | Removes all Reply-To: configuration from the current mail. | Show detailsHide details |
mailClearTo() | Clears the current list of To: recipients. | Show detailsHide details |
mailDecodeText() | Decodes RFC 822 “text” token from mail-safe form as per RFC 2047. | Show detailsHide details |
mailEncodeText() | Encodes RFC 822 “text” token into mail-safe form as per RFC 2047. | Show detailsHide details |
mailGetError() | Returns the last error message (or null if no error has occurred). | Show detailsHide details |
mailGetLastOutgoingMessage() | Returns the last outgoing message sent by the advanced mail module in the current script as a node of type EMailMessage. | Show detailsHide details |
mailHasError() | Returns true if an error occurred while sending the mail. | Show detailsHide details |
mailRemoveHeader() | Removes a specific custom header from the current mail. | Show detailsHide details |
mailResetManualConfig() | Resets a manual SMTP configuration for the current mail. | Show detailsHide details |
mailSaveOutgoingMessage() | Configures if the current mail should be saved or not. | Show detailsHide details |
mailSelectConfig() | Selects a configuration prefix for the SMTP configuration. | Show detailsHide details |
mailSend() | Sends the currently configured mail. | Show detailsHide details |
mailSetBounceAddress() | Sets the bounce address of the current mail. | Show detailsHide details |
mailSetFrom() | Overwrites/Sets the from address (and optionally name) of the current mail. | Show detailsHide details |
mailSetHtmlContent() | Overwrites/Sets the HTML content of the current mail. | Show detailsHide details |
mailSetInReplyTo() | Sets the In-Reply-To header for the outgoing mail. | Show detailsHide details |
mailSetManualConfig() | Sets a manual SMTP configuration for the current mail. | Show detailsHide details |
mailSetSubject() | Overwrites/Sets the subject of the current mail. | Show detailsHide details |
mailSetTextContent() | Sets/Overwrites the text content of the current mail. | Show detailsHide details |
sendHtmlMail() | Sends an HTML email. | Show detailsHide details |
sendPlaintextMail() | Sends a plaintext email. | Show detailsHide details |
Markdown Rendering Hint: Children of Topic(EMail Functions) not rendered because MarkdownTableWithDetailsFormatter prevents rendering of children.
Http Functions
| Name | Description | |
|---|---|---|
DELETE() | Sends an HTTP DELETE request with an optional content type to the given URL and returns the response headers and body. | Show detailsHide details |
GET() | Sends an HTTP GET request to the given URL and returns the response headers and body. | Show detailsHide details |
HEAD() | Sends an HTTP HEAD request with optional username and password to the given URL and returns the response headers. | Show detailsHide details |
PATCH() | Sends an HTTP PATCH request to the given URL and returns the response headers and body. | Show detailsHide details |
POST() | Sends an HTTP POST request to the given URL and returns the response body. | Show detailsHide details |
POSTMultiPart() | Sends a multi-part HTTP POST request to the given URL and returns the response body. | Show detailsHide details |
PUT() | Sends an HTTP PUT request with an optional content type to the given URL and returns the response headers and body. | Show detailsHide details |
addHeader() | Temporarily adds the given (key, value) tuple to the local list of request headers. | Show detailsHide details |
clearHeaders() | Clears headers for the next HTTP request. | Show detailsHide details |
fetch() | Sends an HTTP request with an arbitrary method to the given URL and returns the response headers, body, and status code. | Show detailsHide details |
getCookie() | Returns the requested cookie if it exists. | Show detailsHide details |
getRequestHeader() | Returns the value of the given request header field. | Show detailsHide details |
getRequestHeaderNames() | Returns a collection of all the header names the current request contains. | Show detailsHide details |
removeResponseHeader() | Removes the given header field from the server response. | Show detailsHide details |
setCookie() | Sets the given cookie. | Show detailsHide details |
setResponseCode() | Sets the response code of the current rendering run. | Show detailsHide details |
setResponseHeader() | Adds the given header field and value to the response of the current rendering run. | Show detailsHide details |
validateCertificates() | Disables or enables strict certificate checking when performing a request in a scripting context. The setting remains for the whole request. | Show detailsHide details |
Markdown Rendering Hint: Children of Topic(Http Functions) not rendered because MarkdownTableWithDetailsFormatter prevents rendering of children.
MQTT Functions
| Name | Description | |
|---|---|---|
mqttPublish() | Publishes message on given mqtt client with given topic. | Show detailsHide details |
mqttSubscribe() | Subscribes given topic on given mqtt client. | Show detailsHide details |
mqttUnsubscribe() | Unsubscribes given topic on given mqtt client. | Show detailsHide details |
Markdown Rendering Hint: Children of Topic(MQTT Functions) not rendered because MarkdownTableWithDetailsFormatter prevents rendering of children.
Geocoding Functions
| Name | Description | |
|---|---|---|
azimuth() | Returns the azimuth between two geometries. | Show detailsHide details |
convertGeometry() | Converts the given geometry from source CRS to destination CRS. | Show detailsHide details |
coordsToLineString() | Converts a coordinate array into a line string geometry. | Show detailsHide details |
coordsToMultipoint() | Converts a coordinate array into a multipoint geometry. | Show detailsHide details |
coordsToPoint() | Converts a coordinate into a point. | Show detailsHide details |
coordsToPolygon() | Converts a coordinate array into a polygon. | Show detailsHide details |
distance() | Returns the distance between two geometries. | Show detailsHide details |
geocode() | Returns the geolocation (latitude, longitude) for the given street address using the configured geocoding provider. | Show detailsHide details |
getCoordinates() | Returns the coordinates of a geometry. | Show detailsHide details |
getWcsData() | Reads coverage data from a WCS endpoint and returns it. | Show detailsHide details |
getWcsHistogram() | Reads coverage data from a WCS endpoint and returns it. | Show detailsHide details |
getWfsData() | Reads features from a WFS endpoint and returns geometries. | Show detailsHide details |
lineSegment() | Returns a line segment with start point, azimuth and length. | Show detailsHide details |
lineStringsToPolygons() | Merges line strings to polygons. | Show detailsHide details |
makePolygonValid() | Makes a polygon valid. | Show detailsHide details |
readShapefile() | Reads a shapefile from a Structr path and returns it as a list of WKT strings. | Show detailsHide details |
wktToGeometry() | Converts a WKT string into a geometry object. | Show detailsHide details |
wktToPolygons() | Converts a WKT string into a list of polygons. | Show detailsHide details |
Markdown Rendering Hint: Children of Topic(Geocoding Functions) not rendered because MarkdownTableWithDetailsFormatter prevents rendering of children.
Schema Functions
| Name | Description | |
|---|---|---|
ancestorTypes() | Returns the list of parent types of the given type including the type itself. | Show detailsHide details |
enumInfo() | Returns the possible values of an enum property. | Show detailsHide details |
functionInfo() | Returns information about the currently running Structr method, or about the method defined in the given type and name. | Show detailsHide details |
getRelationshipTypes() | Returns the list of available relationship types form and/or to this node. Either potentially available (schema) or actually available (database). | Show detailsHide details |
inheritingTypes() | Returns the list of subtypes of the given type including the type itself. | Show detailsHide details |
propertyInfo() | Returns the schema information for the given property. | Show detailsHide details |
typeInfo() | Returns the type information for the specified type. | Show detailsHide details |
Markdown Rendering Hint: Children of Topic(Schema Functions) not rendered because MarkdownTableWithDetailsFormatter prevents rendering of children.
Predicate Functions
| Name | Description | |
|---|---|---|
predicate.and | Combines the given predicates using logical AND, returning a predicate usable with find() or search(). | Show detailsHide details |
predicate.any | Returns a query predicate that can be used with find() and search(). | Show detailsHide details |
predicate.contains | Returns a query predicate that can be used with find() or search(). | Show detailsHide details |
predicate.empty | Returns a query predicate that can be used with find() or search(). | Show detailsHide details |
predicate.endsWith | Returns a query predicate that can be used with find() or search(). | Show detailsHide details |
predicate.equals | Returns a query predicate that can be used with find() or search(). | Show detailsHide details |
predicate.gt | Returns a gt predicate that can be used in find() function calls. | Show detailsHide details |
predicate.gte | Returns a gte predicate that can be used in find() function calls. | Show detailsHide details |
predicate.lt | Returns an lt predicate that can be used in find() function calls. | Show detailsHide details |
predicate.lte | Returns an lte predicate that can be used in find() function calls. | Show detailsHide details |
predicate.not | Returns a query predicate that can be used with find() or search(). | Show detailsHide details |
predicate.or | Combines the given predicates using logical OR, returning a predicate usable with find() or search(). | Show detailsHide details |
predicate.page | Returns a query predicate that can be used with find() or search(). | Show detailsHide details |
predicate.range | Returns a range predicate that can be used in find() function calls. | Show detailsHide details |
predicate.sort | Returns a query predicate that can be used with find() or search(). | Show detailsHide details |
predicate.startsWith | Returns a query predicate that can be used with find() or search(). | Show detailsHide details |
predicate.withinDistance | Returns a query predicate that can be used with find() or search(). | Show detailsHide details |
Markdown Rendering Hint: Children of Topic(Predicate Functions) not rendered because MarkdownTableWithDetailsFormatter prevents rendering of children.
Miscellaneous functions
| Name | Description | |
|---|---|---|
cache() | Stores a value in the global cache. | Show detailsHide details |
Markdown Rendering Hint: Children of Topic(Miscellaneous functions) not rendered because MarkdownTableWithDetailsFormatter prevents rendering of children.
Logic functions
| Name | Description | |
|---|---|---|
if() | Evaluates a condition and executes different expressions depending on the result. | |
is() | Evaluates a condition and executes an expressions if the result is true. |
Markdown Rendering Hint: Children of Topic(Logic functions) not rendered because MarkdownTableWithDetailsFormatter prevents rendering of children.
Collection functions
| Name | Description | |
|---|---|---|
all() | Evaluates a StructrScript expression for every element of a collection and returns true if the expression evaluates to true for all of the elements. | Show detailsHide details |
any() | Evaluates a StructrScript expression for every element of a collection and returns true if the expression evaluates to true for any of the elements. | Show detailsHide details |
each() | Evaluates a StructrScript expression for every element of a collection. | Show detailsHide details |
filter() | Filters a list using a StructrScript expression. | Show detailsHide details |
map() | Returns a single result from all elements of a list by applying a reduction function. | Show detailsHide details |
none() | Evaluates a StructrScript expression for every element of a collection and returns true if the expression evaluates to true for none of the elements. | Show detailsHide details |
Markdown Rendering Hint: Children of Topic(Collection functions) not rendered because MarkdownTableWithDetailsFormatter prevents rendering of children.
System Types
System types are built-in types that provide core functionality in Structr. They include types for users and groups, files and folders, pages and templates, email handling, and more. Each system type comes with predefined properties and methods. You can use these types directly or extend them in your schema to add custom properties and behavior. For details on extending types, see the Data Model chapter.
DataFeed
Fetches and stores content from RSS and Atom feeds. Structr periodically checks configured feeds and creates FeedItem objects for new entries. Key properties include url for the feed location, updateInterval for automatic refresh timing, lastUpdated for tracking, and maxItems and maxAge for limiting stored entries.
Details
Feed items include title, author, publication date, content, and any enclosures like images or audio files. The updateIfDue() method checks whether enough time has passed since the last fetch and updates only when necessary. Use cleanUp() to remove old items based on your retention settings. You can extend DataFeed or FeedItem with custom properties and add an onCreate method on FeedItem to process new entries automatically – for example, sending notifications or importing content into your application.
Methods
| Name | Description |
|---|---|
cleanUp() | Removes old feed items based on the configured maxItems and maxAge properties. |
updateFeed() | Fetches new entries from the remote feed URL and runs cleanUp afterward. |
updateIfDue() | Checks if an update is due based on lastUpdated and updateInterval, and fetches new items if necessary. |
Markdown Rendering Hint: Children of SystemType(DataFeed) not rendered because SystemTypeMarkdownFormatter prevents rendering of children.
EMailMessage
Stores email messages fetched from mailboxes or saved from outgoing mail. Key properties include subject, from, fromMail, to, cc, bcc, content (plain text), htmlContent, sentDate, receivedDate, messageId, inReplyTo for threading, header (all headers as JSON), mailbox, and attachedFiles.
Details
Attachments are stored as linked File objects in a date-based folder structure. Add an onCreate method to process incoming emails automatically – for example, creating support tickets. You can extend EMailMessage with custom properties and configure the subtype on the Mailbox via overrideMailEntityType.
Properties
| Name | Type | Description |
|---|---|---|
attachedFiles | File[] | Files that were attached to this message. |
bcc | String | BCC address of this message. |
cc | String | CC address of this message. |
content | String | Plaintext content of this message. |
from | String | Sender name of this message. |
fromMail | String | Sender address of this message. |
htmlContent | String | HTML content of this message. |
inReplyTo | String | inReplyTo of this message. |
mailbox | Mailbox | Mailbox this message belongs to. |
messageId | String | Message id of this message. |
receivedDate | Date | Date this message was received. |
replyTo | String | Reply address of this message. |
sentDate | Date | Date this message was sent. |
subject | String | Subject of this message. |
to | String | Recipient of this message. |
Markdown Rendering Hint: Children of SystemType(EMailMessage) not rendered because SystemTypeMarkdownFormatter prevents rendering of children.
File
Represents files in Structr’s virtual filesystem. Files can live on different storage backends – local disk, Amazon S3, or archive systems – while keeping consistent metadata and permissions. Key properties include name, contentType for MIME type, size, parent for folder location, and isTemplate for dynamic content evaluation.
Details
Structr automatically calculates checksums, extracts text via Apache Tika for full-text search, and supports OCR when Tesseract is installed. Files use the same permission system as all other objects. You can extend the File type with custom properties or create subtypes like InvoiceDocument or ProductImage.
Methods
| Name | Description |
|---|---|
doCSVImport() | Starts an asynchronous CSV import job and returns the job ID. |
doXMLImport() | Starts an asynchronous CSV import job and returns the job ID. |
getCSVHeaders() | Extracts and returns the column headers from a CSV file. |
getFirstLines() | Returns the first lines of the file along with the detected line separator (LF, CR, or CR+LF). |
getSearchContext() | Searches for a term in the file’s extracted text content and returns the surrounding context. |
getXMLStructure() | Analyzes the structure of an XML file and returns it as a JSON representation. |
Properties
| Name | Type | Description |
|---|---|---|
checksum | Long | xxHash checksum of the file’s content (generated automatically). |
contentType | String | Content type of the file. |
crc32 | Long | CRC32 checksum of the file’s content (optional, see below). |
isTemplate | Boolean | When checked, the content of this file is evaluated as a script and the resulting content is returned. |
md5 | String | MD5 checksum of the file’s content (optional, see below). |
parent | Folder | parent folder of this File or Folder |
path | String | full path of this file or folder (read-only) |
sha1 | String | SHA1 checksum of the file’s content (optional, see below). |
sha512 | String | SHA512 checksum of the file’s content (optional, see below). |
size | Long | Size of this file. |
Markdown Rendering Hint: Children of SystemType(File) not rendered because SystemTypeMarkdownFormatter prevents rendering of children.
Folder
Represents directories in Structr’s virtual filesystem. The folder structure you see is independent of where files are physically stored – you can reorganize freely without moving actual data. Key properties include name, parent for the containing folder, and children for contained files and subfolders.
Details
You can mount folders to external storage locations like local directories or cloud providers, with automatic change detection. Each folder can use a different storage backend, so frequently accessed files can live on fast storage while archives go somewhere cheaper. Permissions on folders affect visibility of their contents. You can extend the Folder type or create subtypes for specialized use cases.
Properties
| Name | Type | Description |
|---|---|---|
enabledChecksums | String | Override for the global checksums setting, allows you to enable or disable individual checksums for all files in this folder (and sub-folders). |
parent | Folder | parent folder of this File or Folder |
path | String | full path of this file or folder (read-only) |
Markdown Rendering Hint: Children of SystemType(Folder) not rendered because SystemTypeMarkdownFormatter prevents rendering of children.
Group
Organizes users for easier permission management. Instead of granting permissions to individual users, you grant them to groups – when a user joins a group, they automatically inherit all its permissions. Key properties include name and members for the collection of users and nested groups.
Details
Groups can contain other groups, so you can build hierarchies where permissions flow down automatically. In the Admin UI, you manage membership via drag-and-drop. Groups also serve as integration points for LDAP, letting you map external directory groups to Structr. You can extend the Group type or create subtypes like Department or Team.
Properties
| Name | Type | Description |
|---|---|---|
members | Principal[] | Members of the group, can be User or Group. |
Markdown Rendering Hint: Children of SystemType(Group) not rendered because SystemTypeMarkdownFormatter prevents rendering of children.
Image
Extends File with specialized image handling. When you upload an image, Structr automatically extracts EXIF metadata (camera info, GPS coordinates, date taken) and stores the dimensions. Two thumbnails are generated on first access and linked to the original via database relationships.
Details
Supported formats include JPEG, PNG, GIF, WebP, and TIFF. You can scale, crop, and convert between formats. The Admin UI offers a built-in image editor and an optimized view mode for browsing image folders. With Tesseract OCR installed, Structr can extract text from images for full-text search. You can extend Image or create subtypes like ProductImage.
Methods
| Name | Description |
|---|---|
doCSVImport() | Starts an asynchronous CSV import job and returns the job ID. |
doXMLImport() | Starts an asynchronous CSV import job and returns the job ID. |
getCSVHeaders() | Extracts and returns the column headers from a CSV file. |
getFirstLines() | Returns the first lines of the file along with the detected line separator (LF, CR, or CR+LF). |
getSearchContext() | Searches for a term in the file’s extracted text content and returns the surrounding context. |
getXMLStructure() | Analyzes the structure of an XML file and returns it as a JSON representation. |
Properties
| Name | Type | Description |
|---|---|---|
checksum | Long | xxHash checksum of the file’s content (generated automatically). |
contentType | String | Content type of the file. |
crc32 | Long | CRC32 checksum of the file’s content (optional, see below). |
exifIFD0Data | String | Exif IFD0 data. |
exifSubIFDData | String | Exif SubIFD data. |
gpsData | String | GPS data. |
height | Integer | Height of this image. |
isTemplate | Boolean | When checked, the content of this file is evaluated as a script and the resulting content is returned. |
md5 | String | MD5 checksum of the file’s content (optional, see below). |
orientation | Integer | Orientation of this image. |
parent | Folder | parent folder of this File or Folder |
path | String | full path of this file or folder (read-only) |
sha1 | String | SHA1 checksum of the file’s content (optional, see below). |
sha512 | String | SHA512 checksum of the file’s content (optional, see below). |
size | Long | Size of this file. |
width | Integer | Width of this image. |
Markdown Rendering Hint: Children of SystemType(Image) not rendered because SystemTypeMarkdownFormatter prevents rendering of children.
MailTemplate
Defines reusable email content for automated messages like registration confirmations or password resets. Key properties include name for referencing in code, locale for language variants, and content fields for subject, plain text, and HTML body. Use ${...} expressions for dynamic values like ${link} or ${me.name}.
Details
Structr uses predefined template names for built-in workflows: CONFIRM_REGISTRATION_* for self-registration and RESET_PASSWORD_* for password reset. The Admin UI provides a Template Wizard that generates these automatically, plus a visual editor with live preview. Each template can have multiple locale variants for multi-language support.
Properties
| Name | Type | Description |
|---|---|---|
description | String | Description of this template. |
locale | String | Locale for this template. |
text | String | Text content of this template. |
Markdown Rendering Hint: Children of SystemType(MailTemplate) not rendered because SystemTypeMarkdownFormatter prevents rendering of children.
Mailbox
Configures an email account for automatic fetching from IMAP or POP3 servers. The MailService periodically checks all mailboxes and stores new messages as EMailMessage objects. Key properties include host, mailProtocol (imaps or pop3), port, user, password, and folders to monitor.
Details
The service fetches messages newest first, detects duplicates via Message-ID, and extracts attachments as File objects. Use overrideMailEntityType to specify a custom subtype for incoming emails, enabling lifecycle methods for automatic processing. You can trigger immediate fetching with FetchMailsCommand or list available folders with FetchFoldersCommand.
Methods
| Name | Description |
|---|---|
fetchMails() | Triggers an immediate fetch of emails from this mailbox, bypassing the regular MailService interval. Creates EMailMessage objects for new messages and extracts attachments. |
getAvailableFoldersOnServer() | Returns a list of folder names available on the configured mail server. Use this to discover which folders can be added to the folders property for fetching. |
Properties
| Name | Type | Description |
|---|---|---|
emails | EMailMessage[] | Messages in this mailbox. |
folders | String[] | Folders this mailbox queries. |
host | String | Host or IP address this mailbox connects to. |
mailProtocol | Enum | Mail protocol. |
password | String | Password this mailbox connects with. |
port | Integer | Port this mailbox connects to. |
user | String | Username this mailbox connects with. |
Markdown Rendering Hint: Children of SystemType(Mailbox) not rendered because SystemTypeMarkdownFormatter prevents rendering of children.
MessageClient
Methods
| Name | Description |
|---|---|
sendMessage() | Sends a message to the specified topic. |
subscribeTopic() | Subscribes the client to the specified topic to receive messages. |
unsubscribeTopic() | Unsubscribes the client from the specified topic. |
Markdown Rendering Hint: Children of SystemType(MessageClient) not rendered because SystemTypeMarkdownFormatter prevents rendering of children.
Page
Represents a complete web page. Structr renders pages on the server, so browsers receive ready-to-display HTML rather than JavaScript that builds the page client-side. Key properties include name (also determines the URL), contentType for output format, position for start page selection, showOnErrorCodes for error pages, and sites for multi-site hosting.
Details
Pages support template expressions for dynamic content, repeaters for collections, partial reloads without full page refresh, and show/hide conditions. Permissions control both data access and what renders – you can make entire page sections visible only to certain users. URL Routing lets you define custom paths with typed parameters that Structr validates automatically.
Properties
| Name | Type | Description |
|---|---|---|
data-structr-id | String | Set to ${current.id} most of the time. |
hideConditions | String | Conditions which have to be met in order for the element to be hidden. This is an ‘auto-script’ environment, meaning that the text is automatically surrounded with ${}. |
sharedComponentConfiguration | String | The contents of this field will be evaluated before rendering this component. This is usually used to customize shared components to make them more flexible. This is an ‘auto-script’ environment, meaning that the text is automatically surrounded with ${}. |
showConditions | String | Conditions which have to be met in order for the element to be shown. This is an ‘auto-script’ environment, meaning that the text is automatically surrounded with ${}. |
Markdown Rendering Hint: Children of SystemType(Page) not rendered because SystemTypeMarkdownFormatter prevents rendering of children.
Site
Controls which pages are served for which domain. A single Structr instance can host multiple websites – useful for running public and internal sites side by side, serving localized versions under country domains, or operating staging and production on the same server. Key properties include name, hostname, and an optional port for exact matching.
Details
When a request arrives, Structr checks hostname and port against configured sites and serves only the assigned pages. Pages without site assignment are served everywhere (the default behavior). A page can belong to multiple sites. Sites control page visibility only – files remain accessible regardless of domain. Site configurations are included in deployment exports.
Properties
| Name | Type | Description |
|---|---|---|
hostname | String | Domain name used to match incoming requests to this site. Requests with a matching Host header are routed to pages assigned to this site. |
port | Integer | Port number used together with hostname to match incoming requests. Allows hosting multiple sites on different ports of the same domain. |
Markdown Rendering Hint: Children of SystemType(Site) not rendered because SystemTypeMarkdownFormatter prevents rendering of children.
Template
Contains text or markup that outputs directly into pages. Unlike HTML elements, templates give you full control over where children appear – you call render(children) explicitly. This lets you define layouts with multiple insertion points like sidebars and main content areas. Key properties include name, content, contentType (Markdown, AsciiDoc, HTML, JSON, XML, plaintext), and repeater settings.
Details
The render() function controls exactly where each child appears, while include() pulls content from elsewhere in the page tree. The Main Page Template typically sits below the Page element and defines the overall structure. Templates can also produce non-HTML output by setting the content type to application/json or text/xml.
Properties
| Name | Type | Description |
|---|---|---|
data-structr-id | String | Set to ${current.id} most of the time. |
hideConditions | String | Conditions which have to be met in order for the element to be hidden. This is an ‘auto-script’ environment, meaning that the text is automatically surrounded with ${}. |
sharedComponentConfiguration | String | The contents of this field will be evaluated before rendering this component. This is usually used to customize shared components to make them more flexible. This is an ‘auto-script’ environment, meaning that the text is automatically surrounded with ${}. |
showConditions | String | Conditions which have to be met in order for the element to be shown. This is an ‘auto-script’ environment, meaning that the text is automatically surrounded with ${}. |
Markdown Rendering Hint: Children of SystemType(Template) not rendered because SystemTypeMarkdownFormatter prevents rendering of children.
User
Represents user accounts in your application. Every request to Structr runs in the context of a user – either authenticated or anonymous. Users can log in via HTTP headers, session cookies, JWT tokens, or OAuth providers. Key properties include name and eMail for identification, password (stored as secure hash), isAdmin for full system access, blocked for disabling accounts, and locale for localization.
Details
Structr supports two-factor authentication via TOTP and automatically locks accounts after too many failed login attempts. For self-service scenarios, users can register themselves and confirm their account via email. You can extend the User type with custom properties or create subtypes like Employee or Customer.
Properties
| Name | Type | Description |
|---|---|---|
confirmationKey | String | Temporary token for email verification during self-registration. Set automatically when a user registers and cleared after successful confirmation. |
homeDirectory | Folder | The home directory of this user, if application.filesystem.enabled is set to true in structr.conf. |
skipSecurityRelationships | Boolean | When true, excludes this user from relationship-based permission checks. Useful for system users or service accounts that should bypass normal access control evaluation. |
workingDirectory | Folder | The work directory of this user, if application.filesystem.enabled is set to true in structr.conf. |
Markdown Rendering Hint: Children of SystemType(User) not rendered because SystemTypeMarkdownFormatter prevents rendering of children.
Widget
Provides reusable building blocks for pages – from simple HTML snippets to complete configurable components. Structr parses the widget’s HTML source when you insert it into a page. Key properties include name, source for HTML content, configuration for customizable variables (JSON), selectors for context menu suggestions, treePath for categories, and isPageTemplate for page creation.
Details
Template expressions in square brackets like [variableName] become configurable options that users fill in when inserting. The configuration JSON defines input types, defaults, and help text. Widgets can define shared components with <structr:shared-template> tags. The Widgets flyout shows both local and remote widgets, enabling sharing across applications.
Properties
| Name | Type | Description |
|---|---|---|
configuration | String | JSON object defining configurable template variables. Keys match square bracket expressions in the source, values define input labels and types for the insertion dialog. |
description | String | Explanatory text (long description) displayed when inserting the Widget. Supports HTML formatting. Shown in the dialog when the Widget is used as a page template. |
isPageTemplate | Boolean | When enabled, this Widget appears in the Create Page dialog as a page template option. |
isRenderTemplate | Boolean | When enabled, this Widget can be used as a render template in data-driven components. |
selectors | String[] | CSS selectors that control where this Widget appears as a suggestion in the context menu. For example “table” or “div.container”. |
shortDescription | String | Short text displayed when selecting the widget. Shown in the context menu. |
source | String | HTML source code of the Widget. Can include Structr expressions and template variables in square brackets like [variableName]. |
svgIconPath | String | Path to an SVG icon displayed in the Widgets flyout, can be an absolute URL. |
thumbnailPath | String | Path to a thumbnail image displayed in the Widgets flyout, can be an absolute URL. |
treePath | String | Slash-separated path for organizing Widgets into categories. Must begin with a slash, for example “/Forms/Input Elements”. |
Markdown Rendering Hint: Children of SystemType(Widget) not rendered because SystemTypeMarkdownFormatter prevents rendering of children.
Services
CronService
Executes global schema methods on a configurable schedule. Tasks run as superuser.
Settings
| Setting | Description |
|---|---|
CronService.tasks | Whitespace-separated list of method names to schedule |
<methodName>.cronExpression | Six-field cron expression: <s> <m> <h> <dom> <mon> <dow> |
CronService.allowparallelexecution | Allow concurrent execution of the same task (default: false) |
Markdown Rendering Hint: Children of Service(CronService) not rendered because ServiceMarkdownFormatter prevents rendering of children.
DirectoryWatchService
Synchronizes Structr folders with directories on the server filesystem. Monitors mounted directories for changes and updates file metadata automatically.
Configuration
Mount a directory by setting the mountTarget property on a Folder’s storage configuration. The service watches for file changes and periodically rescans the directory.
Folder Properties
| Property | Description |
|---|---|
mountTarget | Path to the directory on the server filesystem |
mountWatchContents | Enable filesystem event monitoring for immediate change detection |
mountScanInterval | Seconds between directory rescans (0 = no periodic scan) |
Settings
| Setting | Description |
|---|---|
application.filesystem.followsymlinks | Follow symbolic links when scanning directories |
Notes
- Only works on filesystems that support directory watch events
- File contents remain on disk and are not imported into the database
- Changes made to files in Structr are written to the corresponding files on disk
Markdown Rendering Hint: Children of Service(DirectoryWatchService) not rendered because ServiceMarkdownFormatter prevents rendering of children.
FtpService
Provides FTP access to Structr’s virtual filesystem. Users authenticate with their Structr credentials and see files according to their permissions.
Settings
| Setting | Default | Description |
|---|---|---|
application.ftp.port | 8021 | Port the FTP server listens on |
application.ftp.passivePortRange | – | Port range for passive mode, for example “50000-50100”. Required when running in Docker. |
Markdown Rendering Hint: Children of Service(FtpService) not rendered because ServiceMarkdownFormatter prevents rendering of children.
MailService
Periodically fetches emails from configured Mailbox objects via IMAP or POP3 and stores them as EMailMessage objects. Detects duplicates using Message-ID headers and extracts attachments automatically.
Settings
| Setting | Default | Description |
|---|---|---|
mail.maxemails | 25 | Maximum emails to fetch per mailbox per check |
mail.updateinterval | 30000 | Interval between checks in milliseconds |
mail.attachmentbasepath | /mail/attachments | Path for storing email attachments |
Related Types
Mailbox, EMailMessage
Markdown Rendering Hint: Children of Service(MailService) not rendered because ServiceMarkdownFormatter prevents rendering of children.
SSHService
Provides SSH access to an interactive Admin Console and SFTP/SSHFS access to Structr’s virtual filesystem. Only admin users can connect. Authentication requires a public key configured in the user’s publicKey property.
Settings
| Setting | Default | Description |
|---|---|---|
application.ssh.port | 8022 | Port the SSH server listens on |
application.ssh.forcepublickey | true | Require public key authentication, disabling password login |
Markdown Rendering Hint: Children of Service(SSHService) not rendered because ServiceMarkdownFormatter prevents rendering of children.
Maintenance Commands
Maintenance commands perform administrative operations on the database and application. They run with full privileges and are available only to admin users. You can execute maintenance commands through the Admin UI (Schema → Admin menu), the REST API (POST /structr/rest/maintenance/<command>), or programmatically using the maintenance() function. For details on execution methods, see the Maintenance chapter.
changeNodePropertyKey
Migrates property values from one property key to another.
Parameters
| Name | Description | Optional |
|---|---|---|
oldKey | Source property key | no |
newKey | Target property key | no |
Use this command when you rename a property in your schema and need to move existing data to the new key.
clearDatabase
Removes all nodes and relationships from the database.
Notes
- Warning: This action cannot be reversed. It deletes your entire application and all data, including non-Structr nodes and relationships.
copyRelationshipProperties
Copies property values from one key to another on all relationships.
Parameters
| Name | Description | Optional |
|---|---|---|
sourceKey | Source property key | no |
destKey | Destination property key | no |
createLabels
Updates Neo4j type labels on nodes to match their Structr type hierarchy.
Parameters
| Name | Description | Optional |
|---|---|---|
type | Limit to nodes of this type | yes |
removeUnused | Remove labels without corresponding types (default: true) | yes |
Use this command after changing type inheritance or when labels are out of sync.
The command reads each node’s type property, resolves the inheritance hierarchy, and creates a label for each type in the chain.
Notes
- Only works for nodes that have a value in their
typeproperty.
deleteSpatialIndex
Removes legacy spatial index nodes from the database.
Deletes all nodes with bbox and gtype properties.
Notes
- This is a legacy command for cleaning up old spatial indexes. You will probably never need it.
deployData
Exports or imports application data.
Parameters
| Name | Description | Optional |
|---|---|---|
mode | import or export | no |
source | Source folder path (required for import) | yes |
target | Target folder path (required for export) | yes |
types | Comma-separated list of types to export | yes |
Exports or imports data only, not the schema or application structure. Use this for backing up or migrating data between environments.
deploy
Exports or imports a Structr application without data.
Parameters
| Name | Description | Optional |
|---|---|---|
mode | import or export | no |
source | Source folder path (required for import) | yes |
target | Target folder path (required for export) | yes |
extendExistingApp | If true, import merges with existing application instead of replacing it | yes |
Exports or imports the schema, pages, files, and security configuration. The export creates a text-based format suitable for version control.
This is the same mechanism used by the Dashboard deployment feature.
directFileImport
Imports files from a server filesystem directory into Structr’s virtual filesystem.
Parameters
| Name | Description | Optional |
|---|---|---|
source | Source directory path on the server | no |
mode | copy (keep originals) or move (delete after import) | no |
existing | Handle duplicates: skip, overwrite, or rename (default: skip) | yes |
index | Enable fulltext indexing for imported files (default: true) | yes |
Notes
- When using Docker, copy files into the container first or use a mounted volume.
fixNodeProperties
Converts property values that were stored with an incorrect type.
Parameters
| Name | Description | Optional |
|---|---|---|
type | Node type to fix | no |
name | Specific property to fix (default: all properties) | yes |
Use this command after changing a property’s type in the schema, for example from String to Integer.
flushCaches
Clears all internal caches.
Use this command to reduce memory consumption or resolve cache invalidation issues.
letsencrypt
Creates or renews an SSL certificate using Let’s Encrypt.
Parameters
| Name | Description | Optional |
|---|---|---|
server | staging (test certificates) or production (valid certificates) | no |
challenge | Override the challenge method from structr.conf | yes |
wait | Seconds to wait for DNS or HTTP challenge preparation | yes |
reload | Reload HTTPS certificate without restart (default: false) | yes |
Notes
- The
letsencrypt.domainssetting must contain the full domain name for the certificate.
maintenanceMode
Enables or disables the maintenance mode.
Parameters
| Name | Description | Optional |
|---|---|---|
action | enable or disable | no |
When the maintenance mode is started, the following services are shut down:
- FtpService
- HttpService
- SSHService
- AgentService
- CronService
- DirectoryWatchService
- LDAPService
- MailService
After a short delay, the following services are restarted on different ports:
- FtpService
- HttpService
- SSHService
Notes
- Active processes will keep running until they are finished. If for example a cron job is running, it will not be halted. Only the services are stopped so no new processes are started.
rebuildIndex
Rebuilds database indexes by removing and re-adding all indexed properties.
Parameters
| Name | Description | Optional |
|---|---|---|
type | Limit to this node type | yes |
relType | Limit to this relationship type | yes |
mode | nodesOnly or relsOnly | yes |
Use this command after bulk imports or when search results are inconsistent.
setNodeProperties
Sets property values on all nodes of a given type.
Parameters
| Name | Description | Optional |
|---|---|---|
type | Node type to modify | no |
newType | New value for the type property | yes |
All parameters except type and newType are treated as property key-value pairs to set on matching nodes.
Notes
- Warning: After changing the
typeproperty, runcreateLabelsto update node labels. Otherwise, nodes may not be accessible through their new type.
setRelationshipProperties
Sets property values on all relationships of a given type.
Parameters
| Name | Description | Optional |
|---|---|---|
type | Relationship type to modify | no |
All parameters except type are treated as property key-value pairs to set on matching relationships.
Notes
- You cannot change a relationship’s type with this command. To change the type, delete and recreate the relationship.
setUuid
Generates UUIDs for nodes and relationships that lack an id property.
Parameters
| Name | Description | Optional |
|---|---|---|
type | Limit to this node type | yes |
relType | Limit to this relationship type | yes |
allNodes | Apply to all nodes | yes |
allRels | Apply to all relationships | yes |
Settings
The following table lists all configuration settings available in Structr. You can view and modify these settings in the Configuration Interface, which opens in a separate browser tab when you click the wrench icon in the Admin UI header bar. The Configuration Interface requires authentication with the superuser password from structr.conf. Alternatively, you can edit the structr.conf file directly and restart the server.
Advanced Settings
| Name | Description | |
|---|---|---|
dateproperty.defaultformat | Default ISO8601 date format pattern | |
geocoding.apikey | Geocoding configuration | |
geocoding.language | Geocoding configuration | |
geocoding.provider | Geocoding configuration | |
json.lenient | Whether to use lenient serialization, e.g. allow to serialize NaN, -Infinity, Infinity instead of just returning null. Note: as long as Javascript doesn’t support NaN etc., most of the UI will be broken | |
json.output.dateformat | Output format pattern for date objects in JSON | |
json.reductiondepth | For restricted views (ui, custom, all), only a limited amount of attributes (id, type, name) are rendered for nested objects after this depth. The default is 0, meaning that on the root depth (0), all attributes are rendered and reduction starts at depth 1. Can be overridden on a per-request basis by using the request parameter _outputReductionDepth | |
json.redundancyreduction | If enabled, nested nodes (which were already rendered in the current output) are rendered with limited set of attribute (id, type, name). | |
zoneddatetimeproperty.defaultformat | Default zoneddatetime format pattern |
Markdown Rendering Hint: Children of Topic(Advanced Settings) not rendered because MarkdownTableWithDetailsFormatter prevents rendering of children.
Application Configuration Settings
| Name | Description | |
|---|---|---|
application.changelog.enabled | Turns on logging of changes to nodes and relationships | |
application.changelog.user_centric.enabled | Turns on user-centric logging of what a user changed/created/deleted | |
application.encryption.secret | Sets the global secret for encrypted string properties. Using this configuration setting is one of several possible ways to set the secret. Using the set_encryption_key() function is a way to set the encryption key without persisting it on disk. | |
application.feeditem.indexing.remote | Whether indexing for type FeedItem will index the target URL of the FeedItem or the description | |
application.feeditemcontent.indexing.enabled | Whether indexing is enabled for type FeedItemContent | |
application.feeditemcontent.indexing.limit | Maximum number of words to be indexed per FeedItemContent. | |
application.feeditemcontent.indexing.maxlength | Maximum length of words to be indexed for FeedItemContent | |
application.feeditemcontent.indexing.minlength | Minimum length of words to be indexed for FeedItemContent | |
application.filesystem.checksums.default | List of additional checksums to be calculated on file creation by default. (File.checksum is always popuplated with an xxHash)
| |
application.filesystem.enabled | If enabled, Structr will create a separate home directory for each user. The home directory of authenticated users will override the default upload folder setting. See Filesystem for more information. | |
application.filesystem.indexing.enabled | Whether indexing is enabled globally (can be controlled separately for each file) | |
application.filesystem.indexing.maxsize | Maximum size (MB) of a file to be indexed | |
application.filesystem.unique.insertionposition | Defines the insertion position of the uniqueness criterion (currently a timestamp).
| |
application.filesystem.unique.paths | If enabled, Structr will not allow files/folders of the same name in the same folder and automatically rename the file. | |
application.httphelper.charset | Default charset for outbound connections | |
application.httphelper.timeouts.connect | Timeout for outbound connections in seconds to wait until a connection is established. A timeout value of zero is interpreted as an infinite timeout. | |
application.httphelper.timeouts.connectionrequest | Timeout for outbound connections in seconds to wait when requesting a connection from the connection manager. A timeout value of zero is interpreted as an infinite timeout. | |
application.httphelper.timeouts.socket | Socket timeout for outbound connections in seconds to wait for data or, put differently, a maximum inactivity period between two consecutive data packets. A timeout value of zero is interpreted as an infinite timeout. | |
application.httphelper.urlwhitelist | A comma-separated list of URL patterns that can be used in HTTP request scripting functions (GET, PUT, POST etc.). If this value is anything other than *, whitelisting is applied to all outgoing requests. | |
application.httphelper.useragent | User agent string for outbound connections | |
application.localization.fallbacklocale | The default locale used, if no localization is found and using a fallback is active. | |
application.localization.logmissing | Turns on logging for requested but non-existing localizations. | |
application.localization.usefallbacklocale | Turns on usage of fallback locale if for the current locale no localization is found | |
application.proxy.mode | Sets the mode of the proxy servlet. Possible values are ‘disabled’ (off, servlet responds with 503 error code), ‘protected’ (only authenticated requests allowed) and ‘public’ (anonymous requests allowed). Default is disabled. | |
application.remotedocument.indexing.enabled | Whether indexing is enabled for type RemoteDocument | |
application.remotedocument.indexing.limit | Maximum number of words to be indexed per RemoteDocument. | |
application.remotedocument.indexing.maxlength | Maximum length of words to be indexed for RemoteDocument | |
application.remotedocument.indexing.minlength | Minimum length of words to be indexed for RemoteDocument | |
application.schema.allowunknownkeys | Enables get() and set() built-in functions to use property keys that are not defined in the schema. | |
application.schema.automigration | Enable automatic migration of schema information between versions (if possible – may delete schema nodes) | |
application.security.ssrf.protection | Enables SSRF protection for outbound HTTP requests. When enabled, requests to private/internal IP ranges (loopback, link-local, site-local) are blocked. Disable only for testing or when internal network access is explicitly required. | |
application.uploads.folder | The default upload folder for files uploaded via the UploadServlet. This must be a valid folder path and can not be empty. Final slashes are automatically removed. Uploads to the root directory are not allowed. | |
application.xml.parser.security | Enables various security measures for XML parsing to prevent exploits. | |
callbacks.login.onsave | Setting this to true enables the execution of the User.onSave method for login actions. This will also trigger for failed login attempts and for two-factor authentication intermediate steps. Disabled by default because the global login handler onStructrLogin would be the right place for such functionality. | |
callbacks.logout.onsave | Setting this to true enables the execution of the User.onSave method when a user logs out. Disabled by default because the global login handler onStructrLogout would be the right place for such functionality. | |
deployment.data.export.nodes.batchsize | Sets the batch size for data deployment when exporting nodes. The relationships for each node are collected and exported while the node itself is exported. It can make sense to reduce this number, if all/most nodes have very high amount of relationships. | |
deployment.data.import.nodes.batchsize | Sets the batch size for data deployment when importing nodes. | |
deployment.data.import.relationships.batchsize | Sets the batch size for data deployment when importing relationships. | |
deployment.schema.format | Configures how the schema is exported in a deployment export. file exports the schema as a single file. tree exports the schema as a tree where methods/function properties are written to single files in a tree structure. |
Markdown Rendering Hint: Children of Topic(Application Configuration Settings) not rendered because MarkdownTableWithDetailsFormatter prevents rendering of children.
Cron Jobs Settings
| Name | Description | |
|---|---|---|
cronservice.allowparallelexecution | Enables the parallel execution of the same cron job. This can happen if the method runs longer than the defined cron interval. Since this could lead to problems, the default is false. | |
cronservice.tasks | List of cron task configurations or method names separated by space. This only configures the list of tasks. For each task, there needs to be another configuration entry named ‘ |
Markdown Rendering Hint: Children of Topic(Cron Jobs Settings) not rendered because MarkdownTableWithDetailsFormatter prevents rendering of children.
Database Configuration Settings
| Name | Description | |
|---|---|---|
database.cache.uuid.size | Size of the database driver relationship cache | |
database.prefetching.maxcount | How many results a prefetching query may return before prefetching will be deactivated for that query. | |
database.prefetching.maxduration | How long a prefetching query may take before prefetching will be deactivated for that query. | |
database.prefetching.threshold | How many identical queries must run in a transaction to activate prefetching for that query. | |
database.result.fetchsize | Number of database records to fetch per batch when fetching large results | |
database.result.lazy | Forces Structr to use lazy evaluation for relationship queries | |
database.result.softlimit | Soft result count limit for a single query (can be overridden by setting the _pageSize request parameter or by adding the request parameter _disableSoftLimit to a non-null value) | |
log.cypher.debug | Turns on debug logging for the generated Cypher queries | |
log.cypher.debug.ping | Turns on debug logging for the generated Cypher queries of the websocket PING command. Can only be used in conjunction with log.cypher.debug |
Markdown Rendering Hint: Children of Topic(Database Configuration Settings) not rendered because MarkdownTableWithDetailsFormatter prevents rendering of children.
DoS Filter Settings
| Name | Description | |
|---|---|---|
httpservice.dosfilter.delayms | The delay given to all requests over the rate limit, before they are considered at all. -1 means just reject request, 0 means no delay, otherwise it is the delay. | |
httpservice.dosfilter.insertheaders | If true, insert the DoSFilter headers into the response. | |
httpservice.dosfilter.ipwhitelist | A comma-separated list of IP addresses that will not be rate limited. Defaults to localhost. | |
httpservice.dosfilter.managedattr | If set to true, this servlet is set as a ServletContext attribute with the filter name as the attribute name. This allows context external mechanisms (e.g. JMX via ContextHandler managed attribute) to manage the configuration of the filter. | |
httpservice.dosfilter.maxidletrackerms | How long to keep track of request rates for a connection before deciding that the user has gone away and discarding it, in milliseconds. | |
httpservice.dosfilter.maxrequestms | How long to allow a request to run in milliseconds. | |
httpservice.dosfilter.maxrequestspersec | The maximum number of requests from a connection per second. Requests in excess of this are first delayed, then throttled. | |
httpservice.dosfilter.maxwaitms | How long to blocking wait for the throttle semaphore in milliseconds. | |
httpservice.dosfilter.ratelimiting | Enables rate limiting using Jetty’s DoSFilter. | |
httpservice.dosfilter.remoteport | If true then rate is tracked by IP+port (effectively connection). If false, rate is tracked by IP address only. | |
httpservice.dosfilter.throttledrequests | The number of requests over the rate limit able to be considered at once. | |
httpservice.dosfilter.throttlems | How long to async wait for semaphore in milliseconds. | |
httpservice.dosfilter.toomanycode | The HTTP status code to send if there are too many requests. By default is 429 (too many requests), but 503 (service unavailable) is another option. |
Markdown Rendering Hint: Children of Topic(DoS Filter Settings) not rendered because MarkdownTableWithDetailsFormatter prevents rendering of children.
General Settings
| Name | Description | |
|---|---|---|
application.cluster.enabled | Enables cluster mode (experimental) | |
application.cluster.log.enabled | Enables debug logging for cluster mode communication | |
application.cluster.name | The name of the Structr cluster | |
application.console.cypher.maxresults | The maximum number of results returned by a cypher query in the admin console. If a query yields more results, an error message is shown. | |
application.email.validation.regex | Regular expression used to validate email addresses for User.eMail and is_valid_email() function. | |
application.heap.max_size | Maximum Java heap size (-Xmx). Examples: 2g, 4g, 8g. Note: Changes require a restart of Structr. | |
application.heap.min_size | Minimum Java heap size (-Xms). Examples: 512m, 1g, 2g. Note: Changes require a restart of Structr. | |
application.instance.name | The name of the Structr instance (displayed in the top right corner of structr-ui) | |
application.instance.stage | The stage of the Structr instance (displayed in the top right corner of structr-ui) | |
application.legacy.requestparameters.enabled | Enables pre-4.0 request parameter names (sort, page, pageSize, etc. instead of _sort, _page, _pageSize, …) | |
application.runtime.enforce.recommended | Enforces version check for Java runtime. | |
application.scripting.allowedhostclasses | Space-separated list of fully-qualified Java class names that you can load dynamically in a scripting environment. | |
application.scripting.debugger | Enables Chrome debugger initialization in scripting engine. The current debugger URL will be shown in the server log and also made available on the dashboard. | |
application.scripting.js.wrapinmainfunction | Forces js scripts to be wrapped in a main function for legacy behaviour. | |
application.stats.aggregation.interval | Minimum aggregation interval for HTTP request stats. | |
application.systeminfo.disabled | Disables transmission of telemetry information. This information is used to improve the software and to better adapt to different hardware configurations. | |
application.timezone | Application timezone (e.g. UTC, Europe/Berlin). If not set, falls back to system timezone or UTC. Note: Changes require a restart of Structr. | |
application.title | The title of the application as shown in the log file. This entry exists for historical reasons and has no functional impact other than appearing in the log file. | |
application.uuid.allowedformats | Configures which UUIDv4 types are allowed: With dashes, without dashes or both. | Show detailsHide details |
application.uuid.createcompact | Determines if UUIDs are created with or without dashes. This setting is only used if application.uuid.allowedformats is set to both. WARNING: Requires a restart to take effect. | |
base.path | Path of the Structr working directory. All files will be located relative to this directory. | |
changelog.path | Path to the Structr changelog storage folder | |
configuration.provider | Fully-qualified class name of a Java class in the current class path that implements the org.structr.schema.ConfigurationProvider interface. | |
configured.services | Services that are listed in this configuration key will be started when Structr starts. | |
data.exchange.path | IMPORTANT: Path is relative to base.path | |
files.path | Path to the Structr file storage folder | |
log.callback.threshold | Number of callbacks after which a transaction will be logged. | |
log.directorywatchservice.scanquietly | Prevents logging of each scan process for every folder processed by the directory watch service | |
log.functions.stacktrace | If true, the full stacktrace is logged for exceptions in system functions. | |
log.level | Configures the default log level. Takes effect immediately. | |
log.querytime.threshold | Milliseconds after which a long-running query will be logged. | |
log.scriptprocess.commandline | Configures the default logging behaviour for the command line generated for script processes. This applies to the exec()- and exec_binary() functions, as well as some processes handling media conversion or processing. For the exec() and exec_binary() function, this can be overridden for each call of the function. | |
scripts.path | Path to the Structr scripts folder. IMPORTANT: Path is relative to base.path | |
scripts.path.allowpathtraversal | Setting to true disables an additional check that disallows path traversals (.. in path). | |
scripts.path.allowsymboliclinks | Setting to true disables an additional check that disallows symbolic links in script paths. | |
tmp.path | Path to the temporary directory. Uses java.io.tmpdir by default |
Markdown Rendering Hint: Children of Topic(General Settings) not rendered because MarkdownTableWithDetailsFormatter prevents rendering of children.
Licensing Settings
| Name | Description | |
|---|---|---|
license.allow.fallback | Allow Structr to fall back to the Community License if no valid license exists (or license cannot be validated). Set this to false in production environments to prevent Structr from starting without a license. | |
license.key | Base64-encoded string that contains the complete license data, typically saved as ‘license.key’ in the main directory. | |
license.validation.timeout | Timeout in seconds for license validation requests. |
Markdown Rendering Hint: Children of Topic(Licensing Settings) not rendered because MarkdownTableWithDetailsFormatter prevents rendering of children.
Miscellaneous Settings
| Name | Description | |
|---|---|---|
translation.deepl.apikey | DeepL API Key | |
translation.google.apikey | Google Cloud Translation API Key |
Markdown Rendering Hint: Children of Topic(Miscellaneous Settings) not rendered because MarkdownTableWithDetailsFormatter prevents rendering of children.
OAuth Settings
| Name | Description | |
|---|---|---|
oauth.auth0.audience | Optional. The API audience (identifier) of your Auth0 API. Required for API access tokens. | |
oauth.auth0.authorization_location | Required if tenant not set. Full URL of the authorization endpoint. Ignored if tenant is configured. | |
oauth.auth0.authorization_path | Optional. Path to authorization endpoint. Only used with tenant setting. Defaults to ‘/authorize’. | |
oauth.auth0.client_id | Required. Client ID from your Auth0 application. | |
oauth.auth0.client_secret | Required. Client secret from your Auth0 application. | |
oauth.auth0.error_uri | Optional. Redirect URI on unsuccessful authentication. Defaults to ‘/login’. | |
oauth.auth0.logout_uri | Optional. Logout URI. Defaults to ‘/logout’. | |
oauth.auth0.redirect_uri | Optional. Structr endpoint for the OAuth authorization callback. Defaults to ‘/oauth/auth0/auth’. | |
oauth.auth0.return_uri | Optional. Redirect URI on successful authentication. Defaults to ‘/’. | |
oauth.auth0.scope | Optional. OAuth scope. Defaults to ‘openid profile email’. | |
oauth.auth0.tenant | Required (recommended). Auth0 tenant domain (e.g., ‘your-tenant.auth0.com’). When set, authorization_location and token_location are built automatically. | |
oauth.auth0.token_location | Required if tenant not set. Full URL of the token endpoint. Ignored if tenant is configured. | |
oauth.auth0.token_path | Optional. Path to token endpoint. Only used with tenant setting. Defaults to ‘/oauth/token’. | |
oauth.auth0.user_details_resource_uri | Optional. User details endpoint. Built from tenant if not set. | |
oauth.auth0.userinfo_path | Optional. Path to userinfo endpoint. Only used with tenant setting. Defaults to ‘/userinfo’. | |
oauth.azure.authorization_location | Optional. URL of the authorization endpoint. Built automatically from tenant_id if not set. | |
oauth.azure.client_id | Required. Application (client) ID from Azure AD app registration. | |
oauth.azure.client_secret | Required. Client secret from Azure AD app registration. | |
oauth.azure.error_uri | Optional. Redirect URI on unsuccessful authentication. Defaults to ‘/login’. | |
oauth.azure.logout_uri | Optional. Logout URI. Defaults to ‘/logout’. | |
oauth.azure.redirect_uri | Optional. Structr endpoint for the OAuth authorization callback. Defaults to ‘/oauth/azure/auth’. | |
oauth.azure.return_uri | Optional. Redirect URI on successful authentication. Defaults to ‘/’. | |
oauth.azure.scope | Optional. OAuth scope. Defaults to ‘openid profile email’. | |
oauth.azure.tenant_id | Required. Azure AD tenant ID, or ‘common’ for multi-tenant apps, or ‘organizations’ for work accounts only. | |
oauth.azure.token_location | Optional. URL of the token endpoint. Built automatically from tenant_id if not set. | |
oauth.azure.user_details_resource_uri | Optional. User details endpoint. Defaults to ‘https://graph.microsoft.com/v1.0/me’. | |
oauth.facebook.authorization_location | Optional. URL of the authorization endpoint. Uses default Facebook endpoint if not set. | |
oauth.facebook.client_id | Required. App ID from your Facebook Developer application. | |
oauth.facebook.client_secret | Required. App secret from your Facebook Developer application. | |
oauth.facebook.error_uri | Optional. Redirect URI on unsuccessful authentication. Defaults to ‘/login’. | |
oauth.facebook.logout_uri | Optional. Logout URI. Defaults to ‘/logout’. | |
oauth.facebook.redirect_uri | Optional. Structr endpoint for the OAuth authorization callback. Defaults to ‘/oauth/facebook/auth’. | |
oauth.facebook.return_uri | Optional. Redirect URI on successful authentication. Defaults to ‘/’. | |
oauth.facebook.scope | Optional. OAuth scope. Defaults to ‘email’. | |
oauth.facebook.token_location | Optional. URL of the token endpoint. Uses default Facebook endpoint if not set. | |
oauth.facebook.user_details_resource_uri | Optional. User details endpoint. Defaults to ‘https://graph.facebook.com/me’. | |
oauth.github.authorization_location | Optional. URL of the authorization endpoint. Uses default GitHub endpoint if not set. | |
oauth.github.client_id | Required. Client ID from your GitHub OAuth application. | |
oauth.github.client_secret | Required. Client secret from your GitHub OAuth application. | |
oauth.github.error_uri | Optional. Redirect URI on unsuccessful authentication. Defaults to ‘/login’. | |
oauth.github.logout_uri | Optional. Logout URI. Defaults to ‘/logout’. | |
oauth.github.redirect_uri | Optional. Structr endpoint for the OAuth authorization callback. Defaults to ‘/oauth/github/auth’. | |
oauth.github.return_uri | Optional. Redirect URI on successful authentication. Defaults to ‘/’. | |
oauth.github.scope | Optional. OAuth scope. Defaults to ‘user:email’. | |
oauth.github.token_location | Optional. URL of the token endpoint. Uses default GitHub endpoint if not set. | |
oauth.github.user_details_resource_uri | Optional. User details endpoint. Defaults to ‘https://api.github.com/user’. | |
oauth.google.authorization_location | Optional. URL of the authorization endpoint. Uses default Google endpoint if not set. | |
oauth.google.client_id | Required. Client ID from your Google Cloud Console OAuth credentials. | |
oauth.google.client_secret | Required. Client secret from your Google Cloud Console OAuth credentials. | |
oauth.google.error_uri | Optional. Redirect URI on unsuccessful authentication. Defaults to ‘/login’. | |
oauth.google.logout_uri | Optional. Logout URI. Defaults to ‘/logout’. | |
oauth.google.redirect_uri | Optional. Structr endpoint for the OAuth authorization callback. Defaults to ‘/oauth/google/auth’. | |
oauth.google.return_uri | Optional. Redirect URI on successful authentication. Defaults to ‘/’. | |
oauth.google.scope | Optional. OAuth scope. Defaults to ‘email’. | |
oauth.google.token_location | Optional. URL of the token endpoint. Uses default Google endpoint if not set. | |
oauth.google.user_details_resource_uri | Optional. User details endpoint. Defaults to ‘https://www.googleapis.com/oauth2/v3/userinfo’. | |
oauth.keycloak.authorization_location | Optional. URL of the authorization endpoint. Built automatically from server_url and realm if not set. | |
oauth.keycloak.client_id | Required. Client ID from your Keycloak client configuration. | |
oauth.keycloak.client_secret | Required. Client secret from your Keycloak client configuration. | |
oauth.keycloak.error_uri | Optional. Redirect URI on unsuccessful authentication. Defaults to ‘/login’. | |
oauth.keycloak.logout_uri | Optional. Logout URI. Defaults to ‘/logout’. | |
oauth.keycloak.realm | Required. Keycloak realm name. Defaults to ‘master’. | |
oauth.keycloak.redirect_uri | Optional. Structr endpoint for the OAuth authorization callback. Defaults to ‘/oauth/keycloak/auth’. | |
oauth.keycloak.return_uri | Optional. Redirect URI on successful authentication. Defaults to ‘/’. | |
oauth.keycloak.scope | Optional. OAuth scope. Defaults to ‘openid profile email’. | |
oauth.keycloak.server_url | Required. Keycloak server URL (e.g., ‘https://keycloak.example.com’). | |
oauth.keycloak.token_location | Optional. URL of the token endpoint. Built automatically from server_url and realm if not set. | |
oauth.keycloak.user_details_resource_uri | Optional. User details endpoint. Built automatically from server_url and realm if not set. | |
oauth.linkedin.authorization_location | Optional. URL of the authorization endpoint. Uses default LinkedIn endpoint if not set. | |
oauth.linkedin.client_id | Required. Client ID from your LinkedIn OAuth application. | |
oauth.linkedin.client_secret | Required. Client secret from your LinkedIn OAuth application. | |
oauth.linkedin.error_uri | Optional. Redirect URI on unsuccessful authentication. Defaults to ‘/login’. | |
oauth.linkedin.logout_uri | Optional. Logout URI. Defaults to ‘/logout’. | |
oauth.linkedin.redirect_uri | Optional. Structr endpoint for the OAuth authorization callback. Defaults to ‘/oauth/linkedin/auth’. | |
oauth.linkedin.return_uri | Optional. Redirect URI on successful authentication. Defaults to ‘/’. | |
oauth.linkedin.scope | Optional. OAuth scope. Defaults to ‘openid profile email’. | |
oauth.linkedin.token_location | Optional. URL of the token endpoint. Uses default LinkedIn endpoint if not set. | |
oauth.linkedin.user_details_resource_uri | Optional. User details endpoint. Defaults to ‘https://api.linkedin.com/v2/userinfo’. | |
oauth.logging.verbose | Optional. Enables verbose logging for OAuth login. Useful for debugging. | |
oauth.servers | List of available OAuth services separated by space. Defaults to a list of all available services. |
Markdown Rendering Hint: Children of Topic(OAuth Settings) not rendered because MarkdownTableWithDetailsFormatter prevents rendering of children.
Security Settings
| Name | Description | |
|---|---|---|
application.ssh.forcepublickey | Force use of public key authentication for SSH connections | |
confirmationkey.passwordreset.validityperiod | Validity period (in minutes) of the confirmation key generated when a user resets his password. Default is 30. | |
confirmationkey.registration.validityperiod | Validity period (in minutes) of the confirmation key generated during self registration. Default is 2 days (2880 minutes) | |
confirmationkey.validwithouttimestamp | How to interpret confirmation keys without a timestamp | |
initialuser.create | Enables or disables the creation of an initial admin user when connecting to a database that has never been used with structr. | |
initialuser.name | Name of the initial admin user. This will only be set if the user is created. | |
initialuser.password | Password of the initial admin user. This will only be set if the user is created. | |
letsencrypt.challenge.type | Challenge type for Let’s Encrypt authorization. Possible values are ‘http’ and ‘dns’. | |
letsencrypt.domain.chain.filename | File name of the Let’s Encrypt domain chain. Default is ‘domain-chain.crt’. | |
letsencrypt.domain.csr.filename | File name of the Let’s Encrypt CSR. Default is ‘domain.csr’. | |
letsencrypt.domain.key.filename | File name of the Let’s Encrypt domain key. Default is ‘domain.key’. | |
letsencrypt.domains | List of domains separated by space to fetch and update Let’s Encrypt certificates for | |
letsencrypt.key.size | Encryption key length. Default is 2048. | |
letsencrypt.production.server.url | URL of Let’s Encrypt server. Default is ‘acme://letsencrypt.org’ | |
letsencrypt.staging.server.url | URL of Let’s Encrypt staging server for testing only. Default is ‘acme://letsencrypt.org/staging’. | |
letsencrypt.user.key.filename | File name of the Let’s Encrypt user key. Default is ‘user.key’. | |
letsencrypt.wait | Wait for this amount of seconds before trying to authorize challenge. Default is 300 seconds (5 minutes). | |
registration.allowloginbeforeconfirmation | Enables self-registered users to login without clicking the activation link in the registration email. | |
registration.customuserattributes | Attributes the registering user is allowed to provide. All other attributes are discarded. (eMail is always allowed) | |
security.authentication.propertykeys | List of property keys separated by space in the form of | |
security.jwks.admin.claim.key | The name of the key in the JWKS response claims in whose values is searched for a value matching the value of security.jwks.admin.claim.value. | |
security.jwks.admin.claim.value | The value that must be present in the JWKS response claims object with the key given in security.jwks.admin.claim.key in order to give the requesting user admin privileges. | |
security.jwks.group.claim.key | The name of the key in the JWKS response claims whose value(s) will be used to look for Group nodes with a matching jwksReferenceId. | |
security.jwks.id.claim.key | The name of the key in the JWKS response claims whose value will be used as the ID of the temporary principal object. | |
security.jwks.name.claim.key | The name of the key in the JWKS response claims whose value will be used as the name of the temporary principal object. | |
security.jwks.provider | URL of the JWKS provider | |
security.jwt.expirationtime | Access token timeout in minutes. | |
security.jwt.jwtissuer | The issuer for the JWTs created by this Structr instance. | |
security.jwt.key.alias | The alias of the private key of the given ‘security.jwt.keystore’ | |
security.jwt.keystore | Used if ‘security.jwt.secrettype’=keypair. A valid keystore file containing a private/public keypair that can be used to sign and verify JWTs | |
security.jwt.keystore.password | The password for the given ‘security.jwt.keystore’ | |
security.jwt.refreshtoken.expirationtime | Refresh token timeout in minutes. | |
security.jwt.secret | Used if ‘security.jwt.secrettype’=secret. The secret that will be used to sign and verify all tokens issued and sent to Structr. Must have a min. length of 32 characters. | |
security.jwt.secrettype | Selects the secret type that will be used to sign or verify a given access or refresh token | |
security.passwordpolicy.complexity.enforce | Configures if password complexity is enforced for user passwords. If active, changes which violate the complexity rules, will result in an error and must be accounted for. | |
security.passwordpolicy.complexity.minlength | The minimum length for user passwords (only active if the enforce setting is active) | |
security.passwordpolicy.complexity.requiredigits | Require at least one digit in user passwords (only active if the enforce setting is active) | |
security.passwordpolicy.complexity.requirelowercase | Require at least one lower case character in user passwords (only active if the enforce setting is active) | |
security.passwordpolicy.complexity.requirenonalphanumeric | Require at least one non alpha-numeric character in user passwords (only active if the enforce setting is active) | |
security.passwordpolicy.complexity.requireuppercase | Require at least one upper case character in user passwords (only active if the enforce setting is active) | |
security.passwordpolicy.forcechange | Indicates if a forced password change is active | |
security.passwordpolicy.maxage | The number of days after which a user has to change his password | |
security.passwordpolicy.maxfailedattempts | The maximum number of failed login attempts before a user is blocked. (Can be disabled by setting to zero or a negative number) | |
security.passwordpolicy.onchange.clearsessions | Clear all sessions of a user on password change. | |
security.passwordpolicy.remindtime | The number of days (before the user must change the password) where a warning should be issued. (Has to be handled in application code) | |
security.passwordpolicy.resetfailedattemptsonpasswordreset | Configures if resetting the users password also resets the failed login attempts counter | |
security.twofactorauthentication.algorithm | Respected by the most recent Google Authenticator implementations. Warning: Changing this setting after users are already confirmed will effectively lock them out. Set [User].twoFactorConfirmed to false to show them a new QR code. | |
security.twofactorauthentication.digits | Respected by the most recent Google Authenticator implementations. Warning: Changing this setting after users are already confirmed may lock them out. Set [User].twoFactorConfirmed to false to show them a new QR code. | |
security.twofactorauthentication.issuer | Must be URL-compliant in order to scan the created QR code | |
security.twofactorauthentication.loginpage | The application page where the user enters the current two factor token | |
security.twofactorauthentication.logintimeout | Defines how long the two-factor login time window in seconds is. After entering the username and password the user has this amount of time to enter a two factor token before he has to re-authenticate via password | |
security.twofactorauthentication.period | Defines the period that a TOTP code will be valid for, in seconds. Respected by the most recent Google Authenticator implementations. Warning: Changing this setting after users are already confirmed will effectively lock them out. Set [User].twoFactorConfirmed to false to show them a new QR code. | |
security.twofactorauthentication.whitelistedips | Comma-separated list of IPs for which two factor authentication is disabled. Both IPv4 and IPv6 are supported. CIDR notation is also supported. (e.g. 192.168.0.1/24 or 2A01:598:FF30:C500::/64) | |
superuser.password | Password of the superuser | |
superuser.username | Name of the superuser |
Markdown Rendering Hint: Children of Topic(Security Settings) not rendered because MarkdownTableWithDetailsFormatter prevents rendering of children.
Server Settings
| Name | Description | |
|---|---|---|
access.control.accepted.origins | Comma-separated list of accepted origins, sets the Access-Control-Allow-Origin header. | |
access.control.allow.credentials | Sets the value of the Access-Control-Allow-Credentials header. | |
access.control.allow.headers | Sets the value of the Access-Control-Allow-Headers header. | |
access.control.allow.methods | Sets the value of the Access-Control-Allow-Methods header. Comma-delimited list of the allowed HTTP request methods. | |
access.control.expose.headers | Sets the value of the Access-Control-Expose-Headers header. | |
access.control.max.age | Sets the value of the Access-Control-Max-Age header. Unit is seconds. | |
application.baseurl.override | Overrides the baseUrl that can be used to prefix links to local web resources. By default, the value is assembled from the protocol, hostname and port of the server instance Structr is running on | |
application.ftp.passiveportrange | FTP port range for pasv mode. Needed if Structr is run in a docker container, so the port mapping can be done correctly. | |
application.ftp.port | FTP port the Structr server will listen on (if FtpService is enabled) | |
application.host | The listen address of the Structr server. You can set this to your domain name if that name resolves to the IP of the server the instance is running on. | |
application.http.port | HTTP port the Structr server will listen on | |
application.https.enabled | Whether SSL is enabled | |
application.https.port | HTTPS port the Structr server will listen on (if SSL is enabled) | |
application.keystore.password | The password for the JKS keystore | |
application.keystore.path | The path to the JKS keystore containing the SSL certificate. Default value is ‘domain.key.keystore’ which fits with the default value for letsencrypt.domain.key.filename which is ‘domain.key’. | |
application.rest.path | Defines the URL path of the Structr REST server. Should not be changed because it is hard-coded in many parts of the application. | |
application.root.path | Root path of the application, e.g. in case Structr is being run behind a reverse proxy with additional path prefix in URI. If set, the value must start with a ‘/’ and have no trailing ‘/’. A valid value would be /xyz | |
application.session.clear.onshutdown | Clear all sessions on shutdown if set to true. | |
application.session.clear.onstartup | Clear all sessions on startup if set to true. | |
application.session.max.number | The maximum number of active sessions per user. Default is -1 (unlimited). | |
application.session.timeout | The session timeout for inactive HTTP sessions in seconds. Default is 1800. Values lower or equal than 0 indicate that sessions never time out. | |
application.ssh.port | SSH port the Structr server will listen on (if SSHService is enabled) | |
html.indentation | Whether the page source should be indented (beautified) or compacted. Note: Does not work for template/content nodes which contain raw HTML | |
httpservice.async | Whether the HttpServices uses asynchronous request handling. Disable this option if you encounter problems with HTTP responses. | |
httpservice.connection.ratelimit | Defines the rate limit of HTTP/2 frames per connection for the HTTP Service. | |
httpservice.cookies.httponly | Set HttpOnly to true for cookies. Please note that this will disable backend access! | |
httpservice.cookies.samesite | Sets the SameSite attribute for the JSESSIONID cookie. For SameSite=None the Secure flag must also be set, otherwise the cookie will be rejected by the browser! | |
httpservice.cookies.secure | Sets the secure flag for the JSESSIONID cookie. | |
httpservice.force.https | Enables redirecting HTTP requests from the configured HTTP port to the configured HTTPS port (only works if HTTPS is active). | |
httpservice.gzip.enabled | Use GZIP compression for HTTP transfers | |
httpservice.httpbasicauth.enabled | Enables HTTP Basic Auth support for pages and files | |
httpservice.sni.hostcheck | Enables SNI host check. | |
httpservice.sni.required | Enables strict SNI check for the http service. | |
httpservice.uricompliance | Configures the URI compliance for the Jetty server. This is simply passed down and is Jetty’s own specification. | Show detailsHide details |
json.indentation | Whether JSON output should be indented (beautified) or compacted | |
maintenance.application.ftp.port | FTP port the Structr server will listen on (if FtpService is enabled) in maintenance mode | |
maintenance.application.http.port | HTTP port the Structr server will listen on in maintenance mode | |
maintenance.application.https.port | HTTPS port the Structr server will listen on (if SSL is enabled) in maintenance mode | |
maintenance.application.ssh.port | SSH port the Structr server will listen on (if SSHService is enabled) in maintenance mode | |
maintenance.enabled | Enables maintenance mode where all ports can be changed to prevent users from accessing the application during maintenance. | |
maintenance.message | Text for default maintenance page (HTML is allowed) | |
maintenance.resource.path | The local folder for static resources served in maintenance mode. If no path is provided the a default maintenance page with customizable text is shown in maintenance mode. | |
ws.indentation | Prettyprints websocket responses if set to true. |
Markdown Rendering Hint: Children of Topic(Server Settings) not rendered because MarkdownTableWithDetailsFormatter prevents rendering of children.
Servlet Settings
| Name | Description | |
|---|---|---|
configservlet.enabled | Enables the config servlet (available under http(s)://<your-server>/structr/config) | |
configservlet.sessionfixation.protection | Regenerates the HTTP session ID on successful login to the ConfigServlet to prevent session fixation attacks. Disabled by default because it can cause issues with certain reverse proxy or load balancer configurations. | |
csvservlet.authenticator | FQCN of Authenticator class to use for CSV output. Do not change unless you know what you are doing. | |
csvservlet.class | Servlet class to use for CSV output. Do not change unless you know what you are doing. | |
csvservlet.defaultview | Default view to use when no view is given in the URL | |
csvservlet.frontendaccess | Unused | |
csvservlet.outputdepth | Maximum nesting depth of JSON output | |
csvservlet.path | URL pattern for CSV output. Do not change unless you know what you are doing. | |
csvservlet.resourceprovider | FQCN of resource provider class to use in the REST server. Do not change unless you know what you are doing. | |
csvservlet.user.autocreate | Unused | |
csvservlet.user.autologin | Unused | |
deploymentservlet.filegroup.name | For unix based file systems only. Adds the group ownership to the created deployment files. | |
flowservlet.defaultview | Default view to use when no view is given in the URL. | |
flowservlet.outputdepth | Maximum nesting depth of JSON output. | |
flowservlet.path | The URI under which requests are accepted by the servlet. Needs to include a wildcard at the end. | |
healthcheckservlet.whitelist | IP addresses in this list are allowed to access the health check endpoint at /structr/health. | |
histogramservlet.whitelist | IP addresses in this list are allowed to access the query histogram endpoint at /structr/histogram. | |
htmlservlet.authenticator | FQCN of authenticator class to use for HTTP requests. Do not change unless you know what you are doing. | |
htmlservlet.class | FQCN of servlet class to use for HTTP requests. Do not change unless you know what you are doing. | |
htmlservlet.customresponseheaders | List of custom response headers that will be added to every HTTP response | |
htmlservlet.defaultview | Not used for HtmlServlet | |
htmlservlet.outputdepth | Not used for HtmlServlet | |
htmlservlet.path | URL pattern for HTTP server. Do not change unless you know what you are doing. | |
htmlservlet.resolveproperties | Space-separated list of properties that are tried to find the ‘current’ object (restart of HttpService required). | |
htmlservlet.resourceprovider | FQCN of resource provider class to use in the HTTP server. Do not change unless you know what you are doing. | |
httpservice.servlets | Servlets that are listed in this configuration key will be available in the HttpService. Changes to this setting require a restart of the HttpService in the ‘Services’ tab. | |
jsonrestservlet.authenticator | FQCN of authenticator class to use in the REST server. Do not change unless you know what you are doing. | |
jsonrestservlet.class | FQCN of servlet class to use in the REST server. Do not change unless you know what you are doing. | |
jsonrestservlet.defaultview | Default view to use when no view is given in the URL | |
jsonrestservlet.outputdepth | Maximum nesting depth of JSON output | |
jsonrestservlet.path | URL pattern for REST server. Do not change unless you know what you are doing. | |
jsonrestservlet.resourceprovider | FQCN of resource provider class to use in the REST server. Do not change unless you know what you are doing. | |
jsonrestservlet.unknowninput.validation.mode | Controls how Structr reacts to unknown keys in JSON input. accept allows the unknown key to be written. ignore removes the key. reject rejects the complete request. The warn options behave identical but also log a warning. | |
jsonrestservlet.user.autocreate | Enable this to support user self registration | |
jsonrestservlet.user.autologin | Only works in conjunction with the jsonrestservlet.user.autocreate key. Will log in user after self registration. | |
jsonrestservlet.user.class | User class that is instantiated when new users are created via the servlet | |
loginservlet.defaultview | Default view to use when no view is given in the URL. | |
loginservlet.outputdepth | Maximum nesting depth of JSON output. | |
loginservlet.path | The URI under which requests are accepted by the servlet. Needs to include a wildcard at the end. | |
logoutservlet.defaultview | Default view to use when no view is given in the URL. | |
logoutservlet.outputdepth | Maximum nesting depth of JSON output. | |
logoutservlet.path | The URI under which requests are accepted by the servlet. Needs to include a wildcard at the end. | |
metricsservlet.whitelist | Comma-separated list of IP addresses that are allowed to access the health check endpoint at /structr/metrics. | |
openapiservlet.server.title | The main title of the OpenAPI server definition. | |
openapiservlet.server.version | The version number of the OpenAPI definition | |
pdfservlet.customresponseheaders | List of custom response headers that will be added to every HTTP response | |
pdfservlet.defaultview | Default view to use when no view is given in the URL. | |
pdfservlet.outputdepth | Maximum nesting depth of JSON output. | |
pdfservlet.path | The URI under which requests are accepted by the servlet. Needs to include a wildcard at the end. | |
pdfservlet.resolveproperties | Space-separated list of properties that are tried to find the ‘current’ object (restart of HttpService required). | |
tokenservlet.defaultview | Default view to use when no view is given in the URL. | |
tokenservlet.outputdepth | Maximum nesting depth of JSON output. | |
tokenservlet.path | The URI under which requests are accepted by the servlet. Needs to include a wildcard at the end. | |
uploadservlet.allowanonymousuploads | Allows anonymous users to upload files. | |
uploadservlet.authenticator | FQCN of authenticator class to use for file upload. Do not change unless you know what you are doing. | |
uploadservlet.class | FQCN of servlet class to use for file upload. Do not change unless you know what you are doing. | |
uploadservlet.defaultview | Default view to use when no view is given in the URL | |
uploadservlet.maxfilesize | Maximum allowed file size for single file uploads. Unit is Megabytes | |
uploadservlet.maxrequestsize | Maximum allowed request size for single file uploads. Unit is Megabytes | |
uploadservlet.outputdepth | Maximum nesting depth of JSON output | |
uploadservlet.path | URL pattern for file upload. Do not change unless you know what you are doing. | |
uploadservlet.resourceprovider | FQCN of resource provider class to use for file upload. Do not change unless you know what you are doing. | |
uploadservlet.user.autocreate | Unused | |
uploadservlet.user.autologin | Unused | |
websocketservlet.authenticator | FQCN of authenticator class to use for WebSockets. Do not change unless you know what you are doing. | |
websocketservlet.class | FQCN of servlet class to use for WebSockets. Do not change unless you know what you are doing. | |
websocketservlet.defaultview | Unused | |
websocketservlet.outputdepth | Maximum nesting depth of JSON output | |
websocketservlet.path | URL pattern for WebSockets. Do not change unless you know what you are doing. | |
websocketservlet.resourceprovider | FQCN of resource provider class to use with WebSockets. Do not change unless you know what you are doing. | |
websocketservlet.user.autocreate | Unused | |
websocketservlet.user.autologin | Unused |
Markdown Rendering Hint: Children of Topic(Servlet Settings) not rendered because MarkdownTableWithDetailsFormatter prevents rendering of children.
Mail Configuration Settings
| Name | Description | |
|---|---|---|
mail.attachmentbasepath | The | |
mail.maxemails | The number of mails which are checked | |
mail.updateinterval | The interval in which the mailbox is checked. Unit is milliseconds | |
smtp.host | Address of the SMTP server used to send e-mails | |
smtp.port | SMTP server port to use when sending e-mails | |
smtp.tls.enabled | Whether to use TLS when sending e-mails | |
smtp.tls.required | Whether TLS is required when sending e-mails |
Markdown Rendering Hint: Children of Topic(Mail Configuration Settings) not rendered because MarkdownTableWithDetailsFormatter prevents rendering of children.
Glossary
A
B
C
D
E
F
G
H
I
J
K
| Name | Parent |
|---|---|
| Kafka | APIs & Integrations / Message Brokers |
| KafkaClient Properties | APIs & Integrations / Message Brokers / Kafka |
| Keep Callbacks Simple | APIs & Integrations / Message Brokers / Best Practices |
| Keep Summaries Short | APIs & Integrations / OpenAPI / Best Practices |
| Key and Domain | Admin User Interface / Localization / Main Area |
| Key-Value Format | Expert Topics / Built-in Analytics / Designing Event Messages |
| Keycloak | Security / OAuth / Configuration / Provider Settings |
| Keywords | Building Applications / Dynamic Content / Template Expressions |
L
M
N
O
P
Q
| Name | Parent |
|---|---|
| Query Histogram | Operations / Monitoring |
| Query Operators | APIs & Integrations / MongoDB / Reading Data |
| Query Parameters | Expert Topics / Built-in Analytics / Querying Events |
| Querying Data | Admin User Interface / Graph |
| Querying Events | Expert Topics / Built-in Analytics |
| Querying PostgreSQL | APIs & Integrations / JDBC / Examples |
| Querying SQL Server | APIs & Integrations / JDBC / Examples |
| Querying the Index | Tutorials / Building A Spatial Index |
| queryString | References / System Keywords / General Keywords |
| Quick Reference | Admin User Interface / Overview |
| Quick Start | APIs & Integrations / Email |
| quot() | References / Built-in Functions / Mathematical Functions |
R
S
T
U
V
W
X
| Name | Parent |
|---|---|
| X-Forwarded-For | REST Interface / Request headers |
| X-Password | REST Interface / Request headers |
| X-Structr-Cluster-Node | REST Interface / Request headers |
| X-Structr-Edition | REST Interface / Request headers |
| X-StructrSessionToken | REST Interface / Request headers |
| X-User | REST Interface / Request headers |
| XML | Building Applications / Overview / Create or Import Data |
| xml() | References / Built-in Functions / Input Output Functions |
| xpath() | References / Built-in Functions / Input Output Functions |
Z
| Name | Parent |
|---|---|
| ZIP Archives | Admin User Interface / Files / Content Type Features |
| zoneddatetimeproperty.defaultformat | References / Settings / Advanced Settings |
Markdown Rendering Hint: GlossaryEntry(A) not rendered because no formatter registered for format markdown, mode overview and GlossaryEntry(A)
Markdown Rendering Hint: GlossaryEntry(B) not rendered because no formatter registered for format markdown, mode overview and GlossaryEntry(B)
Markdown Rendering Hint: GlossaryEntry(C) not rendered because no formatter registered for format markdown, mode overview and GlossaryEntry(C)
Markdown Rendering Hint: GlossaryEntry(D) not rendered because no formatter registered for format markdown, mode overview and GlossaryEntry(D)
Markdown Rendering Hint: GlossaryEntry(E) not rendered because no formatter registered for format markdown, mode overview and GlossaryEntry(E)
Markdown Rendering Hint: GlossaryEntry(F) not rendered because no formatter registered for format markdown, mode overview and GlossaryEntry(F)
Markdown Rendering Hint: GlossaryEntry(G) not rendered because no formatter registered for format markdown, mode overview and GlossaryEntry(G)
Markdown Rendering Hint: GlossaryEntry(H) not rendered because no formatter registered for format markdown, mode overview and GlossaryEntry(H)
Markdown Rendering Hint: GlossaryEntry(I) not rendered because no formatter registered for format markdown, mode overview and GlossaryEntry(I)
Markdown Rendering Hint: GlossaryEntry(J) not rendered because no formatter registered for format markdown, mode overview and GlossaryEntry(J)
Markdown Rendering Hint: GlossaryEntry(K) not rendered because no formatter registered for format markdown, mode overview and GlossaryEntry(K)
Markdown Rendering Hint: GlossaryEntry(L) not rendered because no formatter registered for format markdown, mode overview and GlossaryEntry(L)
Markdown Rendering Hint: GlossaryEntry(M) not rendered because no formatter registered for format markdown, mode overview and GlossaryEntry(M)
Markdown Rendering Hint: GlossaryEntry(N) not rendered because no formatter registered for format markdown, mode overview and GlossaryEntry(N)
Markdown Rendering Hint: GlossaryEntry(O) not rendered because no formatter registered for format markdown, mode overview and GlossaryEntry(O)
Markdown Rendering Hint: GlossaryEntry(P) not rendered because no formatter registered for format markdown, mode overview and GlossaryEntry(P)
Markdown Rendering Hint: GlossaryEntry(Q) not rendered because no formatter registered for format markdown, mode overview and GlossaryEntry(Q)
Markdown Rendering Hint: GlossaryEntry(R) not rendered because no formatter registered for format markdown, mode overview and GlossaryEntry(R)
Markdown Rendering Hint: GlossaryEntry(S) not rendered because no formatter registered for format markdown, mode overview and GlossaryEntry(S)
Markdown Rendering Hint: GlossaryEntry(T) not rendered because no formatter registered for format markdown, mode overview and GlossaryEntry(T)
Markdown Rendering Hint: GlossaryEntry(U) not rendered because no formatter registered for format markdown, mode overview and GlossaryEntry(U)
Markdown Rendering Hint: GlossaryEntry(V) not rendered because no formatter registered for format markdown, mode overview and GlossaryEntry(V)
Markdown Rendering Hint: GlossaryEntry(W) not rendered because no formatter registered for format markdown, mode overview and GlossaryEntry(W)
Markdown Rendering Hint: GlossaryEntry(X) not rendered because no formatter registered for format markdown, mode overview and GlossaryEntry(X)
Markdown Rendering Hint: GlossaryEntry(Y) not rendered because no formatter registered for format markdown, mode overview and GlossaryEntry(Y)
Markdown Rendering Hint: GlossaryEntry(Z) not rendered because no formatter registered for format markdown, mode overview and GlossaryEntry(Z)