Neglected Puppy Market

    node-spring-cloud-config-client
    TypeScript icon, indicating that this package has built-in type declarations

    0.1.0-beta4 • Public • Published

    node-spring-cloud-config-client

    Node-spring-cloud-config-client is a typescript implementation of spring cloud config client for node js.

    Build

    Install

    # with npm 
    npm install node-spring-cloud-config-client
     
    # or with Yarn 
    yarn add node-spring-cloud-config-client

    Usage

    In your application, use init method to start the load of variables in your process.env

    //typescript
    import {PropertySourcesContext} from 'node-spring-cloud-config-client'
     
    //javascript
    const {PropertySourcesContext} = require('node-spring-cloud-config-client')
     
    ...
    ...
    // When in your server want to retry configuration from spring cloud config server
    const propertySourcesContext = PropertySourcesContext.getInstance()
    propertySourcesContext.load()
    .subscribe(result => ...);
     
    // You can also await execution of load method
    const propertySourcesContext = PropertySourcesContext.getInstance()
    const result = await propertySourcesContext.load()
    .toPromise()
     
    ...
     

    After load method, you can access data from env with process.env:

    const database_password = process.env['db.password']

    Options

    client configuration

    Properties dictionary:

    Property name Default value
    NSCCC_BASE_URI http://localhost:8888
    NSCCC_APPLICATION_NAME application
    NSCCC_PROFILE
    NSCCC_LABEL

    With the above properties, node-spring-cloud-config-client can perform the rest call to the correct spring cloud config server.

    Based on properties will be create the rest call:

    <NSCCC_BASE_URI>/<NSCCC_APPLICATION_NAME>/<NSCCC_PROFILE>/<NSCCC_LABEL>

    Example:

    NSCCC_BASE_URI NSCCC_APPLICATION_NAME NSCCC_PROFILE NSCCC_LABEL Rest call
    http://localhost:8888/application/default
    http://your.server/ http://your.server/application/default
    your-application-name http://localhost:8888/your-application-name/default
    dev http://localhost:8888/application/dev
    label http://localhost:8888/application/default/label
    http://your.server/ your-application-name prod http://your.server/your-application-name/prod
    http://your.server/ your-application-name prod label http://your.server/your-application-name/prod/label

    fail strategy configuration

    Properties dictionary:

    Property name Default value
    NSCCC_FAIL_FAST false
    NSCCC_MAX_RETRY_ATTEMPTS 6
    NSCCC_SCALING_DURATION 1000

    You can specify what happen when call to propertie server fails.

    If you want that when the call fails there are no error, set NSCCC_FAIL_FAST=false.

    Otherwise, specify NSCCC_FAIL_FAST=true.

    When NSCCC_FAIL_FAST not set 'true' or 'false', is like set NSCCC_FAIL_FAST to 'false'.

    If NSCCC_FAIL_FAST set to true, is applied a retry that follow the properties NSCCC_MAX_RETRY_ATTEMPTS and NSCCC_SCALING_DURATION

    With NSCCC_MAX_RETRY_ATTEMPTS specify how much times the retry will be performed.

    With NSCCC_SCALING_DURATION specify what is scaling duration beetwen two retry.

    Example:

    export NSCCC_MAX_RETRY_ATTEMPTS=4
    export NSCCC_SCALING_DURATION=500

    Suppose that your config server is down and does not respond.

    After the first call to config server, node-spring-cloud-config-client perform another call after 500 ms, after 1000 ms, after 1500 ms and after 2000 ms. After that node-spring-cloud-config-client emit error.

    log configuration

    Properties dictionary

    Property name Default value accepted value if not accepted value
    NSCCC_LOGGER_ENABLED false true/false set to 'false'
    NSCCC_LOGGER_LEVEL error debug/info/error set to 'error'

    You may turn on/off the log with property NSCCC_LOGGER_ENABLED.

    You can specify level log with property NSCCC_LOGGER_LEVEL.

    Install

    npm i node-spring-cloud-config-client

    DownloadsWeekly Downloads

    4

    Version

    0.1.0-beta4

    License

    UNLICENSED

    Unpacked Size

    38.6 kB

    Total Files

    50

    Last publish

    Collaborators

    • fpes