amfbackend

package
v0.0.0-...-d6aac92 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 7, 2025 License: MIT Imports: 12 Imported by: 0

Documentation

Overview

***************************************************************************

*
* Copyright (C) Agile Data, Inc - All Rights Reserved
* Unauthorized copying of this file, via any medium is strictly prohibited
* Proprietary and confidential
* Written by Stephen Noel <noel@hub4edi.com>, December 2018
*
***************************************************************************

***************************************************************************

*
* Copyright (C) Agile Data, Inc - All Rights Reserved
* Unauthorized copying of this file, via any medium is strictly prohibited
* Proprietary and confidential
* Written by Stephen Noel <noel@hub4edi.com>, November 2018
*
***************************************************************************

Index

Constants

View Source
const (
	UFA_VERSION = "UFA 2.1"

	STATUS_INFO                = "Info"
	STATUS_FAILED              = "Failed"
	STATUS_PUBLISHED           = "Published"
	STATUS_QUEUED              = "Queued"
	STATUS_REQUEUE_REQUESTED   = "Requeue Requested"
	STATUS_WARNING             = "Warning"
	STATUS_STARTED             = "Started"
	STATUS_RETRYING            = "Retrying"
	STATUS_REQUEUED            = "Requeued"
	STATUS_REPROCESS_REQUESTED = "Reprocess Requested"
	STATUS_HELD                = "Held"
	STATUS_HOLD_REQUESTED      = "Hold Requested"
	STATUS_RECEIVED            = "Received"
	STATUS_COMPLETED           = "Completed"
	STATUS_DELIVERED           = "Delivered"
	STATUS_MAILBOXED           = "Mailboxed"
	STATUS_PROCESSING          = "Processing"
	STATUS_ACTIVE              = "Active"

	STATUS_FAILED_LOWER    = "failed"
	STATUS_COMPLETED_LOWER = "completed"
	STATUS_WARNING_LOWER   = "warning"

	MESSAGE_ID                = "msgid"
	MESSAGE_TIME              = "mtime"
	SENDER                    = "sender"
	RECEIVER                  = "receiver"
	MAILBOX                   = "mailbox"
	MESSAGE_TYPE              = "mtype"
	CONTROL_NO                = "cntl"
	ORIGINATOR                = "origin"
	SESSION_ID                = "sesid"
	PARENT_ID                 = "parid"
	FILE_NAME                 = "fname"
	FILE_TYPE                 = "ftype"
	FILE_SIZE                 = "fsize"
	TIME_CREATED              = "time"
	REFERENCES                = "ref"
	FILE_PATH                 = "path"
	FILE_BASE                 = "fbase"
	FILE_DIR                  = "fdir"
	FILE_TIME                 = "ftime"
	ORIG_FILENAME             = "ofile"
	ACTION_ID                 = "action"
	DOC_COUNT                 = "dcnt"
	YEAR                      = "year"
	MONTH                     = "month"
	DAY                       = "day"
	HOUR                      = "hours"
	MINUTE                    = "minute"
	SECOND                    = "seconds"
	MILLISECOND               = "milli"
	JOB_NAME                  = "job"
	TIME_QUEUED               = "qtime"
	STATUS_TIME               = "stime"
	STATUS                    = "status"
	INSTANCE                  = "instance"
	USER                      = "user"
	NODE_ID                   = "node"
	SITE_ID                   = "site"
	DATA_TYPE                 = "data_type"
	WORKFLOW_NAME             = "wfname"
	CAN_REQUEUE_AND_REPROCESS = "canboth"

	SERVICE_NAME    = "svc"
	SERVICE_TYPE    = "svctype"
	SERVICE_VERSION = "svcver"
	SERVICE_STATUS  = "status"
	SERVICE_ERRORS  = "errors"
	CREATED_BY      = "createdby"

	FLAG_SERVICE       = "svc"
	FLAG_CONFIGURATION = "conf"

	VAL_UNKNOWN        = "UNKNOWN"
	VAL_WILDCARD       = "*"
	VAL_EMPTY          = ""
	VAL_OKAY           = "ok"
	VAL_LINEFEED       = "\n"
	VAL_FILE_SEPARATOR = "/"
	VAL_JOB_SEPARATOR  = "//"
	VAL_ZERO           = 0
	VAL_DEFAULT_ERROR  = 999
	VAL_TRUE_STRING    = "true"
	VAL_FALSE_STRING   = "false"
	VAL_INPUT_FILE     = "Input"
	VAL_OUTPUT_FILE    = "Output"
	VAL_ZERO_UUID      = "00000000-0000-0000-0000-000000000000"
	VAL_DATA           = "data"

	VAL_MINIMUM_INTERVAL         = 15
	VAL_DEFAULT_STATUS_LIMIT     = 5
	VAL_DEFAULT_POLLING_INTERVAL = 120
	VAL_DEFAULT_RETRY_DELAY      = 120
	VAL_DEFAULT_CLIENT_TIMEOUT   = 1800
	VAL_DEFAULT_TEMP_FOLDER      = "tmp"

	VAL_PYTHON_CONTROLLER = "controller.py"

	ACTION_CURRENT_MESSAGE    = "Current"
	ACTION_ORIGINAL_MESSAGE   = "Original"
	ACTION_MESSAGE_TO_DELIVER = "Message To Deliver"
	ACTION_MESSAGE_TO_PROCESS = "Message To Process"
	ACTION_SCRIPT_NAME        = "Script Name"
	ACTION_MESSAGE_TYPE       = "Message Type"
	ACTION_FILENAME_FORMAT    = "Filename Format"
	ACTION_QUEUE_NAME         = "Queue Name"
	ACTION_RECEIVER           = "Receiver"
	ACTION_ICAP_URL           = "ICAP Url"

	KEY_DEFAULT        = "DEFAULT"
	KEY_DELIVER        = "deliver"
	KEY_STORAGE_ROOT   = "storage_root"
	KEY_ACTION_ID      = "action_id"
	KEY_QUEUE_NAME     = "queue_name"
	KEY_ITINERARY      = "itinerary"
	KEY_PARMS          = "parms"
	KEY_CONTEXT        = "context"
	KEY_SYSINFO        = "sysinfo"
	KEY_NODE_ID        = "node"
	KEY_TEMP_FOLDER    = "temp_folder"
	KEY_STATUS_LIMIT   = "status_limit"
	KEY_INPUT_FILE     = "input_file"
	KEY_INPUT          = "input"
	KEY_PYTHONPATH     = "PYTHONPATH"
	KEY_EVENT_NAME     = "event"
	KEY_STATUS         = "status"
	KEY_ROUTING_HEADER = "route"
	KEY_SERVICE        = "service_type"

	PARM_LISTEN_ADDR             = "listen_address"
	PARM_SERVER_CERT             = "server_cert"
	PARM_SERVER_KEY              = "server_key"
	PARM_SERVER_KEY_CRED         = "server_key_cred"
	PARM_READ_TIMEOUT            = "read_timeout"
	PARM_READ_HEADER_TIMEOUT     = "read_header_timeout"
	PARM_WRITE_TIMEOUT           = "write_timeout"
	PARM_CLIENT_TIMEOUT          = "client_timeout"
	PARM_RESPONSE_HEADER_TIMEOUT = "response_header_timeout"
	PARM_LOG_FILE                = "log_file"
	PARM_LOG_LEVEL               = "log_level"
	PARM_MAX_LOGS                = "max_logs"
	PARM_STORAGE_ROOT            = "storage_root"
	PARM_QUEUE_NAME              = "queue"
	PARM_NODE_ID                 = "node_id"
	PARM_SITE_ID                 = "site_id"
	PARM_MQ_URL                  = "mq_url"

	PARM_TEMP_FOLDER      = "temp_folder"
	PARM_TMP_FOLDER       = "tmp_folder"
	PARM_PYTHON_PATH      = "python_path"
	PARM_DEFAULT_RECEIVER = "default_receiver"
	PARM_STATUS_LIMIT     = "status_limit"
	PARM_RETRY_INTERVAL   = "retry_interval"
	PARM_ELASTIC_URL      = "elastic_url"
	PARM_THREAD_COUNT     = "thread_count"
	PARM_SERVICE_NAME     = "service_name"
	PARM_DATABASE_URL     = "database_url"
	PARM_STORAGE_PROVIDER = "storage_provider"

	PARM_REGISTRATION_QUEUE     = "registration_queue"
	PARM_WORKFLOW_QUEUE         = "workflow_queue"
	PARM_WORKFLOW_MAILBOX_QUEUE = "mailbox_queue"
	PARM_ARCHIVE_QUEUE          = "archive_queue"
	PARM_ERROR_QUEUE            = "error_queue"
	PARM_INPUT_QUEUE            = "input_queue"
	PARM_BACKOUT_QUEUE          = "backout_queue"
	PARM_SCHEDULER_QUEUE        = "scheduler_queue"
	PARM_SFTPD_KEY_FILE         = "key_file"
	PARM_SFTPD_LISTEN_ADDR      = "listen_address"
	PARM_SFTPD_LIST_LIMIT       = "list_limit"
	PARM_RELOAD_FLAG            = "reload"

	PARM_USER              = "user"
	PARM_URL               = "url"
	PARM_KEY_FILE          = "key_file"
	PARM_PASSWORD          = "password"
	PARM_CONFIGPATH        = "configpath"
	PARM_UPLOAD_FOLDER     = "upload_folder"
	PARM_DOWNLOAD_FOLDER   = "download_folder"
	PARM_FILE_PATTERN      = "pattern"
	PARM_ARCHIVE_FOLDER    = "archive_folder"
	PARM_RECEIVER          = "receiver"
	PARM_MESSAGE_TYPE      = "message_type"
	PARM_SENDER            = "sender"
	PARM_POLLING_INTERVAL  = "polling_interval"
	PARM_SENDING_INTERVAL  = "interval"
	PARM_UFA_PROFILES_FILE = "ufa_profiles.conf"
	PARM_UPDATE_INTERVAL   = "update_interval"
	PARM_PYTHON_EXEC       = "python_executable"

	PARM_PGP_ENCRYPTION_KEY = "Encryption Key"
	PARM_PGP_SIGNING_KEY    = "Signing Key"
	PARM_PGP_ARMOR          = "Armor"
	PARM_PGP_SIGN_MESSAGE   = "Sign Message"

	PARM_PGP_SECRET_KEY_RING = "Secret Key Ring"
	PARM_PGP_VERIFY_SIGN     = "Verify Signature"
	PARM_VALIDATION_RULES    = "Validation Rules"

	NODEJS_EXECUTABLE = "node"

	EVENT_LOG       = "log"
	EVENT_FILE      = "file"
	EVENT_STATUS    = "status"
	EVENT_LEVEL     = "level"
	EVENT_TEXT      = "text"
	EVENT_FILE_PATH = "path"
	EVENT_FILE_NAME = "fname"
	EVENT_REASON    = "reason"

	HTTP_IDENTITY     = "identity"
	HTTP_ACCEPT       = "Accept"
	HTTP_CONNECTION   = "Connection"
	HTTP_CONTENT_TYPE = "Content-Type"
	HTTP_USER_AGENT   = "User-Agent"

	HTTP_VAL_APPLICATION_OCTET_STREAM = "application/octet-stream"
	HTTP_VAL_CLOSE                    = "close"

	UFA_DIST_DIR      = "ufa_dist_dir"
	UFA_SERVER_URL    = "ufa_server_url"
	UFA_PARM_OSNAME   = "OS_NAME"
	UFA_PARM_OSTYPE   = "OS_TYPE"
	UFA_PARM_UFAHOME  = "UFA_HOME"
	UFA_PARM_HOSTNAME = "HOSTNAME"

	WS_PARM_URL              = "URL"
	WS_PARM_AUTHTYPE         = "Auth Type"
	WS_PARM_HTTP_METHOD      = "HTTP Method"
	WS_PARM_HTTP_QUERYSTRING = "HTTP Query String"
	WS_PARM_HTTP_HEADERS     = "HTTP headers"
	WS_PARM_KEYPAIR          = "Key Pair"
	WS_PARM_OUTPUT_MSGTYPE   = "Output Message Type"
	WS_PARM_OUTPUT_RECEIVER  = "Output Receiver"
	WS_PARM_USERNAME         = "User"
	WS_PARM_PASSWORD         = "Password"

	SFG_INBOX_URL      = "sfg_inbox_url"
	SFG_ADMIN_USER     = "sfg_admin_user"
	SFG_ADMIN_PASSWORD = "sfg_admin_passwd"
	SFG_URL_TIMEOUT    = "sfg_url_timeout"

	PARM_FROM_OS         = "From OS"
	PARM_TO_OS           = "To OS"
	PARM_WINDOWS_OS      = "Windows(CRLF)"
	PARM_LINUX_OS        = "Linux(LF)"
	PARM_MAC_OS          = "Macintosh(CR)"
	PARM_OUTPUT_MSGTYPE  = "Output Message Type"
	PARM_OUTPUT_RECEIVER = "Output Receiver"

	PARM_DELIVERYFLAG = "delivery"

	PARM_KAFKA_HOST      = "kafka_host"
	PARM_KAFKA_PORT      = "kafka_port"
	PARM_KAFKA_PARTITION = "kafka_partition"
	PARM_KAFKA_TOPIC     = "kafka_topic"
	PARM_KAFKA_PASSWD    = "kafka_passwd"
	PARM_KAFKA_USERNAME  = "kafka_username"
	PARM_KAFKA_CERTFILE  = "kafka_client_certpath"
	PARM_KAFKA_KEYFILE   = "kafka_client_keypath"
	PARM_KAFKA_SECURITY  = "kafka_security_protocol"
	PARM_KAFKA_QUEUE     = "kafka_queue"
	PARM_KAFKA_ENV       = "kafka_environment"
	PARM_KAFKA_SUBSYSTEM = "kafka_subsystem"

	PARM_S3_BUCKET         = "S3 Bucket"
	PARM_S3_REGION         = "S3 Region"
	PARM_S3_ACCESS_KEY     = "S3 Access Key ID"
	PARM_S3_SECRET_KEY     = "S3 Secret Key"
	PARM_S3_PROXY_URL      = "ProxyURL"
	PARM_S3_PROXY_USERNAME = "ProxyUsername"
	PARM_S3_PROXY_PASSWORD = "ProxyPassword"
	PARM_S3_PROXY_REQUIRED = "ProxyRequired"

	PARM_GCS_BUCKET    = "GCP Bucket"
	PARM_GCS_PROJECTID = "GCP Project ID"

	PARM_SMTP_HOST                 = "SMTP Host"
	PARM_SMTP_PORT                 = "SMTP Port"
	PARM_SMTP_USERNAME             = "SMTP Username"
	PARM_SMTP_PASSWORD             = "SMTP Password"
	PARM_SMTP_SEND_MESSAGE_DETAILS = "Send Message Details"

	//UFA CHUNKED FILE TRANSFER
	HTTP_CHUNK_NUMBER   = "chunk_number"
	HTTP_FILE_UNIQUE_ID = "unique_file_id"
	HTTP_CHUNK_SIZE     = "chunk_size"
	HTTP_BYTES_LENGTH   = "bytes_length"

	SERVICE_COMMS        = "amf_comms"
	SERVICE_UFA          = "amf_http"
	SERVICE_REGISTRATION = "amf_registration"
	SERVICE_WORKFLOW     = "amf_workflow"
	SERVICE_SCHEDULER    = "amf_scheduler"
	SERVICE_CONNECTOR    = "amf_appconnector"
)
View Source
const (
	LEVEL_DEBUG      = "debug"
	LEVEL_WARNING    = "warning"
	LEVEL_ERROR      = "error"
	LEVEL_TRACE      = "trace"
	LOGGER_TYPE_FILE = "file"
	LOGGER_FORMAT    = "[%D %T] [%L] (%S) %M"
)

