1.0.4 • Published 11 months ago

@creditkarma/thrift-client-context-filter v1.0.4

Weekly downloads
-
License
-
Repository
-
Last release
11 months ago

Thrift Client Context Filter

When using Thrift over HTTP we can use HTTP headers to pass context/metadata between services (tracing, auth). When using TCP we don't have this. Among the options to solve this is to prepend an object onto the head of our TCP payload. @creditkarma/thrift-client comes with two filters for helping with this situation.

Installation

ThriftClientContextFilter has a few peerDependencies.

npm install --save @creditkarma/thrift-server-core
npm install --save @creditkarma/thrift-client
npm install --save @creditkarma/thrift-client-context-filter

Usage

This plugin writes a Thrift struct onto the head of an outgoing payload and reads a struct off of the head of an incoming payload.

import {
    createTcpClient,
} from '@creditkarma/thrift-client'

import {
    ThriftClientContextFilter,
} from '@creditkarma/thrift-client-context-filter'

import {
    RequestContext,
    ResponseContext,
} from './codegen/metadata'

import {
    Calculator,
} from './codegen/calculator'

const thriftClient: Calculator.Client<RequestContext> =
    createTcpClient(Calculator.Client, {
        hostName: 'localhost',
        port: 8080,
        register: [ ThriftClientContextFilter<RequestContext, ResponseContext>({
            RequestContextClass: RequestContext,
        }) ]
    })

thriftClient.add(5, 6, new RequestContext({ traceId: 3827293 })).then((response: number) => {
    // Do stuff...
})

Options

Available options for ThriftClientContextFilter:

  • RequestContextClass (required): A class (extending StructLike) that is to be prepended to outgoing requests.
  • ResponseContextClass (optional): A class (extending StructLike) that is prepended to incoming responses. Defaults to nothing.
  • transportType (optional): The type of transport to use. Currently only 'buffered'.
  • protocolType (optional): The type of protocol to use, either 'binary' or 'compact'.

Contributing

For more information about contributing new features and bug fixes, see our Contribution Guidelines. External contributors must sign Contributor License Agreement (CLA)

License

This project is licensed under Apache License Version 2.0

1.1.0-alpha.1

11 months ago

1.0.6-alpha.0

1 year ago

1.0.4

2 years ago

1.0.3

2 years ago

0.18.1-alpha.8

2 years ago

0.18.1-alpha.7

2 years ago

0.18.1-alpha.6

2 years ago

0.18.1-alpha.9

2 years ago

0.18.1-alpha.5

2 years ago

0.18.0-alpha.0

2 years ago

0.18.0-alpha.1

2 years ago

0.18.0-alpha.5

2 years ago

0.18.1-alpha.0

2 years ago

0.18.1-alpha.4

2 years ago

0.18.1-alpha.3

2 years ago

0.17.2

3 years ago

0.17.1

3 years ago

0.17.0-alpha.0

3 years ago

0.16.1

4 years ago

0.16.0

4 years ago

0.15.3

5 years ago

0.15.2

5 years ago

0.15.1

5 years ago

0.14.6

5 years ago

0.14.5

5 years ago

0.14.4

5 years ago

0.14.3

5 years ago

0.14.2

5 years ago

0.14.1

5 years ago

0.13.8

5 years ago

0.13.7

5 years ago

0.13.6

5 years ago

0.13.5

5 years ago

0.13.4

5 years ago

0.13.3

5 years ago

0.13.2

5 years ago

0.12.5

5 years ago

0.12.4

5 years ago

0.12.3

5 years ago

0.12.3-alpha.0

5 years ago

0.12.2

5 years ago

0.12.1

5 years ago

0.11.2

5 years ago

0.11.1

5 years ago

0.11.0-alpha.2

5 years ago

0.11.0-alpha.1

5 years ago