User Tools
Writing /app/www/public/data/meta/development/applications/footprints/domains.meta failed
development:applications:footprints:domains
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| development:applications:footprints:domains [2018/02/23 11:49] – adowling | development:applications:footprints:domains [2021/06/25 10:09] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Footprints Component Domains ====== | ||
| + | |||
| + | ==== DatabaseConfig ==== | ||
| + | The purpose of this domain is to store database configuration parameters for connecting to the ticketer database, in order to perform the form query and parent look up used in the application logic. | ||
| + | < | ||
| + | String hostIp - This is the host ip address of name of the database server host you are connecting to. | ||
| + | String databaseName - The name of the database you are querying. in this case the ticketer is being queried. | ||
| + | String user - The database user authentication. | ||
| + | String password - The database password authentication. | ||
| + | boolean activeConfig = true - Whether this is the active configuration currently. | ||
| + | | ||
| + | Sample Result: | ||
| + | +----+---------+--------------------------------------------------------------------+---------------+----------+------+---------------+ | ||
| + | | id | version | host_ip | ||
| + | +----+---------+--------------------------------------------------------------------+---------------+----------+------+---------------+ | ||
| + | | 1 | 0 | atc-rds-instance-master-1.c6hdidhzxqy5.us-east-1.rds.amazonaws.com | | ozzrules | root | ticketer | ||
| + | +----+---------+--------------------------------------------------------------------+---------------+----------+------+---------------+ | ||
| + | | ||
| + | </ | ||
| + | |||
| + | ==== EmailBody ==== | ||
| + | The purpose of this domain is to store as a record the email data(subject and body) of all emails that are sent out via this process to the American Tower email address. | ||
| + | < | ||
| + | String subject = "This is the subject" | ||
| + | String body = "This is the body" - Default value - This field stores the plain text body of the emails to be sent out. | ||
| + | |||
| + | static constraints = { | ||
| + | subject nullable: false, maxSize: | ||
| + | body nullable: false, maxSize: | ||
| + | } | ||
| + | | ||
| + | Sample Result: | ||
| + | |||
| + | id: 46 | ||
| + | version: 0 | ||
| + | body: errigalTicketId=503569 | ||
| + | Site Number=Site id not available on ticket. Please contact Errigal Support. | ||
| + | Impact Type=DAS Priority 4 | ||
| + | SLA=Priority 4 | ||
| + | ETA Instructions=hello | ||
| + | subject: test ticket | ||
| + | </ | ||
| + | |||
| + | ==== EmailConfig ==== | ||
| + | The purpose of this domain is to store the smtp and imap email account configuration details. This domain has many mail properties which are essentially key value pairs for storing the smtp / imap mail properties needed for establishing a connection. | ||
| + | |||
| + | < | ||
| + | String name - The name of the config, used to describe what the email config is for e.g. IMAP. | ||
| + | String emailFrom - The emailFrom field is the email address that will display in the from field on all emails received by ATC in this process. | ||
| + | String emailTo - The emailTo field is the email address which the email will send to within this process. | ||
| + | String userName - This is the username used to login to the email account being used for sending and receiving the emails. This is important for JavaMail authentication. | ||
| + | String password - This is the password used to login to the email account being used for sending and receiving the emails. This is important for JavaMail authentication. | ||
| + | boolean activeSMTPConfig = false - This identifies the active SMTP email configuration for use with sending out the dispatch emails to ATC. | ||
| + | boolean activeIMAPConfig = false // This identifies the active IMAP email configuration for use with polling the inbox for emails received back from ATC containing the | ||
| + | ticket update. | ||
| + | |||
| + | static constraints = { | ||
| + | name nullable: false, unique: true | ||
| + | password password: true | ||
| + | } | ||
| + | |||
| + | static hasMany = [mailProps: MailProperties] | ||
| + | | ||
| + | Sample Result: | ||
| + | +----+---------+---------------------------+---------------------------------+----------------+------------------+---------------------------+------------------------------+------------------+ | ||
| + | | id | version | email_from | ||
| + | +----+---------+---------------------------+---------------------------------+----------------+------------------+---------------------------+------------------------------+------------------+ | ||
| + | | 1 | 0 | ticketing@atcwatchdog.com | Footprints Active Configuration | # | ||
| + | | 2 | 0 | n/a | Footprints IMAP Configuration | ||
| + | +----+---------+---------------------------+---------------------------------+----------------+------------------+---------------------------+------------------------------+------------------+ | ||
| + | |||
| + | </ | ||
| + | |||
| + | ==== MailProperties ==== | ||
| + | The purpose of this domain is to store the mail properties for both imap and smtp configurations which are needed by JavaMail in order to establish a connection to the email server in question. These are stored as key value pairs and have a one to many relationship with the EmailConfig domain as previously mentioned The join table generated by grails for storing this relationship is as follows: **email_config_mail_properties**. | ||
| + | |||
| + | < | ||
| + | String propertyName - The name of the javax.mail property being used. | ||
| + | String propertyValue - The value of the javax.mail property being used. | ||
| + | |||
| + | static constraints = { | ||
| + | propertyName(unique: | ||
| + | } | ||
| + | | ||
| + | Sample Result: | ||
| + | +----+---------+-------------------------------+---------------------------------+ | ||
| + | | id | version | property_name | ||
| + | +----+---------+-------------------------------+---------------------------------+ | ||
| + | | 1 | 0 | mail.smtp.host | ||
| + | | 2 | 0 | mail.smtp.socketFactory.port | ||
| + | | 3 | 0 | mail.smtp.socketFactory.class | javax.net.ssl.SSLSocketFactory | ||
| + | | 4 | 0 | mail.smtp.auth | ||
| + | | 5 | 0 | mail.smtp.port | ||
| + | | 6 | 0 | mail.imap.host | ||
| + | | 7 | 0 | mail.imap.port | ||
| + | | 8 | 0 | mail.imap.pastNMessages | ||
| + | +----+---------+-------------------------------+---------------------------------+ | ||
| + | |||
| + | </ | ||
| + | |||
| + | ==== FormDetails ==== | ||
| + | The purpose of this domain is to store the form details for the form used with to populate rabbitmq update being sent back to the Ticketer. In this scenario only one form gets updated, which is the Field Technician Dispatch Form. | ||
| + | |||
| + | < | ||
| + | String name - The form name to be updated via rabbitmq | ||
| + | boolean activeForm - Whether this is the current form in use for the update process. | ||
| + | String user - The user who will appear in the ticketer database as being the account that updated the form. | ||
| + | |||
| + | static constraints = { | ||
| + | name unique: true | ||
| + | } | ||
| + | | ||
| + | Sample Result: | ||
| + | +----+---------+--------------------------------+-------+-------------+ | ||
| + | | id | version | name | user | active_form | | ||
| + | +----+---------+--------------------------------+-------+-------------+ | ||
| + | | 1 | 0 | Field Technician Dispatch Form | admin | | | ||
| + | +----+---------+--------------------------------+-------+-------------+ | ||
| + | </ | ||
| + | |||
| + | ==== IMAPSearchKey ==== | ||
| + | The purpose of this domain is to store the search keys used for parsing the email updates sent back to our inbox by ATC. These keys are agreed values with ATC which allow us to update a specific ticket with a global ticket number in the dispatch form. There is validation around the results parsed from these keys to ensure no bad data makes it back into the database. | ||
| + | |||
| + | < | ||
| + | String keyName - The name of the key that we are parsing the the email poll results using IMAP. | ||
| + | | ||
| + | static constraints = { | ||
| + | | ||
| + | } | ||
| + | | ||
| + | Sample Result: | ||
| + | +----+---------+------------------------------+ | ||
| + | | id | version | key_name | ||
| + | +----+---------+------------------------------+ | ||
| + | | 1 | 0 | errigalTicketId | ||
| + | | 2 | 0 | footprintsGlobalTicketNumber | | ||
| + | +----+---------+------------------------------+ | ||
| + | </ | ||
| + | |||
| + | ==== ParameterConfig ==== | ||
| + | The purpose of this domain is to store the parameters associated with the IMAP poll frequency. This is used in the MailReaderProcess runnable class to set the poll frequency. This is currently set to every 5000 miliseconds. But can be update via this domain to increase or decrease the frequency of the poll if necessary. | ||
| + | < | ||
| + | String optionName - The option name is used for setting the mailReadInterval delay and is checked for when the polling process is run. | ||
| + | String optionValue - The option value is used for setting the mailReadInterval delay value associated with the option name. | ||
| + | | ||
| + | | ||
| + | Sample Result: | ||
| + | +----+---------+------------------+--------------+ | ||
| + | | id | version | option_name | ||
| + | +----+---------+------------------+--------------+ | ||
| + | | 1 | 0 | mailReadInterval | 5000 | | ||
| + | +----+---------+------------------+--------------+ | ||
| + | </ | ||
| + | |||
| + | ==== Query ==== | ||
| + | The purpose of this domain is to store the queries used for accessing ticketer values used within both the population of the email body(ATC DAS NOC Form Query) and also for querying for the current parent ticket to update in a grouped ticket scenario (Parent Ticket Query). | ||
| + | < | ||
| + | String queryName - The name assigned to the query | ||
| + | String queryValue The sql value of the query. | ||
| + | |||
| + | static constraints = { | ||
| + | queryName unique: true | ||
| + | } | ||
| + | | ||
| + | | ||
| + | Sample Result: | ||
| + | *************************** 1. row *************************** | ||
| + | id: 1 | ||
| + | version: 0 | ||
| + | query_value: | ||
| + | | ||
| + | *************************** 2. row *************************** | ||
| + | id: 2 | ||
| + | version: 0 | ||
| + | query_value: | ||
| + | | ||
| + | |||
| + | </ | ||
| + | |||
| + | ==== TicketStatus ==== | ||
| + | The purpose of this domain is to store the TicketStatus values for statuses checked for in order to kick off the email send process. Current values are FOT Dispatched and FOT Dispatched - Pending Parts. | ||
| + | < | ||
| + | String statusName - The name of the workflow status from the IDMS Ticketer application. | ||
| + | boolean triggerStatus = false - This field determines whether this is the status that kicks off the email send process. | ||
| + | |||
| + | static constraints = { | ||
| + | statusName nullable: false, unique: true //only want one entry of a unique statusName | ||
| + | } | ||
| + | | ||
| + | | ||
| + | Sample Result: | ||
| + | +----+---------+----------------+-----------------------+ | ||
| + | | id | version | trigger_status | status_name | ||
| + | +----+---------+----------------+-----------------------+ | ||
| + | | 1 | 0 | | FOT Dispatched | ||
| + | +----+---------+----------------+-----------------------+ | ||
| + | </ | ||
| + | |||
| + | ==== TicketUpdate ==== | ||
| + | The purpose of this domain is to store the TicketUpdate values which are created from the email polling process which polls the errigal mailbox for updates received back from ATC in the agreed upon format. Various validation conditions have to be met in order to create this TicketUpdate entry and send an update message back to the Ticketer via rabbitmq. | ||
| + | |||
| + | < | ||
| + | String ticketId | ||
| + | String form_name | ||
| + | String global_ticket_number | ||
| + | |||
| + | static constraints = { | ||
| + | ticketId nullable: false | ||
| + | } | ||
| + | | ||
| + | | ||
| + | Sample Result: | ||
| + | +------+---------+----------------------+-----------+--------------------------------+ | ||
| + | | id | version | global_ticket_number | ticket_id | form_name | ||
| + | +------+---------+----------------------+-----------+--------------------------------+ | ||
| + | | 3511 | 0 | 10403 | 503057 | ||
| + | +------+---------+----------------------+-----------+--------------------------------+ | ||
| + | </ | ||
| + | |||
| + | |||