Variables

This section is empty.

Functions

func ConvertEpochtoTimestamp

func ConvertEpochtoTimestamp(epochTime string) (time.Time, error)

func ConvertMap

func ConvertMap(input *sync.Map) map[string]string

func ConvertTimeToEpochString

func ConvertTimeToEpochString(timestamp time.Time) string

func ConvertTimeToEpochString2

func ConvertTimeToEpochString2(timestamp time.Time) string

func ConvertTimestampToUnixMsString

func ConvertTimestampToUnixMsString(timeStamp time.Time) string

func Copy

func Copy(src, dst string) (int64, error)

func CreateAmfHeader

func CreateAmfHeader(sender, receiver, messageType, controlNo, fileName string) string

func CreateAmfHeaderMap

func CreateAmfHeaderMap(header AmfHeader) map[string]string

func Formatter

func Formatter(format string, msg map[string]string, sysinfo map[string]string) string

func GetId

func GetId() string

func GetLogger

func GetLogger(logFile, logLevel string, maxbackup int) (log4go.Logger, error)

func GetLoggerFromConfig

func GetLoggerFromConfig(config *ini.Section) (log4go.Logger, error)

func GetMD5CheckSum

func GetMD5CheckSum(filename string) (string, error)

func GetTimeMap

func GetTimeMap(timeStamp time.Time) map[string]string

