Neverending Pun Machine

    wechaty-puppet-service
    TypeScript icon, indicating that this package has built-in type declarations

    1.18.2 • Public • Published

    wechaty-puppet-service

    NPM Version NPM ES Modules

    Wechaty Service

    Wechaty Puppet Service is gRPC for Wechaty Puppet Provider.

    For example, we can cloudify the Wechaty Puppet Provider wechaty-puppet-padlocal to a Wechaty Puppet Service by running our Wechaty Puppet Service Token Gateway.

    If you want to learn more about what is Wechaty Puppet and Wechaty Puppet Service, we have a blog post to explain them in details at https://wechaty.js.org/2021/01/14/wechaty-puppet-service/

    Powered by Wechaty

    Features

    1. Consume Wechaty Puppet Service
    2. Provide Wechaty Puppet Service

    Usage

    import { WechatyBuilder } from 'wechaty'
    
    const wechaty = WechatyBuilder.build({
      puppet: 'wechaty-puppet-service',
      puppetOptions: {
        token: `${TOKEN}`
      }
    })
    
    wechaty.start()

    Learn more about Wechaty Puppet Token from our official website: http://wechaty.js.org/docs/puppet-services/

    Environment Variables

    1 WECHATY_PUPPET_SERVICE_TOKEN

    The token set to this environment variable will become the default value of puppetOptions.token

    WECHATY_PUPPET_SERVICE_TOKEN=${WECHATY_PUPPET_SERVCIE_TOKEN} node bot.js

    gRPC Health Checking Protocol

    From version 0.37, Wechaty Puppet Service start supporting the GRPC Health Checking Protocol.

    $ npm install --global wechaty-token
    $ go install github.com/grpc-ecosystem/grpc-health-probe@latest
    
    $ wechaty-token discovery uuid_12345678-1234-1234-1234-567812345678
    {"host": 1.2.3.4, "port": 5678}
    
    $ grpc-health-probe -tls -tls-no-verify -addr 1.2.3.4
    status: SERVING

    See:

    Resources

    Authentication

    1. Authentication and Security in gRPC Microservices - Jan Tattermusch, Google
    2. [gRPC #15] Implement gRPC interceptor + JWT authentication in Go

    History

    master v0.31

    1. ES Modules supported.
    2. gRPC Health Checking Protocol support

    v0.30 (Aug 25, 2021)

    1. Implemented TLS and server-side token authorization.
    2. Refactor the gRPC client code.
    3. Add local payload cache to reduce the cost of RPC.

    New environment variables

    1. WECHATY_PUPPET_SERVICE_TLS_CA_CERT: can be overwrite by options.tlsRootCert. Set Root CA Cert to verify the server or client.

    For Puppet Server:

    Environment Variable Options Description
    WECHATY_PUPPET_SERVICE_TLS_SERVER_CERT options.tls.serverCert Server CA Cert (string data)
    WECHATY_PUPPET_SERVICE_TLS_SERVER_KEY options.tls.serverKey Server CA Key (string data)
    WECHATY_PUPPET_SERVICE_NO_TLS_INSECURE_SERVER options.tls.disable Set true to disable server TLS

    For Puppet Client:

    Environment Variable Options Description
    WECHATY_PUPPET_SERVICE_AUTHORITY options.authority Service discovery host, default: api.chatie.io
    WECHATY_PUPPET_SERVICE_TLS_CA_CERT options.caCert Certification Authority Root Cert, default is using Wechaty Community root cert
    WECHATY_PUPPET_SERVICE_TLS_SERVER_NAME options.serverName Server Name (mast match for SNI)
    WECHATY_PUPPET_SERVICE_NO_TLS_INSECURE_CLIENT options.tls.disable Set true to disable client TLS

    Changelog

    main v1.0 (Oct 29, 2021)

    Release v1.0 of Wechaty Puppet Service.

    1. use wechaty-token for gRPC service discovery with wechaty schema (xDS like)
    2. deprecated WECHATY_SERVICE_DISCOVERY_ENDPOINT, replaced by WECHATY_PUPPET_SERVICE_AUTHORITY. (See #156)
    3. enable TLS & Token Auth (See #124)

    v0.14 (Jan 2021)

    Rename from wechaty-puppet-hostie to wechaty-puppet-service (Issue #118)

    v0.10.4 (Oct 2020)

    1. Add 'grpc.default_authority' to gRPC client option.

      See: Issue #78: gRPC server can use the authority to identify current user

    v0.6 (Apr 2020)

    Beta Version

    1. Reconnect to Hostie Server with RxSJ Observables

    v0.3 (Feb 2020)

    1. Publish the NPM module wechaty-puppet-hostie
    2. Implemented basic hostie features with gRPC module: @chatie/grpc

    v0.0.1 (Jun 2018)

    Designing the puppet hostie with the following protocols:

    1. gRPC
    2. JSON RPC
    3. OpenAPI/Swagger

    Maintainers

    Copyright & License

    • Code & Docs © 2018-now Huan LI <zixia@zixia.net>
    • Code released under the Apache-2.0 License
    • Docs released under Creative Commons

    Install

    npm i wechaty-puppet-service

    DownloadsWeekly Downloads

    651

    Version

    1.18.2

    License

    Apache-2.0

    Unpacked Size

    1.35 MB

    Total Files

    594

    Last publish

    Collaborators

    • zixia