Monitoring view - record sync status provides total # of synced record types and # of record
types whose latest sync status was completed, failed or warning.
Monitoring view - unreferenced objects Clicking this navigates you to the unreferenced
objects view, only visible from within an application
Relational databases - triggers Procedural code that is automatically executed in response to
certain events on a particular table or view, mostly used for maintaining the integrity of the info
on the DB
Relational databases - auditing guidance DB level audit should be implemented with
triggers, use ON INSERT and ON UPDATE triggers to make sure every modification makes it to
the audit table
Recommended to make a separate audit table per table you are auditing
if DB level audit is not required, it can be implemented within an app without relying on triggers
Relational databases - views Views are virtual tables. They are a structure and contain no
data. Their purpose is to allow a user to see a subset of the actual data, which (for example)
could be used to allow other users to see data without access to PII
Relational databases - views - anti patterns Avoid nested queries (subqueries) and joining on
views. If these need to be used ensure they are tested with production
,Relational databases - stored procedure A set of SQL statements with an assigned name
which are stored in a RDBM group so it can be reused and shared by programs.
Database load generation tool can be used to load data into any DB on Appian.
Relational databases - volume testing Software testing performed to test the system under a
huge data load
Relational databases - load testing Software testing performed to test the system under real
life data load
Relational databases - performance testing Process of determining the system's
performance that includes speed, reliability under varying load
Relational databases - index testing Indexes are used to quickly locate data without having
to search every row in a database, providing the basis for random lookups and efficient access
of ordered records
Relational databases - volume testing guidance At the beginning, establish volume estimates
for all the key entities in the system, load the DB with 3X the yearly estimates for testing
purposes
- DB load generation tool can be used
- Execute stored procedures and triggers with 2X the peak load and 3X yearly volume estimates
,Relational databases - indexing guidance Create indexes in your DB for the following:
- Foreign Key columns
- Columns used in join conditions in a view or query
Columns used for sorting
- Columns used by Appian queries for filtering
- CAUTION: too many indexes on a table slow down writes to a table (good rule is not to exceed
5 indexes per table)
Relational databases - anti patterns - Paging batch size of -1 should only be used in specific
instances, like charts
- Query memory limit will protect you, but end users may receive an error message
- Query entities should sort on the primary key by specifying the sortInfo on every queryEntity
- Avoid the use of "starts with" and "ends with" operators in queryEntity as these will result in
wild card searches
- IN statements with 50+ values should be avoided
HTTP methods: HEAD Execute the Web API for the GET method for the Endpoint and return
the result minus the response body
HTTP Methods - OPTIONS Returns a list of methods for which APIs exist for a given endpoint
, HTTP Methods - POST, PUT, DELETE Modify data OR query data
HTTP Methods - GET Query data
Multiple Node Instances (MNI) for sub-processes Each executed sub-process will start in the
same execution engine as the parent
Views Can be mapped to an Appian CDT
HTTP Methods - DELETE Valid HTTP method for creating a web API
startIndex property of pagingInfo() is greater than the total number of items in the list the
function is used for, and batchSize is not defined The data returned is a null array
JPA Annotations Define all relational mappings for Appian CDT variables
3 Authentication methods for setting up a connected system API Key
OAuth 2.0
Basic
Site security Each page can define its own visibility rule