func MapToXML

func MapToXML(input map[string]string) ([]byte, error)

func Merge

func Merge(maps ...map[string]string) map[string]string

func MoveFile

func MoveFile(root string, msgid string, sender string, inputFile string) (string, error)

func ReadFile

func ReadFile(filename string) []byte

func SafeInt

func SafeInt(val string, intDefault int64) (result int64)

func Sleep

func Sleep(interval int, runFlag *bool)

func StoreFile

func StoreFile(root string, msgid string, sender string, input io.ReadCloser) (int64, string, error)

func StoreTempFile

func StoreTempFile(tmpDir string, serviceName string, senderName string, msgid string, input io.ReadCloser) (string, int64, error)

func WriteFile

func WriteFile(filename string, contents []byte) error

Types

type AMFMessage

type AMFMessage map[string]string

func (AMFMessage) MarshalXML

func (m AMFMessage) MarshalXML(e *xml.Encoder, start xml.StartElement) error

MarshalXML marshals the map to XML, with each key in the map being a tag and it's corresponding value being it's contents.

type ActionParms

type ActionParms map[string]string

type AmfAction

type AmfAction struct {
	ActionId   string            `json:"action_id"`
	ActionName string            `json:"action_name"`
	ActionType string            `json:"action_type"`
	Params     map[string]string `json:"params"`
}

