Skip to content

wechaty/puppet-service

Repository files navigation

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 <[email protected]>
  • Code released under the Apache-2.0 License
  • Docs released under Creative Commons