lemoncloud-engine-js
v1.0.23
Published
lemoncloud.io - Lemon Engine Modle of Node for Robust Micro-service based on DynamoDB + ElastiCache + Elasticsearch.
Downloads
85
Readme
lemoncloud-engine-js
Common LEMON Engine Module by lemoncloud.
Usage
# install module
$ npm install lemoncloud-engine-js --save
# update module
$ npm update lemoncloud-engine-js --save
사용법.
코드에서 사용 방법.
//! define instance scope.
const $scope = 0 ? global : {
name : 'LEMON-MESSAGES' // name of scope
,env : process.env // environment setting (see below)
}
//! load engine with configuration.
const handler = require('lemoncloud-engine-js')($scope);
//! instance manager in scope of $scope
const _$ = handler._$;
//! common user handler.
const user = handler.user;
const group = handler.group;
const chat = handler.chat;
// data properties.
const FIELDS = [
'id', 'type', 'parent', 'name', 'message'
];
const ES_FIELDS = FIELDS;
//! create engine for Messages.
const $LEM = _$.LEM(_$, '_'+name, {
ID_TYPE : 'LemonMessagesSeq', // WARN! '#' means no auto-generated id.
ID_NEXT : 1000, // ID Starts
FIELDS : FIELDS, // Properties
DYNA_TABLE : 'Messages', // DynamoDB Table
REDIS_PKEY : 'CMMS', // REDIS PKEY
ES_INDEX : 'messages-v1', // ES Index Name
ES_TYPE : 'messages', // ES Type Name
ES_FIELDS : ES_FIELDS,
NS_NAME : name, // Notify Service Name. (null means no notifications)
ES_MASTER : 1, // ES Master NODE.
ES_VERSION : 6, // ES Version 6.x.
CLONEABLE : true, // 복제 가능하며, parent/cloned 필드를 지원함.
PARENT_IMUT : false, // parent-id 변경 가능함(2018.03.15)
XECURE_KEY : 'lemon', // Encryption Key (use '*' prefix at property name: ver 0.3.22)
}); // load core-service with parameters.
if (!$LEM) throw new Error(NS+'$LEM is required!');
환경변수(env)
$scope.env
에는 아래와 같이 backbone 의 엔드포인트 주소가 필요. (자세한 내용은 lemoncloud-backbone-js참고)
# MySQL backbone api
MS_ENDPOINT: 'http://localhost:8081/mysql'
# DynamoDB backbone api
DS_ENDPOINT: 'http://localhost:8081/dynamo'
# ElasticSearch backbone api
ES_ENDPOINT: 'http://localhost:8081/elastic'
# Redis backbone api
RS_ENDPOINT: 'http://localhost:8081/redis'
# SQS backbone api
SS_ENDPOINT: 'http://localhost:8081/sqs'
# SNS backbone api
SN_ENDPOINT: 'http://localhost:8081/sns'
# Web backbone api
WS_ENDPOINT: 'http://localhost:8081/web'
VERSION INFO
| Version | Description
|-- |--
| 1.0.23 | add agw-proxy
as AG
. @190509.
| 1.0.22 | improve log
| 1.0.21 | environ.TS
for time-stamp.
| 1.0.20 | add $exist for elasticsearch to check existing field
| 1.0.19 | add do_queue_protocol in protocol-proxy
| 1.0.18 | add highlight $H for elasicsearch
| 1.0.17 | add 'qs_parse', 'qs_stringify' in utility
| 1.0.16 | cron-proxy
support Rules
in CloudWatch.
| 1.0.15 | reserved search param page/ipp.
| 1.0.14 | impromve ES6 index initializer. see do_initialize()
| 1.0.13 | support callback(url) as $protocol().do_post_notify_protocol(url, body, callback)
vis SNS.
| 1.0.12 | bug: _current_time error in records
| 1.0.11 | bug: save when 404 NOT FOUND
| 1.0.10 | improve validate_properties.
| 1.0.9 | ES_TIMESERIES
- onRecords, do not update cache if timeseries.
| 1.0.8 | ES_TIMESERIES
to support Time-Series Data (ex: item-trace)
| 1.0.6 | hot-fix of iota.
| 1.0.5 | use elasticsearch as 1st cache. see REDIS_PKEY = '#'
.
| 1.0.4 | optimized 'do_readX' for xecured property.
| 1.0.3 | add 'do_post_execute_notify'
| 1.0.2 | do_saveES()
direct save into ES.
| 1.0.1 | updated package dependencies
| 1.0.0 | support in-memory cache for node transaction.
| 0.3.25 | s3-proxy
support tags
for S3 Tagging.
| 0.3.24 | add s3-proxy
as S3
. @180913.
| 0.3.23 | cognito: do_get_confirm_user()
. @180911.
| 0.3.22 | support xecured fields see XECURE_KEY
. @180801.
| 0.3.21 | add 'do_post_execute_protocol'
| 0.3.20 | try to parse body for http-proxy
.
| 0.3.19 | get stringified param and body for protocol-proxy
.
| 0.3.18 | add protocol-proxy
.
| 0.3.17 | optimize http-proxy
.
| 0.3.16 | optimize log msg.
| 0.3.15 | add ses-proxy as SE
.
| 0.3.14 | add sqs stat as $SS.do_statistics()
.
| 0.3.13 | lambda-proxy as 'LS'. set LS_ENDPOINT
.
| 0.3.12 | optimize 404 error message.
| 0.3.11 | allow ipp to be set 0.
| 0.3.10 | sns-proxy as 'SN'
| 0.3.9 | support ES6 with ES_VERSION = 6
.
| 0.3.8 | minor fix for log of redis:my_save_node
| 0.3.7 | mysql id-generator configuration (see $LEM.do_next_id()
).
| 0.3.6 | fix ElasticSearch create index error due to 'string'.
| 0.3.5 | support as _$.httpProxy(_$, name, uri)
.
| 0.3.4 | fix require error.
| 0.3.3 | add httpProxy service. (use _$.createHttpProxy(name, endpoint)
)
| 0.3.2 | cognito service - manager user/group.
| 0.3.1 | remove MMS,user,group service. and add cognito service.
| 0.2.13 | cognito-proxy as 'CS'
| 0.2.12 | try to create node in dynamo if error of "an attribute that does not exist in the item"
| 0.2.5 | web-proxy as 'WS'
| 0.2.4 | record event handler
| 0.2.3 | sqs-proxy as 'SS'
| 0.2.0 | support scope during initialize