Node Promiscuous Modules
    Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    hapi-service-discoverypublic

    Hapi-service-discovery

    Build Status NPM version Dependencies

    Hapi Plugin for opentable-flavoured service-discovery

    Connects the discovery client, exposes routes for announce, unannounce (so that you can control the server externally), and wraps the logging to server.log

    Currently depends on some closed-source modules which we are in the process of open-sourcing

    Usage:

    
    var server = hapi.createServer();
    
    server.pack.register({
      plugin: require('hapi-service-discovery'),
      options: {
        host: 'my-discovery-server.com',
        serviceType: 'my-service',
        serviceUri: 'http://my-service.domain.com', // Defaults to the machine's FQDN,
        discoveryRoutesAuth: false, // optional, default behaviour is to inherit the route default, can either be false (to disable auth) or the name of an auth strategy (to override the route default).
        metadata: { // metadata is optional
          domain: 'com'
        },
        onError: function(err) {
          // optional error handler
          // when set, forces initialisation to continue when any runtime errors are encountered
        },
        gracefulShutdown: true, // uses hapi-shutdown to unannounce gracefully on SIGTERM (defaults to false)
        waitOnShutdown: 20 * 1000 // time to wait after unannounce (defaults to 30 seconds)
    });
    
    server.start(function(){
      server.log(["info"], "server started...");
    
      server.plugins['hapi-service-discovery'].announce(function(err){
          if(err){
            throw err;
          }
    
          server.log(["info"], "announced");
        })
    });
    
    

    The plugin exposes the following methods from the ot-discovery module:

    
    - announce(callback)
    - unannounce(lease, callback)
    - find(serviceType | predicate )
    - findAll(serviceType | predicate)
    
    

    Routes:

    
    GET /discovery/announce    - announce this server to the registry
    GET /discovery/unannounce  - unannounce this server
    GET /discovery/lease       - show lease info
    GET /discovery/lastUpdated - show last time the client received an update from the remote discovery service (useful for monitoring)
    
    

    Logging: Will log using 'plugin.log()' and the tag "discovery"

    Keywords

    install

    npm i hapi-service-discovery

    Downloadsweekly downloads

    24

    version

    1.0.2

    license

    MIT

    repository

    githubgithub

    last publish

    collaborators

    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar