lemoncloud-engine-js

1.0.23 • Public • Published

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

Package Sidebar

Install

npm i lemoncloud-engine-js

Weekly Downloads

5

Version

1.0.23

License

MIT

Unpacked Size

119 kB

Total Files

28

Last publish

Collaborators

  • stevelemon
  • louis-jin