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.js
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:
- 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 byoptions.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 |
Release v1.0 of Wechaty Puppet Service.
- use wechaty-token
for gRPC service discovery with
wechaty
schema (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