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/
- Consume Wechaty Puppet Service
- Provide Wechaty Puppet Service
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/
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.jsFrom 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: SERVINGSee:
- Authentication and Security in gRPC Microservices - Jan Tattermusch, Google
- [gRPC #15] Implement gRPC interceptor + JWT authentication in Go
- ES Modules supported.
- gRPC Health Checking Protocol support
- Implemented TLS and server-side token authorization.
- Refactor the gRPC client code.
- Add local payload cache to reduce the cost of RPC.
- 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 trueto 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 trueto disable client TLS | 
Release v1.0 of Wechaty Puppet Service.
- use wechaty-token
for gRPC service discovery with wechatyschema (xDS like)
- deprecated WECHATY_SERVICE_DISCOVERY_ENDPOINT, replaced byWECHATY_PUPPET_SERVICE_AUTHORITY. (See #156)
- enable TLS & Token Auth (See #124)
Rename from wechaty-puppet-hostie to wechaty-puppet-service
(Issue #118)
- Add 'grpc.default_authority' to gRPC client option.
See: Issue #78: gRPC server can use the authority to identify current user 
Beta Version
- Reconnect to Hostie Server with RxSJ Observables
- Publish the NPM module wechaty-puppet-hostie
- Implemented basic hostie features with gRPC module: @chatie/grpc
Designing the puppet hostie with the following protocols:
- @huan Huan
- @windmemory Yuan
- Code & Docs © 2018-now Huan LI <[email protected]>
- Code released under the Apache-2.0 License
- Docs released under Creative Commons
