Files
namaste/common/errorCatalog.php
gramps 373ebc8c93 Archive: Namaste PHP AMQP framework v1.0 (2017-2020)
952 days continuous production uptime, 40k+ tp/s single node.
Original corpo Bitbucket history not included — clean archive commit.
2026-04-05 09:49:30 -07:00

707 lines
50 KiB
PHP

<?php
/**
* Created by PhpStorm.
* User: mshallop
* Date: 6/7/17
* Time: 3:24 PM
*/
// error levels by string
const ERROR_DEBUG = 'debug'; // used for debug messages - will never be output outside of dev env
const ERROR_METRICS = 'timer'; // used for metrics logging only
const ERROR_DATA = 'data'; // user input or data validation error
const ERROR_INFO = 'info'; // general information, such as console messages
const ERROR_ERROR = 'error'; // general processing error
const ERROR_WARN = 'warning'; // pretty damn serious - service may not be stable
const ERROR_FATAL = 'fatal'; // damn serious - loss of user data or inability to continue processing
const ERROR_EVENT = 'event'; // event: reports timer data for top-level broker events
// error levels by value (for range searching)
const ERROR_EVENT_VAL = -1;
const ERROR_METRICS_VAL = 0;
//const ERROR_TRACE_VAL = 1;
const ERROR_DEBUG_VAL = 2;
const ERROR_DATA_VAL = 3;
const ERROR_INFO_VAL = 4;
const ERROR_ERROR_VAL = 5;
const ERROR_WARN_VAL = 6;
const ERROR_FATAL_VAL = 7;
// error constants
const ERROR_FILE = 'file';
const ERROR_LINE = 'line';
const ERROR_METHOD = 'method';
const ERROR_FUNCTION = 'function';
const ERROR_CLASS = 'class';
const ERROR_TYPE = 'type';
const ERROR_MESSAGE = 'message';
// error stubs
const ERROR_STUB_EXPECTING = ', expecting: ';
const ERROR_STUB_RECEIVED = ', received: ';
const ERROR_TDE = 'TEMPLATE DEFINITION ERROR: ';
const ERROR_STUB_SET_MEMCACHED = 'SET Memcached: ';
const ERROR_STUB_RESULT_CODE = 'SET Result Code: ';
const ERROR_STUB_NOTDEF = 'not/incorrectly defined';
const ERROR_EVENT_COUNT = '(%d/%d)';
const ERROR_ENV_INVALID = 'invalid environment: ';
const ERROR_ENV = 'environment errors for a service was encountered - check log files';
const ERROR_ENV_INVALID2 = 'this request requires %s environment';
const STUB_VALIDATED = ' validated';
const STUB_PROCESSED = '%d %s records processed';
const STUB_LOC = '%s:%s@%d'; // basename(__FILE__), __METHOD__, __LINE__
const STUB_JSON_ERROR = 'json error: ';
// config (class) errors
const CONFIG_FTL_JSON = 'CONFIG bootstrap failed to load JSON config file: ';
const CONFIG_FTL_INI = 'CONFIG bootstrap failed to load INI config file: ';
const CONFIG_FTL_XML = 'CONFIG bootstrap failed to load XML config file: ';
const CONFIG_UNK_ENV = 'CONFIG bootstrap loaded an unknown environment: ';
const CONFIG_DB_NOT_ENABLED = 'DB %s has not been enabled - cannot instantiate a template for this schema';
const CONFIG_DB_ENV_NOT_ENABLED = 'DB %s has not been enabled for the %s env - cannot instantiate class: %s';
// config XML errors
const CONFIG_XML_SERVICE_404 = 'could not locate %s (service) config for %s';
const CONFIG_XML_SERVICE_SETTING = 'XML setting for %s is incorrect: ';
const CONFIG_XML_SERVICE_VIOLATION = 'Production systems require these services be started on discrete instances: ';
const CONFIG_XML_ENV_UNK = 'Configured environment: %s is not currently supported';
const CONFIG_XML_DUP_VAR = 'Potential for a duplicated XML variable exists - check declaration for var: ';
const CONFIG_XML_LOAD = 'Could not load or find the configuration XML for Namaste';
// start-up errors
const ERROR_IPL_STOP_BROKERS = 'You should now manually stop all brokers';
const ERROR_IPL_BROKER_PING = 'Broker %s did not respond to ping event';
const ERROR_IPL_CONFIG = 'A configuration (XML) mismatch was detected between the %s and %s services.';
// 404 errors
const ERROR_CONFIG_404 = 'config class not loaded';
const ERROR_CONFIG_GENERIC = 'an error was encountered accessing the framework configuration - check logs';
const ERROR_CONFIG_TYPE = 'XML Param %s is mis-configured by type: expecting %s, received: ';
const ERROR_CONFIG_RESOURCE_404 = 'could not find/load config for resource: ';
const ERROR_CLASS_404 = 'unable to load class: ';
const ERROR_SERVICE_404 = 'service not available: ';
const ERROR_SERVICE_UNK = 'db service not defined';
const ERROR_SERVICE_REG = 'service registration for %s/%s has failed - check log files';
const ERROR_SERVICE_SOURCE_UNK = '%s is not a known log type';
const ERROR_LOCAL_SERVICE_404 = 'service is not available locally to this node - check configuration';
const ERROR_DATA_404 = 'data was not found - check log files';
const ERROR_DATA_KEY_404 = 'array is missing key: ';
const ERROR_DATA_META_404 = 'meta data was not found';
const ERROR_DATA_META_KEY_404 = 'required meta data field was not found: ';
const ERROR_DATA_METHOD_404 = 'method %s failed to post return data';
const ERROR_FILE_404 = 'file not found: ';
const ERROR_META_CLIENT_404 = 'meta payload missing client declaration';
const ERROR_META_CLIENT_UNK = 'Meta Client: %s is not a recognized or valid client name';
const ERROR_META_XML_CLIENT_404 = 'the meta client text was not found in the meta xml config';
const ERROR_LIB_404 = 'library not found: ';
const ERROR_KEY_404 = 'key is not a member of this class or cache map: ';
const ERROR_PARAM_404 = 'missing or empty parameter: ';
const ERROR_REQUEST_404 = ' request is empty';
const ERROR_RESOURCE_404 = 'resource not available: ';
const ERROR_RESOURCE_ENV_404 = 'could not obtain a resource: %s for env: %s';
const ERROR_RESOURCE_DDB_404 = 'DynamoDB, as a resource, cannot be instantiated';
const ERROR_REMOTE_RESOURCE_404 = 'The remote db resource for schema: %s was lost';
const ERROR_CLASS_SCHEMA_404 = 'class schema was not loaded';
const ERROR_TEMPLATE_DIR_404 = 'could not load template list';
const ERROR_TEMPLATE_FILE_404 = 'missing template file: ';
const ERROR_TEMPLATE_FILE_NOT_AUTH = 'template file %s cannot be instantiated by Partners';
const ERROR_CLIENT_AUTH_TOKEN_404 = 'missing partner auth token required for API calls';
const ERROR_CLIENT_AUTH_TOKEN_BAD = 'Client/Partner Auth token is not a valid token value';
const ERROR_CLIENT_AUTH_TOKEN_REJ = 'Client/Partner authentication failed - check auth token value';
const ERROR_CLIENT_AUTH_TOKEN_SEARCH = 'Unsuccessful search launched on SMAXAPI with token value: ';
const ERROR_CLIENT_AUTH_TOKEN_MISMATCH = 'partner API token does not allow access to the requested data';
const ERROR_TEMPLATE_BAD = 'event requires template: %s defined in meta data';
const ERROR_TEMPLATE_WRONG = 'template declaration is incorrect for the event';
const ERROR_TEMPLATE_MISSING_FIELD = 'template %s is missing declaration for: %s';
const ERROR_TEMPLATE_SERVICE_ENV = 'template %s is not supported for %s service';
const ERROR_SERVICES_UNDEF = 'services catalog has not been defined';
const ERROR_SERVICE_NOT_LOCAL = 'The service: %s is not configured as local to this instance';
const ERROR_SERVICE_NOT_ACTIVE = 'The service: %s is not configured as active';
const ERROR_EVENT_404 = 'unknown event: ';
const ERROR_STRING_404 = 'could not find %s in target string';
const ERROR_EVENT_GUID_404 = 'meta data is missing the event guid for class: ';
const ERROR_CLASS_EXT_404 = 'class extension is not defined';
const ERROR_BIN_FIELD_404 = 'binary field is empty or missing: ';
const ERROR_ARRAY_KEY_404 = 'array missing expected key: ';
const ERROR_ARRAY_KEY_UNK = 'array key: %s is not a member';
const ERROR_GRID_MISSING_TOKENS = 'data payload of %d records was missing %d tokens';
const ERROR_SUBC_404 = 'this class does not support sub-collections';
const ERROR_SUBC_RECORD_404 = 'unable to locate the sub-collection record by GUID: ';
const ERROR_SUBC_RECORD_NO_KEY = 'could not find a sub-collection record with a GUID key';
const ERROR_SUBC_RECORD_KEY_FOUND = 'subC record key (%s) still exists in the sub-collection';
const ERROR_SUBC_KEY_404 = 'subCollection key %s was not located in the subC-cacheMap';
const ERROR_SUBC_SCALAR = 'subCollections may only contain arrays - scalars are not allowed';
const ERROR_DATA_META_EG_404 = 'unable to stat the event GUID';
const ERROR_VIEW_404 = 'view requested: %s is not registered with class: %s';
const ERROR_SP_404 = 'stored procedure: %s is not registered with class: %s';
const ERROR_PF_404 = 'Protected fields are not initialized or in an incorrect format for processing this request';
// json errors
const ERROR_JSON_NONE = 'no errors';
const ERROR_JSON_DEPTH = 'max stack depth exceeded';
const ERROR_JSON_STATE_MISMATCH = 'underflow or the modes mismatch';
const ERROR_JSON_CTRL_CHAR = 'unexected control character found';
const ERROR_JSON_SYNTAX = 'syntax error, json malformed';
const ERROR_JSON_UTF8 = 'malformed UT8 chars, possible encoding error';
const ERROR_JSON_UNK = 'unknown json error';
const ERROR_JSON_DIR = 'direction (enc or dec) not specified';
const ERROR_JSON_TYPE = 'a value or type that cannot be json-decoded was given';
const ERROR_JSON_RECURSE = 'one or more recursive references in the string to be json-decoded';
const ERROR_JSON_INF_NAN = 'one or more NAN (undefined) or INF(inite) values in the string to be json-decoded';
const ERROR_JSON_API = 'json returned null or false but last-error reported as none';
const ERROR_JSON_OP = 'wrong json operation requested for the data type given';
const ERROR_JSON_RET_NULL = 'json operation returned null';
const ERROR_JSON_RET_FALSE = 'json operation returned false';
const ERROR_JSON_DECODE_FAIL = 'unable to decode json string';
const ERROR_JSON_ENCODE_FAIL = 'unable to convert to json format';
const ERROR_GZIP_COMPRESS_FAIL = 'failed to successfully compress data';
const ERROR_GZIP_UNCOMPRESS_FAIL = 'failed to successfully uncompress data';
const ERROR_B64_ENCODE_FAIL = 'unable to convert to base64 format';
const ERROR_B64_DECODE_FAIL = 'could not restore from b64 format';
const ERROR_ENCODING_FAIL_GENERIC = 'encoding operation has failed - check log files';
const ERROR_FAILED_TO_INSTANTIATE = 'failed to instantiate class: ';
const ERROR_REC_INSTANTIATION_FAIL = 'class %s failed to instantiate with GUID: ';
const ERROR_BROKER_CLIENT_INSTANTIATION = 'was not able to instantiate a %s broker client';
const ERROR_METHOD_FAILED = 'failed to successfully execute method %s for class %s - check logs';
const ERROR_FACTORY_LOAD = 'could not instantiate factory class - check logs';
const ERROR_FACTORY_LOAD_BROKER = 'could not instantiate factory class from broker event: ';
const ERROR_UNKNOWN_EVENT = 'do not know how to handle this event: ';
const ERROR_UNKNOWN = 'you should not be here';
const ERROR_NO_EVENT = 'no event was provided';
const ERROR_NO_RET_DATA = 'no return data payload built in the event handler';
const ERROR_NO_DATA = 'there is no data in the class object';
const ERROR_NO_CON_MSG = 'did not prepare a console message';
const ERROR_DATA_FIELD_NOT_MEMBER = 'this field is not a class member: ';
const ERROR_DATA_WH_INSERT_FAIL = 'the WH request returned an inconsistent count for records processed:';
const ERROR_DATA_RECORD_COUNT = 'expecting %d records but received %d';
const ERROR_DATA_REC_COUNT_UNDEF = 'query record count did not return a valid value';
const ERROR_DATA_INCONSISTENT_COUNT = 'count for class data is inconsistent';
const ERROR_CACHE_DATA_CHECKSUM = 'mismatch in checksum values for cached data object: ';
// nosql and sql errors
const ERROR_NOSQL_SELECT = 'could not select DB or Collection';
const ERROR_NOSQL_CREATE = 'create nosql record failed - check log files';
const ERROR_NOSQL_UPDATE = 'update record failed - check log files';
const ERROR_NOSQL_DELETE = 'delete query failed - check log files';
const ERROR_NOSQL_FETCH = 'fetch nosql record request failed - check log files';
const ERROR_SUBC_FETCH = 'sub-collection fetch failed - check log files';
const ERROR_NOSQL_SORT = 'sort request generated an exception: ';
const ERROR_NOSQL_SCHEMA = 'could not generate sequence value: ';
const ERROR_NOSQL_BD = 'batch delete request returned errors - check logs';
const ERROR_NOSQL_BU = 'batch update request returned errors - check logs';
const ERROR_NOSQL_BC = 'batch create request returned errors - check logs';
const ERROR_DATA_QUERY_BUILD = 'query failed to build';
const ERROR_REMOTE_QUERY_FAIL = 'remote query failed to execute - check logs';
const ERROR_DATA_HAVING_BUILD = 'having clause failed to build';
const ERROR_DATA_GROUP_ORDER_BY_BUILD = 'group/order by clause failed to build';
const ERROR_DATA_ORDER_BY_INVALID_VALUE = 'order-by value is not valid: ';
// ddb errors
const ERROR_DDB_RECORD_COUNT = 'ddb query returned %d records, expected %d';
const ERROR_DDB_EXP_EQ_Q1 = 'expecting an operand of EQ for a primary key search operand';
const ERROR_DDB_EXP_VAL_Q1 = 'expecting one (and only one) value for a primary key search';
const ERROR_DDB_NO_HASH_IDX = 'the attribute: %s submitted is not an indexed field';
const ERROR_DDB_CONNECT = 'failed to connect to DDB (DynamnoDB) resource';
const ERROR_DDB_QUERY = 'query failed: ';
const ERROR_DDB_INSTANTIATE = 'could not instantiate a DDB resource: ';
// mysql db errors
const ERROR_SQL_FTL_COLUMNS = 'failed to load table columns';
const ERROR_SQL_FTL_INDEXES = 'failed to load table indexes';
const ERROR_SQL_NOT_PREP_STMNT = 'this query should be executed as a prepared statement: ';
const ERROR_SQL_LOST_PREP_QUERY = 'prepared-statement query submitted to non-prepared query parser';
const ERROR_SQL_NOT_PREP_QUERY = 'expecting a prepared query statement -- this query is not one of those';
const ERROR_SQL_TEMPLATE_DBO_404 = 'SQL template is missing DB Objects declarations';
const ERROR_SQL_TEMPLATE_DBO_VER_404 = 'SQL Template %s missing version declaration within PDO_SQL block: ';
const ERROR_SQL_ENV_NOT_ENABLED = 'Env: %s is not enabled. Check your XML configuration under PDO section.';
// PDO Errors
const ERROR_PDO_ENABLED = 'PDO (mysql) support is not enabled in your current configuration';
const ERROR_PDO_CONNECT = 'failed to connect to PDO (mariaDB) resource';
const ERROR_PDO_EXCEPTION = 'query (%s) raised pdo exception';
const ERROR_PDO_PREPARE = 'query (%s) failed to build (prepare)';
const ERROR_PDO_PARSE = 'query did not properly parse: ';
const ERROR_PDO_PREPARE_2 = 'query (%s) failed build second time (prepare)';
const ERROR_PDO_INDEX_BUILD = 'failed to build class indexes or field list - check log files';
const ERROR_PDO_INDEX_DROP = 'failed to drop indexes for table: ';
const ERROR_PDO_QUERY_ELEMENT_DATA_TYPE = 'expecting array for %s -- received: %s';
const ERROR_PDO_CQ_QUERY = 'error executing pre-query for fetching query tokens';
const ERROR_PDO_SP_404 = 'could not locate stored-procedure for class %s by name: %s';
const ERROR_PDO_BIND = 'failed to bind param value: %s to query: %s, position: %d ';
const ERROR_PDO_EXEC = 'failed to execute prepared query: ';
const ERROR_PDO_FETCH = 'fetch of PDO record request failed - check logs';
const ERROR_FETCH = 'an error was raised during a record fetch - check logs';
const ERROR_PDO_INVALID_EVENT = 'event %s not supported for this class: %s';
const ERROR_PDO_RECONNECT = 'Namaste was forced to reconnect to the PDO resource';
const ERROR_PDO_RECONNECT_FAIL = 'Namaste was unable to reconnect to the named PDO resource';
const ERROR_PDO_DROPPED = 'cannot connect to the PDO database - check log files!';
const ERROR_PDO_QUERY = 'PDO query failed to execute: ';
const ERROR_PDO_QUERY_BUILD = 'PDO query failed to build or returned empty set';
const ERROR_PDO_SLAVE = 'PDO slave access is not configured (enabled) for access';
const ERROR_PDO_SLAVE_ERROR = 'PDO Slave cannot be used for this db event: ';
const ERROR_PDO_SLAVE_DROPPED = 'cannot connect to the PDO slave - check log files!';
const ERROR_PDO_COUNT_FETCH_FAIL = 'could not retrieve the query count for: ';
const ERROR_PDO_ROW_COUNT_ERROR = 'row count is incorrect: expecting %d row(s), received: %d instead';
const ERROR_PDO_FC_SQL_404 = 'missing the first-commit table sql for table: %s, for release: %s';
const ERROR_PDO_ST_FAIL = 'PDO start transaction command failed to execute';
const ERROR_PDO_ROLLBACK = 'Rollback has failed - perhaps a DDL statement was previously executed';
const ERROR_PDO_COMMIT = 'commit command has failed - check log files and PDO schema now';
const ERROR_PDO_DROP_404 = 'drop statement missing from template definition for class: ';
const ERROR_PDO_CREATE_404 = 'create statement missing from template definition for class: ';
const ERROR_PDO_UPDATE_404 = 'update statement missing from template definition for class: ';
const ERROR_PDO_UPDATE_FAIL = 'update statement in template %s has failed for release version %s';
const ERROR_PDO_FC_CREATE = 'first-commit sql failed to process';
const ERROR_PDO_DROP_DEV = 'could not drop the dev table';
const ERROR_PDO_CURRENT_TABLE = 'current table: ';
const ERROR_PDO_DROP_AI = 'could not drop AI attribute from pkey on table: ';
const ERROR_PDO_NO_TRANS = 'transaction has not been started - cannot execute query request';
const ERROR_USER_REG_FAIL = 'register new-user request has failed - check logs';
// mongo db errors
const ERROR_MONGO_CONNECT = 'failed to connect to mongo resource';
const ERROR_MONGO_EXCEPTION = 'mongo exception raised: ';
const ERROR_MONGO_EXCEPTION_CONNECTION = 'framework trapped a mongo connection exception';
const ERROR_MONGO_EXCEPTION_AUTH = 'framework trapped an authentication exception';
const ERROR_MONGO_EXCEPTION_INVALID_ARGS = 'framework trapped a mongo invalid-argument exception';
const ERROR_MONGO_EXCEPTION_BW_DECL = 'framework trapped a mongo error instantiating bulkWrite class';
const ERROR_MONGO_EXCEPTION_BW_INS = 'framework trapped a mongo error executing a bulkWrite insert()';
const ERROR_MONGO_EXCEPTION_BW_EXEC = 'framework trapped a mongo error executing a bulkWrite';
const ERROR_MONGO_EXCEPTION_RUNTIME = 'framework trapped a mongo runtime exception';
const ERROR_MONGO_EXCEPTION_RUNTIME_URI = 'framework trapped a mongo runtime exception: uri format';
const ERROR_MONGO_EXCEPTION_BULK_WRITE = 'framework trapped a mongo bulkWrite exception';
const ERROR_MONGO_EXCEPTION_EXCEPTION = 'framework trapped a generic mongo exception';
const ERROR_MONGO_NOT_ENABLED = 'mongo resource: %s not enabled - check config if this is unexpected';
const ERROR_MONGO_RESOURCE_INVALID = 'mongo resource: %s - must be either master or slave, or WH master, WH slave';
const ERROR_MONGO_WH_LEVEL_INVALID = 'mongo wh level: %s - is not a valid value';
const ERROR_MONGO_WH_LEVEL_404 = 'A warehouse level must be provided for a SEGUNDO resource request';
const ERROR_MONGO_LOCATION_INVALID = 'mongo location: %s - is now supported';
const ERROR_MONGO_LOCATION_DNE = 'mongo location: %s - has no configuration!';
const ERROR_MONGO_INSERT_COUNT = 'error in inserted record count: expecting: %d, reported: %d';
const ERROR_MONGO_TEMPLATE_INVALID = 'mongo template name is invalid: ';
const ERROR_MDB_IDX_FUZZY_NOT_IDX = 'index master array missing fuzzy index element: ';
const ERROR_MDB_DIAG_INDEXES = 'there is an error in the template index(es) definition - see log files';
const ERROR_MDB_INDEX_UNDECL = 'The %s index for %s has an undeclared column or label name: %s';
const ERROR_MDB_IDX_UNIQUE_NOT_IDX = 'index master array missing sparse index element: ';
const ERROR_MDB_IDX_SPARSE_NOT_IDX = 'index master array missing unique index element: ';
const ERROR_MDB_IDX_CONFLICT = 'index appears in both sparse and unique arrays: ';
const ERROR_MDB_IDX_MULTI_TYPE = 'A multiType index can only be applied to an array.subArray field using DOT notation, %s is not valid';
const ERROR_MDB_IDX_KEY_404 = 'Declared field: %s is not a defined member of the class';
const ERROR_MDB_IDX_LABEL_404 = 'Declared field: %s has not been defined as an index label';
const ERROR_MDB_SORT_404 = 'sort key, if specified, must be a non-empty associative array';
const ERROR_MDB_SORT_ARRAY_NOT = 'sort directive is not in array format';
const ERROR_MDB_SORT_DIR_404 = 'unknown sort direction directive: ';
const ERROR_MDB_FIELD_NOT_CACHED = 'requested field: %s not in the cacheMap for class: %s';
const ERROR_MDB_CACHE_NO_PKEYS = 'pkeys exempt from cache processing - value ignored';
const ERROR_MDB_CACHE_INTVAL = 'integer value encountered - ignored: sub-arrays use integers';
const ERROR_MDB_DBOP_GOOD_CACHE_BAD = 'db operation successful but unable to update cache';
const ERROR_MDB_NOT_ENABLED = 'mongoDB has not been enabled';
const ERROR_MDB_ENV_NOT_ENABLED = 'mongoDB template: %s requires %s environment which is not currently enabled';
const ERROR_MDB_SYS_EVENT_SAVE = 'saving system event has failed to successfully complete';
const ERROR_MDB_SYS_EVENT_UPDATE = 'updating system event has failed to successfully complete';
const ERROR_MDB_INVALID_RP = 'readPreference: %s is not a valid option';
const ERROR_MDB_FETCH_COUNT_FAIL = 'command to fetch query count failed with exception';
const ERROR_MDB_FETCH_FAIL = 'failed to fetch %s record using discriminant: ';
const ERROR_MDB_FETCH_COUNT_EXCESSIVE = 'query unexpectedly returned too many records';
const ERROR_MDB_UNK_ERROR = 'a database error has prevented successful processing of your request';
const ERROR_MDB_UNK_IDX_TYPE = 'this is an unknown index type: ';
const ERROR_MDB_QUERY_FAIL = '%s query failed to execute - check logs';
// failed event error messages
const MONGO_FAILED_EVENT_BAD_GUID = 'badGUID';
const MONGO_FAILED_EVENT_INSTANTIATE = 'failed to instantiate class: ';
const MONGO_FAILED_EVENT_INVALID_EVENT_DATA = 'bad data in the systemEvent record prevented processing';
const MONGO_FAILED_EVENT_SUF = 'failed to update the status of the session record';
const MONGO_FAILED_EVENT_EUF = 'failed to update the status of the system-event record';
const MONGO_FAILED_EVENT_SMF = 'failed to update the status of the sentMail record';
const MONGO_FAILED_EVENT_VUF = 'failed to update the status of the user record';
const MONGO_FAILED_EVENT_INSTANTIATE_DESC = 'class %s failed to instantiate on guid: %s';
const MONGO_FAILED_EVENT_BAD_GUID_DESC = 'guid (%s) is invalid';
const MONGO_FAILED_EVENT_SUF_DESC = 'failed to update the session status for record: ';
const MONGO_FAILED_EVENT_SMF_DESC = 'failed to update the sentMail status for record: ';
const MONGO_FAILED_EVENT_EUF_DESC = 'failed to update the system-event status for record: ';
const MONGO_FAILED_EVENT_VUF_DESC = 'failed to update the vaultUser status for record: ';
const MONGO_FAILED_EVENT_LHF_DESC = 'failed to update the lockHistory status for record: ';
const MONGO_FAILED_EVENT_CREATE = 'created new failed event: ';
const MONGO_FAILED_TOO_MANY_RECS = 'query returned too many records; expecting %d, received: ';
const MONGO_FAILED_EVENT_WRONG = 'expecting event: %s, received: %s instead';
// session errors
const ERROR_DATA_ARRAY_ARGV_EMPTY = 'did not receive expected argv param';
const ERROR_SESSION_ID_404 = 'session ID (token) is missing from data payload';
const ERROR_SESSION_EVENT_POST = 'session event post request failed';
// email errors
const ERROR_DIAG_EMAIL_MALFORMED = 'the email submitted did not pass validation';
const ERROR_EMAIL_DUPLICATE = 'the email: %s, is not available';
// cache errors
const ERROR_CACHE_MAP_404 = 'class has required cache-mapping but is missing the cacheMap';
const ERROR_CACHE_ADD_FAIL = 'could not cache element using key: ';
const ERROR_CACHE_FETCH_FAIL = 'could not fetch cache element using key: ';
const ERROR_CACHE_DATA_MALFORMED = 'expecting type %s for cache object: %s, received: %s';
const ERROR_CACHE_RESOURCE_404 = 'could not instantiate cache resource';
const ERROR_CACHE_MAP_FAIL = 'could not process cache mapping on: ';
const ERROR_CACHE_MAP_LOAD = 'failed to load cache map for: ';
const ERROR_CACHE_OP_FAIL_ON_KEY = 'INFO: cache operation (%d) could not complete because the key %s was not found';
const ERROR_CACHE_KEY_404 = 'cache key: %s was not found in the current cache-map for class: %s';
const ERROR_CACHE_MAP_KEY_404 = 'cacheMap key: %s was not found in the current cacheMap';
const ERROR_CACHE_CKSUM_DATA = 'checksum in the array does not match checksum parameter - did you pass the correct array?';
const ERROR_CACHE_CKSUM_MISMATCH = 'checksum passed: %s does not match calculated checksum: %s for data array passed';
const ERROR_CACHE_CKSUM_FAIL = 'checksum validation failed for class: %s, guid: %s';
const ERROR_CACHE_CKSUM_404 = 'checksum not found in cache payload for class: %s on guid: %s';
const ERROR_CACHE_ROUTE_FAIL = 'Could not build cache-map tasks on event: ';
const ERROR_CACHE_DIRECTION = '%s is not a valid cache direction';
const ERROR_CACHE_MAP_TYPE = 'expecting type data or query, not: ';
const ERROR_CACHE_GENERIC_FAIL = 'cache-mapping the data payload has failed - check log files';
const ERROR_CACHE_DELETE_FAIL = 'could not delete the following key from cache: ';
const ERROR_CACHE_SMASH_FAIL_USER = 'cache-clearance request failed processing - check log files';
const ERROR_CACHE_MASH_DATA = 'input data does not seem to be keyed by guids';
const ERROR_CACHE_MASH_FAIL = 'attempt to multi-set array of cache items failed - check log files';
const ERROR_CACHE_SMASH_FAIL_SYSTEM = 'cash smash failed on query: ';
// broker errors
const ERROR_BROKER_EXCEPTION = 'caught AMQP exception: ';
const ERROR_BROKER_EXCEPTION_TIMEOUT = 'caught AMQP timeout exception';
const ERROR_BROKER_EXCEPTION_RUNTIME = 'caught AMQP runtime exception';
const ERROR_BROKER_EVENT_UNKNOWN = 'broker has rejected the event as unknown: ';
const ERROR_BROKER_RESPONSE_BAD = 'broker response is malformed';
const ERROR_BROKER_REQUEST_BAD = 'broker request is malformed - maybe missing: ';
const ERROR_BROKER_REQUEST_FAILED = 'broker request failed to process successfully';
const ERROR_BROKER_TYPE_UNDEF = 'Broker type: %s is undefined';
const ERROR_BROKER_INTERNAL_CALL = 'internal request: %s to %s broker failed - check logs';
const ERROR_BROKER_CANCEL_EXCEPTION = 'caught AMQP Basic Cancel exception';
const ERROR_BROKER_IPL_FAIL = 'Not starting broker: %s because number of children is %s';
const ERROR_BROKER_REQUEST_404 = 'Broker request is empty';
const ERROR_BROKER_RESOURCE = 'could not create a broker resource';
const ERROR_BROKER_FETCH = 'remote fetch request has failed - check logs';
const ERROR_BROKER_QUEUE_DECLARE = 'failed to declare queue: ';
const ERROR_BROKER_CLIENT_DECLARE = 'failed to instantiate broker-client class: ';
const ERROR_BROKER_CLIENT_NOT_AUTH = 'client authorization error';
// general errors
const ERROR_CHECK_LOGS = 'check log files for more information';
const ERROR_GENERIC_CUSTOMER = 'a error has been raised preventing further processing - please contact support';
const ERROR_BAD_DATA_RECORD = 'problem with data record detected: ';
const ERROR_UNKNOWN_STATE = 'an unknown and unexpected state was returned: ';
const ERROR_REQ_META_KEY_404 = 'event (%s) requires, for this client (%s), the meta field (%s)';
const ERROR_REQ_FIELD_404 = 'missing expected field: %s from the request';
const ERROR_REQ_META_KEY_404_WB = 'API request requires the partner authorization token'; // wb = white box
const ERROR_EXCEPTION = 'the framework trapped an exception preventing further processing - check logs!';
const ERROR_TYPE_EXCEPTION = 'caught type (method invocation) exception - check log files';
const ERROR_TYPE_EXCEPTION_PARSE = 'caught parse exception: ';
const ERROR_DATA_BIN_CONV_FAIL = 'binary<->string conversion failed';
const ERROR_DATA_OBJ_2_ARY_FAIL = 'object -> array conversion failed';
const ERROR_DATA_INPUT_EMPTY = 'no data was received for param: ';
const ERROR_DATA_IMPORT = 'failed to import data array (%s) into class (%s) member';
const ERROR_DATA_ADD_FAIL = 'could not add data field %s to member: ';
const ERROR_DATA_INVALID_FORMAT = 'data is not in the expected format';
const ERROR_DATA_META_KEY_EMPTY = 'meta data field was found but is not set: ';
const ERROR_DATA_META_REJECTED = 'meta data field was rejected: ';
const ERROR_DATA_META_REJECTED_FOR_CLASS = 'meta data field %s was rejected for class: %s';
const ERROR_DATA_META_REQUIRED = 'meta data is required for this operation';
const ERROR_DATA_MISSING_ARRAY = 'missing data array: ';
const ERROR_DATA_ARRAY_FAIL = 'Array %s evaluated as empty when it should contain data';
const ERROR_DATA_RANGE = 'data value is out of range';
const ERROR_DATA_TYPE_MISMATCH = 'data type mismatch detected';
const ERROR_DATA_UNPACK = 'data did not unpack correctly';
const ERROR_DATA_VALIDATION_FIRST_PASS = 'data failed first-pass validation';
const ERROR_DATA_FORCE_CAST = 'data mismatch corrected: field %s received: %s, converted to %s';
const ERROR_DATA_TYPE_MISMATCH_DETAILS = 'field: %s is expecting type: %s but is type: %s - mismatch detected';
const ERROR_DATA_FIELD_DROPPED = 'data type mismatch caused field to be dropped: ';
const ERROR_DATA_FIELD_IGNORED = 'data field: %s was not bundled with the filed list';
const ERROR_DATA_OBJECT_EMPTY = 'expecting object for %s, but var has evaluated as null';
const ERROR_DATA_INVALID_CLASS_KEY = 'key %s is not valid member of class: %s';
const ERROR_DATA_INVALID_CLASS_MEMBER = 'field: %s is not a valid member of class: %s';
const ERROR_META_VALIDATION_SECOND_PASS = 'meta data failed second-pass validation';
const ERROR_EC_NA = 'static ERROR and static CONFIG objects are not available';
const ERROR_EMPTY_METHOD = 'method is devoid of code - utterly devoid';
const ERROR_FW_IPL = 'framework failed to launch - check logs';
const ERROR_GCO_NA = 'global configuration object is not available';
const ERROR_INVALID_TEMPLATE = 'template submitted is not valid: ';
const ERROR_TEMPLATE_INSTANTIATE = 'could not instantiate this template class: ';
const ERROR_TEMPLATE_EG_DECL_404 = 'template is missing the event-GUID field for class: ';
const ERROR_INVALID_GUID = 'this is not a valid GUID: ';
const ERROR_INVALID_NAMED_GUID = 'the guid (%s) for field: %s is invalid';
const ERROR_INVALID_IP = 'this is not a valid IP: ';
const ERROR_META_INVALID_FORMAT_ARRAY = 'meta data received not in array format';
const ERROR_META_FIELD_404 = 'expected key: %s was not included in meta payload';
const ERROR_SUBC_FIELDS_COUNT = 'subCollection Column count must match subCollection Value count';
const ERROR_OPEN_LOG_FILE = 'could not open the log file: ';
const ERROR_OPEN_XML_FILE = 'could not load XML file: ';
const ERROR_SAVE_XML_FILE = 'could not save XML file to: ';
const ERROR_ADMIN_NOT_ENABLED = 'The admin service is not enabled on this node - please check configuration';
const ERROR_REMOTE_NOT_ADMIN = 'request must originate from the admin service';
const ERROR_TERCERO_NOT_ENABLED = 'The tercero user service is not enabled on this node - check configuration';
const ERROR_LOCAL_NOT_ADMIN = 'request must execute on the admin server only';
const ERROR_RESOURCE_TYPE_UNDEF = 'Resource type: %s is not defined/supported';
const ERROR_RESOURCE_PDO_NOT_AVAIL = 'Resource: PDO is not available';
const ERROR_SSL_REQUIRED = 'Non-SSL connections to this service are not supported';
const ERROR_UNK_META_TYPE = 'the meta key type: %s has not been defined for key: %s';
const ERROR_UNK_STATIC_META_FIELD = 'the meta field %s defined as static, has no static definition';
const ERROR_FORK_FAILED = 'fork request failed in: ';
const ERROR_READ_DIR = 'could not open directory for reading: ';
const ERROR_FINE_PICKLE = 'an unknown, and completely unanticipated, error was raised - please contact support';
const ERROR_SOUR_PICKLE = 'an internal error has been raised preventing processing of this request - please contact support';
const ERROR_INVALID_QUEUE_NAME = 'invalid queue name: ';
const ERROR_INVALID_STATE = 'this is not a valid state: ';
const ERROR_INVALID_STATUS = 'expecting status %s, received %s';
const ERROR_SCHEMA_MISMATCH = 'wrong schema invoked for instantiation class: ';
const ERROR_SCHEMA_NOT_SUPPORTED = 'schema: %s is not supported in this method';
const ERROR_PKEY_TYPE = 'pkey type of %s is not supported';
const ERROR_PKEY_SWITCH = 'pkey for class: %s is %s - switching to %s';
const ERROR_PKEY_ID = 'could not derive the primary key from: ';
const ERROR_UNKNOWN_KEY = 'this key: %s, is not a member of the targeted array: %s';
const ERROR_DATA_INVALID_KEY = 'key is not a valid value: ';
const ERROR_SUB_C_INSERT_FAIL = 'could not add sub-collection record to class: %s - check logs';
const ERROR_SUB_C_V_NULL = 'sub-collection %s reduced to null on validation';
const ERROR_SUB_COLLECTION_NOT_MEMBER = 'sub-collection key is not a valid member: ';
const ERROR_SUB_COLLECTION_404 = 'sub-collection data was not found';
const ERROR_DATE_INVALID = 'The date submitted: %s, failed date validation';
const ERROR_DATA_ARRAY_ADD = 'failed to add an array of data into class object: ';
const ERROR_DATA_CREATE_PRE_EXISTS = 'record already exists; cannot create new record for: ';
const ERROR_DATA_ARRAY_EMPTY = 'no data was found in the array';
const ERROR_DATA_ARRAY_SLICE = 'could not extract elements from payload - payload restored to original size';
const ERROR_DATA_ARRAY_SLICE_INFO = 'Pre-Event query fetch reduced payload from %d to %d records';
const ERROR_DATA_ARRAY_COUNT = 'array count is not to spec - expecting %d elements for %s but received: %d';
const ERROR_DATA_ARRAY_COUNT_RANGE = 'array count is not within range of %d - %d';
const ERROR_DATA_ARRAY_COUNT_EXCESSIVE = 'received %s records when no more than %d records were expected';
const ERROR_DATA_ARRAY_NOT_ARRAY = 'expecting an array of records(array) for: ';
const ERROR_DATA_ARRAY_NOT_IDX = 'expecting an indexed array of: ';
const ERROR_DATA_PROCESSING = 'Processing return data payload has failed - check logs';
const ERROR_DATA_VALIDATION = 'Data has failed validation - stopping execution';
const ERROR_OPTION_INVALID = 'option: %s had invalid value: ';
const ERROR_THROWABLE_EXCEPTION = 'framework trapped a throwable';
const ERROR_UPDATES_BY_CLASS_DENIED = 'this class does not allow updating of records';
const ERROR_UPDATE_DATA_NOT_ALLOWED = 'this method: %s does not support an update-data payload';
const ERROR_UPDATE_DATA_INVALID = 'was unable to build the update-data portion of the payload';
const ERROR_UPDATE_PAYLOAD_EMPTY_POST_VALIDATION = 'Validation errors has resulted in an empty update array payload';
const ERROR_RECORD_LIMIT_EXCEEDED = 'request for number of records exceeds the query limit of: ';
const ERROR_GB_NOT_INDEXED_KEY = 'The group by key: %s is not and indexed key for the %s class';
const ERROR_GB_DISCRIMINANT = 'invalid group-by string: %s, expecting one of: %s';
const ERROR_RFD_CORE_FAIL = 'core::rfd() failedcheck log files';
const ERROR_SP_PARAM_PROC_FAIL = 'processing stored procedure parameters has failed due to param count';
const ERROR_RSR_APPSERVER = 'appServer is not a valid remote service destination'; // RSR: remote service request
const ERROR_RSR_UNSUPPORTED = 'known remote broker service %s not yet supported';
const ERROR_RSR_NOT_DEF = 'unknown remote broker service (%s) - check data template';
const ERROR_DATA_SLICE = 'slicing the input array resulted in an empty payload on iteration: ';
const ERROR_CLONE_QUERY = 'clone query failed';
const ERROR_PI_TAG_404 = 'missing partialFilterExpression key in query part of partial index';
const ERROR_PI_MALO = 'partial query is malformed - missing sub-array: check query part';
const ERROR_AT_SAVE = 'failed to register event with AT(1) daemon on admin service';
// query-builder errors
const ERROR_QB_ATTRIBUTE_404 = 'The attribute submitted: %s, does not appear to be a member of class: %s';
const ERROR_QB_INVALID_OPERAND = 'This is not an acceptable operand: ';
const ERROR_QB_UNKNOWN_OPERATOR = 'This is not a known operator: ' ;
const ERROR_QB_VALUE_COUNT = 'The value count is incorrect. For operand %s, the value could should be: %d';
const ERROR_QB_NOT_INDEXED_KEY = 'The search key requested (%s) is not in the (%s) class index list.';
const ERROR_QB_TYPE_MISMATCH = 'The search key requires type: %s, but the value (%s) submitted has type: %s';
const ERROR_QB_ROOT_OPERANDS = 'Have detected duplicate root level join operands (%s) - check query construction';
const ERROR_QB_ROOT_OPERAND_404 = 'Detected a missing (closing?) root-level operand - check query construction';
const ERROR_QB_PF_VIOL = 'protected field violation: %s is a protected field and cannot be changed';
// migration errors
const ERROR_MIGRATION_DATA = 'data payload missing or malformed';
const ERROR_MIGRATION_DATA_FIELD = 'missing required data field: ';
const ERROR_MIGRATION_DATA_FIELD_UNK = 'the field: %s is not in the source schema table';
const ERROR_MIGRATION_DATA_FIELD_TYPE = 'expecting type %s for %s but received: ';
const ERROR_MIGRATION_SCHEMA_COLLISION = 'you cannot migrate from one schema to the same schema';
const ERROR_MIGRATION_SCHEMA_UNKNOWN = 'schema: %s is not supported at this time';
const ERROR_MIGRATION_DEL_DEPENDENCY_FIELD = 'soft-delete-migration requires field: ';
const ERROR_MIGRATION_STATUS_KEY_404 = 'status key: %s not found in mysql source schema';
const ERROR_MIGRATION_STATUS_INV = 'this is not a valid status: ';
const ERROR_MIGRATION_WIDGET_ADD_DATA = 'was unable to add mapped data to the namaste class';
const ERROR_MIGRATION_MAPPING_FAILED = 'new data failed the migration map process';
const ERROR_MIGRATION_MAP_404 = 'template does not have a migration map defined';
const ERROR_MIGRATION_REPORT = 'error encountered generating migration report!';
const ERROR_MIGRATION_CONFIG = 'unable to load migration configuration';
// WF = web form MIG = migration
const ERROR_WF_MIG_URI_404 = 'Remote URI is required';
const ERROR_WF_MIG_PORT_404 = 'Remote Port number is required';
const ERROR_WF_MIG_REMOTE_MONGO_404 = 'A remote host (URI and port) **OR** a replSet (name and list) are required (but not both)';
const ERROR_WF_MIG_REMOTE_MYSQL_404 = 'A remote host (URI and port) **AND** and username and password are all required';
const ERROR_WF_MIG_LOGIN_MISSING = 'Login is required with password or authDB';
const ERROR_WF_MIG_PWD_MISSING = 'Password is required with login or authDB';
const ERROR_WF_MIG_ADB_MISSING = 'AuthDB is required with login or password';
const ERROR_WF_MIG_LOGIN_404 = 'Logins are required for production environments';
const ERROR_WF_MIG_PWD_404 = 'Passwords are required for production environments';
const ERROR_WF_MIG_ADB_404 = 'AuthDB is required for production environments';
const ERROR_WF_MIG_TABLE_404 = 'A remote table name is required';
const ERROR_WF_MIG_REPL_500 = 'Replication sets require BOTH the replSet name and the replSet members';
const ERROR_WF_MIG_REPL_BAD = 'Could not extract replication set names from input';
const ERROR_WF_MIG_REPL_URL = 'This: %s, is not a valid hostName:portNum combination';
const ERROR_WF_MIG_REPL_NUM = 'Must be at least three items listed in a replication set';
const ERROR_WF_MIG_DATE_BAD = 'The %s date: %s, is not a valid date - please correct using the date-picker';
const ERROR_WF_MIG_DB_404 = 'A database name is required';
const ERROR_WF_MIG_REMOTE_SCHEMA = 'Unable to derive the remote schema';
const ERROR_WF_MIG_REPLSET_404 = 'Missing replication-set name';
const ERROR_WF_MIG_BRK_CFG_404 = 'Migration broker does not appear to be configured/running';
const ERROR_WF_MIG_TEMPLATE_SCHEMA_404 = 'Template selected missing remote schema declaration';
// password, user and session processing errors
const ERROR_PASSWORD_HASH_GENERATION_FAILED = 'failed to generate password hash';
const ERROR_PARTNER_API_KEY_MISMATCH = 'An API Key mismatch has prevented record access';
const ERROR_PARTNER_USER_NOT_MEMBER = 'The user requested does not exist or is not an account member';
const ERROR_PARTNER_USER_DATA = 'There is an issue with the user account - contact support';
const ERROR_PARTNER_USER_NOT_REGISTERED = 'The user partner account with key: %s does not have a Partner token';
const ERROR_PARTNER_USER_HAS_BAD_GUID = 'The user account has a bad guid: %s for %s';
const ERROR_PASSWORD_MISMATCH = 'The login or user password is incorrect';
// migration HTML webApp errors
const ERROR_HTML_MIG_FORM_ERROR = 'There is an unrecoverable error in the HTML form: ';
// warehousing errors
const ERROR_WH_CLASS_NOT_SUPPORTED = 'The data class requested, %s, does not support warehousing';
const ERROR_WH_REMOTE_SOURCE_NOT_AUTH = 'The data class requested: %s, does not support remote WH sources';
const ERROR_WH_CRON_NOT_SUPPORTED = 'The data class requested: %s, does not support automated WH requests';
const ERROR_WH_DYNAMIC_NOT_SUPPORTED = 'The data class requested: %s, does not support ad-hoc WH requests';
const ERROR_WH_CUSTOM_QUERY_NOT_AUTH = 'The data class requested: %s, does not allow custom WH queries';
const ERROR_WH_FILTER_VAL_404 = 'The WH request is missing the required query filter value';
const ERROR_WH_REMOTE_SOURCE_404 = 'The WH request is missing the remote source table name';
const ERROR_WH_REMOTE_MIG_CFG_404 = 'The WH request requires migration URI endpoint configuration (XML) data';
const ERROR_WH_REMOTE_MYSQL_CFG_404 = 'The WH request requires migration (XML) config for a mysql endpoint';
const ERROR_WH_REMOTE_MONGO_CFG_404 = 'The WH request requires migration (XML) config for a mongo endpoint';
const ERROR_WH_SCHEMA_NOT_SUPPORTED = 'Warehousing is not supported for the schema: ';
const ERROR_WH_MISSING_WIDGET = 'Lost the destination template widget';
const ERROR_WH_MISSING_WH_OBJ = 'Lost the warehouse meta widget';
const ERROR_WH_MISSING_SETTINGS = 'Lost the template warehouse destination settings';
const ERROR_WH_MISSING_BROKER_DATA = 'Lost the broker-request data payload';
const ERROR_WH_MISSING_META_DATA = 'Lost the broker request meta payload';
const ERROR_WH_MISSING_WHERE_CLAUSE = 'lost the pre-built and pre-validated where clause from the WH object';
const ERROR_WH_NOT_ENABLED = 'warehousing has not been enabled';
const ERROR_WH_DEL_REMOTE_RECS = 'unable to delete records from source that were just warehoused';
// unit testing errors
const ERROR_UT_EXPECTING_TRUE = 'expecting true response for: ';
const ERROR_UT_EXPECTING_FALSE = 'expecting a false response for: ';
const ERROR_UT_BROKER_STATUS = 'broker request reported false status';
const ERROR_UT_EXPECTING_NON_ZERO_FP = 'expecting non-zero result but got: %2.6f';
const ERROR_UT_EXPECTING_NON_ZERO_INT = 'expecting non-zero int - got: ';
const ERROR_UT_STRING_MISMATCH = 'expected %s but received %s';
const ERROR_UT_CHECKSUM = 'checksum comparison failed';
const ERROR_UT_QUERY_RETURNED_ZERO = 'query returned zero records - this may not be an error';
const ERROR_UT_STRING_MATCH = 'strings: %s and %s matched when they should be different';
const ERROR_UT_INTEGER_MISMATCH = 'expected %d but received %d for: ';
const ERROR_UT_EXCESSIVE_COUNT = 'expected count return less than %d but received %d';
const ERROR_UT_VALS_NOT_EQUAL = 'test failed: %s <> %s';
const ERROR_UT_GENERIC_FAIL = 'unit test failed: ';
const ERROR_UT_SAME_FIELD_COMPARE_FAIL = 'field: %s has different values across compared structures';
const ERROR_UT_WIDGET_404 = 'widget appears to have been lost as it has failed the is-object test';
const ERROR_UT_FIELD_404 = 'missing field: %s from %s';
const ERROR_UT_FIELD_VALUE = 'field %s: has incorrect value or value type';
const ERROR_UT_BROKER_EVENT_FAIL = 'Broker event: %s has failed with state: %s';
const ERROR_UT_CACHE_FETCH_FAIL = 'failed to retrieve record from cache';
const ERROR_UT_EMPTY_RESULTS = 'results return data is empty when it should not be';
const ERROR_UT_LOST_VARIABLE = 'stored variable has been lost: ';
const ERROR_UT_NULL_VALUE = 'received null value for: ';
const ERROR_UT_NOT_FOUND = 'fetch query returned no records for testing';
// audit/journaling errors
const ERROR_AUDIT_GENERIC_FAIL = 'Audit request has failed to complete successfully - check log files';
const ERROR_AUDIT_FAIL = 'Audit record creation has failed - event messages to follow';
const ERROR_AUDIT_FAILED = 'Audit record created has failed with NO error messages. Well done.';
const ERROR_JOURNAL_GENERIC_FAIL = 'Journal request has failed to complete successfully - check log files';
const ERROR_JOURNAL_BUILD_FAIL = 'Was not able to build the journal record data -- check log files';
const ERROR_AUDIT_DATA_404 = 'Missing %s data from %s payload';
const ERROR_AUDIT_COUNT = 'journal data record count mismatch detected';
const ERROR_AUDIT_REC_LIST = 'failed to generate a list of records as they existed prior to the modification query';
const ERROR_AUDIT_SOURCE = 'audit data must come from either data or auditData members';
const ERROR_AUDIT_NO_SOURCE = 'source data for audit (record GUIDs) is empty';
const ERROR_JOURNAL_NOT_SUPPORTED = 'Journaling is not enabled for this class';
const ERROR_JOURNAL_REQ_BOMBED = 'Journaling recovery has failed - check log files';
const ERROR_AUDIT_CREATE = 'Failed to create the audit record - check log files';
const ERROR_SYSLOG = 'a call to syslog has failed';
// generic fail messages
const FAIL_EVENT = 'broker event failed: ';
const FAIL_CONNECT = 'unable to establish connection to: ';
const FAIL_CACHE_MAP_LOAD = 'unable to load the cacheMap - check logs';
const FAIL_CACHE_MAP_CACHE = 'unable to cache the cacheMap (set() failed)';
const FAIL_RESOURCE_LOAD = 'failed loading resource: %s for location: %s';
// notices -- not errors, but maybe of interest
const NOTICE_META_DISCARD = 'discarding meta field: %s as an unauthorized member';
// info error messages
const INFO_SLOW_QUERY_TIMERS = 'query timers: %s';
const INFO_SLOW_QUERY_TIMER_WARNINGS = 'query timer warnings: %s';
const INFO_QUERY_TIMER_VALUES = ' -- threshold: %d ms';
const INFO_DATA_RESET = 'resetting the value for %s to: ';
const INFO_GENERIC_DB_ERROR = 'a database error was raised';
const INFO_EXPOSED_FIELD_PROTECTION = 'field %s dropped because not a member of exposedFields list';
const INFO_INSERTED_FIELD = 'field %s inserted into record as null value';
const INFO_RECORD_LIMIT_OVERRIDE = 'record limit of %d records over-ridden by migration request to: %d records';
const INFO_QUERY_RETURNED_NO_DATA = 'query executed successfully but no records were returned';
const INFO_MIGRATION_RECORDS_MOVED = 'number of records moved (%s -> %s): %d/%d';
const INFO_TEMPLATE_CLASS_DROPPED = 'dropped the template sub-class during instantiation of the parent class';
const INFO_WH_NO_QUALIFIED_DATA = 'there are no records in the source table that satisfy the wh query';
const INFO_BROKERS_IPL = 'Starting Namaste brokers and re-routing all further output to logfile: ';
const INFO_TRX_COMMIT = 'transaction completed and committed successfully';
const INFO_TRX_ROLLBACK = 'transaction has failed and roll-back has been issued';
const INFO_PDO_DEPLOY = 'installing %s: %s';
const INFO_PDO_INDEXES_DROPPED = 'indexes dropped for table: ';
const INFO_PDO_AI_ATTR_DROPPED = 'dropped autoincrement attribute from pkey';
const INFO_PDO_NO_DEPLOY = 'Template: %s has not declared an object of type: %s';
const INFO_PDO_BAD_DEPLOY = 'Failed to install %s named: %s for %s';
const INFO_TEST_MESSAGE = 'This is a test message containing no useful content.';
const INFO_IPL_REST = 'Pausing to allow broker settling';
const INFO_IPL_BROKER_SUCCESS = '%s broker client pinged successfully';
const INFO_IPL_APPSERVER_SUCCESS = 'appserver service has successfully started!';
const INFO_IPL_SEGUNDO_SUCCESS = 'segundo service has successfully started!';
const INFO_IPL_TERCERO_SUCCESS = 'tercero service has successfully started!';
const INFO_IPL_ADMIN_SUCCESS = 'admin service has successfully started!';
const INFO_BROKER_REQ_COUNT = 'request-count limit reached - broker child cycling';
const INFO_BROKER_QUEUE_ESTABLISHED = '%s established as pid: %d for %d requests';
const INFO_BROKER_PARENT_STARTED = '%d instances of %s started';
const INFO_TEMPLATE_PROCESSING_STARTED = 'begin processing %s templates';
const INFO_PROCESSING = 'Processing: ';
const INFO_SERVICE_NOT_ENABLED = '%s service is not enabled in the current env';
const INFO_SHOULD_NOT_SEE_THIS = 'you should not ever see this error message';
const INFO_MIGRATION_XML_OVERRIDE = 'Migration XML (source) was overridden by web request';
const INFO_NO_DATA_IN_DATA = 'Data payload currently contains no records';
const INFO_NO_ERRORS = 'No errors generated in diagnostics.';
const INFO_PDO_SLAVE_SWITCH = 'Cannot use slave - switching to master';
const INFO_RECORD_NOT_FOUND = 'Query executed successfully, but no record(s) returned by query';
const INFO_EVENT_GUID_REPLACED = 'Event guid was replaced with %s in %s@%d';
const INFO_CKP_CONFIG_LOADED = 'resourceManager successfully loaded config file';
const INFO_DB_DUP_ENV_USER = 'bypass user create because %s already exists for env: ';
const INFO_NO_DIR = 'could not create file - perhaps a parent directory needs to be created?';
const INFO_PARTIAL_INDEX = 'partialIndex';
const INFO_SCHEMA = 'current class schema: ';
// checkpoint messages
const INFO_CKP_REACHED = 'Checkpoint %s@%d reached: %s';
const INFO_LOC = '[%s@%d]-> ';
// success messages
const SUCCESS_DB_DELETE = 'record successfully deleted: ';
const SUCCESS_DB_RECORD_CROSS_DELETED = '%s record based on %s record: %s, was successfully deleted';
const SUCCESS_DB_RECORD_DELETED = '%s record was successfully deleted for user guid: %s';
const SUCCESS_DB_RECORD_RESTORED = 'The requested record was successfully restored';
const SUCCESS_DB_UPDATE_COUNT = 'number of records successfully updated: ';
const SUCCESS_DB_UPSERT_COUNT = 'number of records successfully upserted: ';
const SUCCESS_TLS_CONNECT = 'successful TLS connection established to: ';
const SUCCESS_CONNECT = 'successful connection established to: ';
const SUCCESS_PIN_VALID = 'pin is valid - user has been activated';
const SUCCESS_PING = 'successfully pinged broker: ';
const SUCCESS_CONNECTED = 'successful test connection to resource: ';
const SUCCESS_SHUTDOWN = 'shutdown completed gracefully';
const SUCCESS_EVENT = 'broker event successful: ';
const SUCCESS_EVENT_404 = 'broker event processed but no data returned';
const SUCCESS_NOT_SUPPORTED = 'broker event successful but action not supported by this data class';
const SUCCESS_METHOD = 'method successful: ';
const SUCCESS_LOCK_COUNT_CLEARED = 'lock counters cleared by successful login';
const SUCCESS_RECORD_ADDED = '%s successfully added!';
const SUCCESS_ALL_SERVICES = 'all services are available';
const SUCCESS_CONNECT_CACHE = 'successfully connected and registered to cache service';
const SUCCESS_NO_ERRORS_FOUND = 'no errors were found';
const SUCCESS_SUBC_RECORD_DELETED = 'sub-collection records with guid: %s was successfully deleted';
const SUCCESS_CACHE_LOG_DUMP = 'published cached-log of %d messages to admin service';
const SUCCESS_PDO_TEMPLATE_PROCESSING = 'successfully processed all PDO templates for release version: ';
const SUCCESS_IPL_ENV_CHECK = 'Service environments successfully cross-checked.';
const SUCCESS_AUDIT_EVENT = 'Audit event successfully recorded';
const SUCCESS_CACHE_MAP = 'cacheMap successfully cached';
const SUCCESS_CACHE_SMASH = 'records successfully removed from cache';
const SUCCESS_PUBLISHED = 'successfully published log message using route: ';