type AmfCommAction

type AmfCommAction struct {
	ActionId    string                 `json:"action_id"`
	ActionName  string                 `json:"action_name"`
	ActionType  string                 `json:"action_type"`
	Params      map[string]interface{} `json:"params"`
	ProfileName string                 `json:"profile_name"`
}

type AmfHeader

type AmfHeader struct {
	Sender      string
	Receiver    string
	MessageType string
	ControlNo   string
	FileName    string
	ParentId    string
	Originator  string
}

func ParseAmfHeader

func ParseAmfHeader(header string) AmfHeader

type AmfMessage

type AmfMessage map[string]string

type ChunkedFileInfo

type ChunkedFileInfo struct {
	FileSize   int       `json:"file_size"`
	ChunkSize  int       `json:"chunk_size"`
	NoOfChunks int       `json:"no_chunks"`
	DownloadId uuid.UUID `json:"download_id"`
}

type CommJob

type CommJob struct {
	Sender      string
	Receiver    string
	MessageType string
}

type CommService

type CommService struct {
	ServiceType string `json:"service_type"`
	MessageId   string `json:"message_id"`
	ActionId    string `json:"action_id"`
}

type DeliveryComms

type DeliveryComms struct {
	DeliveryId string                 `json:"delivery_id"`
	MessageId  string                 `json:"message_id"`
	ActionId   string                 `json:"action_id"`
	ActionType string                 `json:"action_type"`
	ActionName string                 `json:"action_name"`
	Params     map[string]interface{} `json:"params"`
}

type EventParms

type EventParms map[string]string

type Match

type Match struct {
	Regex               string
	Precedence          int
	Receiver            string
	MessageType         string
	IsRegularExpression bool
}

type Rule

type Rule struct {
	Itinerary   string
	Queue       string
	MailboxFlag bool
	ArchiveFlag bool
	NaFlag      bool
	NaStatus    string
}

type ScheduleMessage

type ScheduleMessage struct {
}

type ScheduledComms

type ScheduledComms struct {
	RuleId              string                 `json:"rule_id"`
	Sender              string                 `json:"sender"`
	Receiver            string                 `json:"receiver"`
	MsgType             string                 `json:"msg_type"`
	ProtocolType        string                 `json:"protocol_type"`
	ActionId            string                 `json:"action_id"`
	BpName              string                 `json:"bp_name"`
	Delivery            string                 `json:"delivery"`
	ScheduleName        string                 `json:"schedule_name"`
	ScheduleType        string                 `json:"schedule_type"`
	ScheduleDetails     map[string]interface{} `json:"schedule_details"`
	ScheduleStatus      string                 `json:"schedule_status"`
	Active              bool                   `json:"active"`
	ActionType          string                 `json:"action_type"`
	PrevScheduleName    string                 `json:"prev_schedule_name"`
	PrevScheduleDetails map[string]interface{} `json:"prev_schedule_details"`
	PrevSender          string                 `json:"prev_sender"`
	PrevReceiver        string                 `json:"prev_receiver"`
	PrevMsgType         string                 `json:"prev_msg_type"`
	PrevActionId        string                 `json:"prev_action_id"`
}

type ServiceParms

type ServiceParms map[string]string

type State

type State map[string]map[string]string

type Step

type Step struct {
	StepNo     int
	ActionId   string
	ActionName string
	ActionType string
	Parms      map[string]string
}

type SystemParms

type SystemParms map[string]string

type TriggerCommWorkflow

type TriggerCommWorkflow struct {
	TransactionId string
	MessageId     string
	CreateTime    string
	Status        string
	StatusTime    string
	Workflow      string
}

type UfaProfile

type UfaProfile struct {
	Username     string
	Parms        map[string]string
	Operation    string
	CommType     string
	ProtocolName string
	ProfileName  string
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL