@vtex/api
Version:
VTEX I/O API client
1,973 lines (1,085 loc) • 37.6 kB
Markdown
Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
# [Unreleased]
# [7.4.0] - 2026-06-22
## Changed
- Renamed the base `IOClients` Janus Catalog getter from `catalogSystem` to
`janusCatalogSystem` to avoid a name collision with apps that already define
their own `catalogSystem` client (e.g. vtex-apps/promotion-cloner).
## Added
- Base `IOClients` getter `janusCatalogSystem` (Janus Catalog) and
`licenseManager.listBindings`, plus binding-mapping helpers
(getCanonicalAndAlternateAddresses, inferTargetProduct) used by the
Tenant API migration.
# [7.3.1] - 2026-01-06
## Added
- OpenTelemetry context-based base attributes to DiagnosticsMetrics
## Fixed
- Merge request context attributes with custom metrics - custom metrics now automatically include request-scoped base attributes (account, route_id, status_code, etc.) using OpenTelemetry Context API
# [7.3.0] - 2025-12-16
## Changed
- Update temporality to delta in metrics client
- New deploy pipeline with npm publish flow
## Fixed
- Fix account attribute to diagnostics metrics
# [7.2.9-beta.1] - 2025-12-12
## Changed
- Increase maximum attributes limit for diagnostics metrics
# [7.2.9-beta.0] - 2025-12-11
## Fix
- Add account attribute to diagnostics metrics for improved observability
# [7.2.8-beta.4] - 2025-12-08
## Changed
- New deploy pipeline. No functional changes in the code
# [7.2.7] - 2025-12-04
## Changed
- Increased metrics client interval from 5s to 60s and timeout from 5s to 60s
# [7.2.6] - 2025-11-05
## Changed
- Enhance the translation utilities by introducing a new state marker for translatable message strings, updating the parsing and formatting logic to handle this marker and ensuring that already translated messages are bypassed further processing
# [7.2.5] - 2025-10-28
## Changed
- Added a new metrics tooling layer using @vtex/diagnostics-nodejs to replace the legacy MetricsAccumulator system
# [7.2.4] - 2025-10-15
## Fix
- Restores backward compatibility for individual header constant exports
# [7.2.3] - 2025-10-08
## Fix
- Separate console and diagnostics client logging formats
# [7.2.2] - 2025-09-26
## Changed
- Adds integration with @vtex/diagnostics-semconv library to support VTEX semantic conventions for diagnostics-based logs
# [7.2.1] - 2025-09-08
## Fixed
- Ensure `global.metrics` is initialized in both master and worker processes to prevent undefined errors in status tracking and metrics reporting
# [7.2.0] - 2025-09-08
## Changed
- Add metrics instrumentation based on diagnostics lib
- Add conditional enabling for diagnostics telemetry signals
# [7.1.0] - 2025-09-02
## Changed
- Add new scope argument into auth directive
# [7.0.1] - 2025-08-14
## Changed
- Update `diagnostics-nodejs` version, simplifying client initialization, consolidating telemetry logic, and improving type safety
# [7.0.0] - 2025-08-13
## Changed
- Version created to keep track of Runtime 7-compatible implementation of this lib
# [6.49.6] - 2025-07-25
## Changed
- Bump `@vtex/diagnostics-nodejs` version
- Remove `resolutions` field from `package.json`
# [6.49.5] - 2025-07-21
## Changed
- Defining a list of headers to be added as trace span information
# [6.49.4] - 2025-07-02
## Fixed
- Userland logs that wouldn't be collected
# [6.49.2] - 2025-06-03
## Fixed
- Bumped `axios` to newest version without vuln CVE-2025-27152
# [6.49.1] - 2025-04-30
## Fixed
- Add yarn.lock changes from previous release
# [6.49.0] - 2025-04-29
## Changed
- Update logging instrumentation
## Fixed
- Bump typescript-json-schema from 0.40.0 to 0.52.0
- Fix `yarn gen` script
- Update node-version on publish workflows
# [6.48.0] - 2024-10-23
## Added
- resolveAll to `MineWinsConflictsResolver` to handle an array of conflicts.
## Fixed
- Avoid using async/await with then callbacks
- Bump semver from 5.7.1 to 5.7.2
## Changed
- @auth: Validate token's `account` scope
- Delete Metadata client
# [6.47.0] - 2024-06-11
## Added
- Add option to save asynchronous cache
## Fixed
- Add handler name for runtime http handlers
# [6.46.1] - 2024-01-31
## Fixed
- Return type for the saveJSON method of VBase client
## Changed
- Increase timeout for messagesGraphQL client
# [6.46.0] - 2023-10-25
## Added
- Add disk cache steps and retry count to tracing
## Changed
- Stop updating client cache when revalidated and still expired
# [6.45.24] - 2023-10-05
## Added
- Allow disabling memoization for all requests of a client
# [6.45.23] - 2023-10-04
## Fixed
- Fix metrics being restricted by tracing restrictions
# [6.45.22] - 2023-09-20
## Removed
- Remove reference of how to search for the app's errors on now-defunct Splunk.
## Fixed
- Error tracing spans not logging the details.
# [6.45.21] - 2023-09-19
## Changed
- Fix tracingMiddleware shouldTrace decision
- Fix HttpClient tracing based on sampling decision
# [6.45.21-beta.2] - 2023-09-19
# [6.45.21-beta.1] - 2023-09-07
# [6.45.21-beta.0] - 2023-09-04
# [6.45.21-beta] - 2023-09-04
# [6.45.20] - 2023-08-30
## Changed
- Remove sampling decision from runtime
- Only create tracing spans when they come from router
# [6.45.20-beta] - 2023-08-30
# [6.45.19] - 2023-07-12
## Changed
- Bump `graphql-upload` version
# [6.45.18] - 2023-07-07
## Fixed
- Metrics to prometheus
# [6.45.16] - 2023-07-03
## Changed
- Bump `prom-client` version
# [6.45.15] - 2023-02-01
## Changed
- Removed unnecessary worker signal logs
# [6.45.14] - 2023-02-01
## Added
- New tests for `MineWinsConflictsResolver`.
## Fixed
- Merged/Rebased content not being returned causing inconsistencies.
- Do not return empty content if no conflict is found.
# [6.45.13] - 2022-12-12
## Changed
- Deterministic cache for getWithBody
- Remove socket metrics per origin
# [6.45.12] - 2022-04-14
## Fixed
- Update sensitive fields list.
- Remove "error" field.
- Add missing fields.
# [6.45.11] - 2022-04-08
## Fixed
- Add where parameter to the MasterData scroll method
# [6.45.10] - 2022-03-15
## Fixed
- Update sensitive fields.
- Add 'authorization', rawheaders', 'x-vtex-credential' and 'x-vtex-session'.
- Lowercase fields before comparison in cleanJson.
# [6.45.9] - 2022-03-08
## Fixed
- Fix cleanJson utility.
# [6.45.8] - 2022-02-25
## Fixed
- Remove only cookie fields when cleaning logs.
# [6.45.7] - 2022-02-23
## Fixed
- Remove sensitive data from logs.
# [6.45.6] - 2021-10-26
## Fixed
- `vtex_segment` cookie extraction
# [6.54.5] - 2021-10-22
## Fixed
- Extract session cookie in a safe manner
# [6.45.4] - 2021-09-16
## Removed
- `Missing x-vtex-provider header` log.
# [6.45.3] - 2021-08-30
## Fixed
- Cover new test cases where mine is left equal to base and master updates an item.
# [6.45.0] - 2021-08-24
## Changed
- Export Prometheus client
# [6.44.0] - 2021-07-15
## Added
- `@metric` GraphQL directive
# [6.43.1] - 2021-07-12
## Fixed
- Update axios to `0.21.1`
# [6.43.0] - 2021-06-23
## Added
- Update schema in runtime when provider app changes version
# [6.42.1] - 2021-05-18
## Fixed
- [startWorker] Remove duplicated middleware
# [6.42.0] - 2021-05-17
## Added
- [Rate Limit] Enable user to config the amount of requests to be processed per minute and concurrently by setting it in `service.json`.
# [6.41.1] - 2021-05-17
## Fixed
- Fix prometheus metrics being publicly exposed on /metrics.
# [6.41.0] - 2021-03-09
## Added
- Added an interface to the `userTranslations` query of the MessagesGraphQL client.
# [6.40.0] - 2021-03-02
## Added
- `getAppState` method to `registry` client
# [6.39.1] - 2021-02-05
- Increase HTTP agents connection pools freeSockets and lifetime
# [6.39.0] - 2021-01-27
## Added
- `TranslateTo` schema directive.
- `translations` util.
- README's `Development with IO clients` directions.
## Changed
- Moved the `TranslatableMessageV2` interface, `parseTranslatableStringV2`, `formatTranslatableStringV2` and `handleSingleString` methods and `CONTEXT_REGEX`, `FROM_REGEX` and `CONTENT_REGEX` constants from the `TranslatableV2` schema directive to the `translations` util.
- README's `Development` section format.
# [6.37.1] - 2020-12-10
## Changed
- Add logs to MineWinsConflictResolver
# [6.37.0] - 2020-10-08
## Added
- `searchDocumentsWithPaginationInfo` on Masterdata client
# [6.36.3] - 2020-09-09
## Changed
- Allow sending events to any resource
# [6.36.2] - 2020-08-19
## Fixed
- Set wait time to force shutdown workers based on service timeout
- Stop removing response from error.
- Update @vtex/node-error-report to remove sensitive information from errors logged to splunk and to distributed tracing.
- Remove sensitive information from headers before logging onto tracing spans.
# [6.36.1] - 2020-08-17
## Fixed
- Remove sensitive exception data before responding to browser.
# [6.36.0] - 2020-07-30
## Added
- [metric] Created new Prometheus metrics related to Event Loop Lag between scrapes:
- runtime_event_loop_lag_max_between_scrapes_seconds
- runtime_event_loop_lag_percentiles_between_scrapes_seconds
# [6.35.2] - 2020-07-24
## Added
- `timestamp` field to VTEX IO Billing log.
# [6.35.1] - 2020-07-22
## Added
- [metrics] Export jaeger metrics.
## Fixed
- [metrics] Typo on event listened to increment `runtime_http_aborted_requests_total`.
- [tracing:entrypoint] Fix waiting for response stream to finish.
# [6.35.0] - 2020-07-08
## Added
- [metrics] Create new Prometheus exported metrics:
- runtime_http_requests_total
- runtime_http_aborted_requests_total
- runtime_http_requests_duration_milliseconds
- runtime_http_response_size_bytes
- [tracing] Finish entrypoint span when response finishes streaming.
## Changed
- Update `billingOptions` type.
# [6.34.0] - 2020-07-03
## Fixed
- Remove fallback to x-vtex-credential as adminUserAuthToken.
## Added
- Send workspace to session service.
- Add channelPrivacy to SegmentData type.
# [6.33.0] - 2020-06-25
## Added
- [clients:tracing] Create span wrapping HttpClient middlewares with information on caching and retries.
# [6.32.0] - 2020-06-25
## Changed
- [tracing] Remove span wrapping user middlewares.
- [tracing] Add entrypoint span tags and logs after the execution of middlewares.
- [ErrorReport] Do not allow creating recursive ErrorReports.
# [6.31.1] - 2020-06-05
## Fixed
- Release the 6.31.0 again due to issues.
# [6.31.0] - 2020-06-04
## Added
- Add `putRaw` method on HttpClient.
- Support to `If-Match` header usage on VBase client.
## Changed
- [ErrorReport] Log ErrorReport errors created on `HttpClient` requests or thrown by user handlers to splunk.
- [ErrorReport] Add error metadata on span logs instead of on span tags.
- [tracing:entrypoint] Log incoming request headers and outgoing response headers.
- [tracing] Use remote sampling.
## Fixed
- [tracing:entrypoint] Fix URL tag on entrypoint span - use `ctx.request.href` instead of `ctx.request.originalUrl`.
- Masterdata sort typing and scroll pagination.
# [6.30.1] - 2020-05-21
## Changed
- Remove `serverTiming` metrics from client headers.
- Add `serverTiming` metrics on error report.
# [6.30.0] - 2020-05-20
## Added
- Masterdata client
# [6.29.0] - 2020-05-18
## Changed
- Create an option to disable conditional segment/session vary
- Set vary: x-vtex-session if the scope is private
# [6.28.3] - 2020-05-15
## Fixed
- [ErrorReport] Update `@vtex/node-error-report` package:
- Clone objects before sanitizing them.
# [6.28.2] - 2020-05-13
## Changed
- [ErrorReport] Use `@vtex/node-error-report` package.
# [6.28.1] - 2020-05-05
## Fixed
- [tracing:logger] Make Logger serializable again.
# [6.28.0] - 2020-05-04
## Changed
- [tracing:init] Increase sampling rate to 5%.
- [ErrorReport] Serialize buffer only as a `byteCount` and a `type: buffer`.
- [ErrorReport] Increase ErrorReport serialization depth from 6 to 8.
## Added
- [tracing:entrypoint-span] Add `vtex.request_id` tag.
- [ErrorReport] Add `error.server.code`, `error.server.source`, `error.server.request_id` to tags added to error spans.
- [response:headers] Add `x-trace-id` when request is traced.
- [logger] Log `trace-id` when request is traced.
- [tracing:tags] Use snake case to conform with OpenTracing.
# [6.27.0] - 2020-04-28
# [6.26.2-beta] - 2020-04-28
# [6.26.1-beta] - 2020-04-27
# [6.25.1-beta] - 2020-04-27
## Added
- Settings from settings builder to events.
# [6.26.0] - 2020-04-22
## Changed
- Tracing utilities export.
## Added
- `NODE_ENV` tag to process tracing tags.
- `tracingConfig` argument to all clients request functions.
- Option on request spans to define if request is childOf rootSpan or followsFrom it.
- Option on request span to add suffix on request span name - it will be `http-request:suffx`.
- Helper `createTracingContextFromCarrier` to allow worker threads and child processes to be traced.
# [6.25.0] - 2020-04-15
## Added
- Extensions field to graphql client.
# [6.24.4] - 2020-04-08
## Fixed
- Adds missing `@` in BillingMetrics client
# [6.24.3] - 2020-04-01
## Fixed
- [tracing] Fix `ErrorReport` object strings truncating (StackOverflow error in some cases).
- [tracing] Make `ctx.vtex.tracer` a required field on `IOContext`.
## Added
- [tracing] Add `fallbackSpanContext` method to `UserLandTracer`.
# [6.24.2] - 2020-03-31
- Workspaces sharing apps metainfo.
# [6.24.1] - 2020-03-31
- Bump version.
# [6.24.0] - 2020-03-31
# Changed
- Send events using `Courier` instead of `Colossus`.
# [6.23.1] - 2020-03-26
## Fixed
- Trace only 1% of the requests.
# [6.23.0] - 2020-03-26
## Added
- Tracing instrumentation.
# [6.22.0] - 2020-03-20
## Changed
- Updated `Billing Options` types
## Added
- Apps' Install API response type
- Skidder topic names on logs are not based on account anymore
## Fixed
- Fixed params for VBase list
# [6.21.0] - 2020-03-05
## Added
- createHttpsAgent helper function so devs can import it in their apps and use our agent
- httpsAgent added to instanceOptions so we can add the agent in the client's constructor
## Removed
- Https interceptor agent
# [6.20.0] - 2020-03-04
## Added
- Support for a external schema to be passed into graphql Service configuration.
# [6.19.0] - 2020-03-02
## Added
- Get `adminUserAuthToken` from header `X-Vtex-Credential`.
# [6.18.0] - 2020-02-27
## Added
- Adds stale while revalidating to apps get meta infos function
# [6.17.0] - 2020-02-18
## Added
- Injects `__SKIDDER_TOPIC_1` and `__SKIDDER_TOPIC_2` keys in logs
# [6.16.1] - 2020-02-17
## Changed
- Exponential timeout and backoff variables can now be set by request and not only by client.
## Fixed
- Fix revalidation for cached buffer responses.
# [6.16.0] - 2020-02-13
## Changed
- Removes slowRecorder from code
# [6.15.2] - 2020-02-13
## Added
- Payment Provider client
# [6.15.1] - 2020-02-10
## Fixed
- Fix `x-vtex-etag-control` set by SmartCacheDirective.
# [6.15.0] - 2020-02-06
## Added
- Add support for router binding header.
# [6.14.0] - 2020-02-06
# [6.13.1] - 2020-02-04
## Fixed
- Adds catalog Graphql client to IOClients
# [6.13.0] - 2020-02-03
# [6.12.1] - 2020-02-03
## Changed
- Make it usable outside of IO
# [6.12.0] - 2020-01-31
## Added
- Adds `catalogGraphQL` client
# [6.11.1] - 2020-01-30
## Fixed
- Export tenant data
# [6.11.0] - 2020-01-30
## Changed
- Update axios from 0.18.0 to 0.19.2
# [6.10.1] - 2020-01-29
## Fixed
- getAppsMetaInfos typings from Apps client
# [6.10.0] - 2020-01-29
## Changed
- Improve `cacheKey` performance and sort params in the key.
# [6.9.0] - 2020-01-29
## Added
- Adds new query to messages client
- Uses new resolver in Translatable resolver
# [6.8.1] - 2020-01-28
## Chore
- Increase query size limit from 1mb to 3mb.
## Fixed
- Settings format is now the same delivered by settings server.
# [6.8.0] - 2020-01-23
## Added
- New settings middleware.
- New directive in graphql for declaring route settings type.
# [6.7.1] - 2020-01-22
## Fixed
- Encodes Buffer with base64 to cache it correctly
# [6.7.0] - 2020-01-22
## Added
- `@deprecated` directive logs to Splunk when used. To avoid overflowing splunk with useless logs, we only log once at every minute
# [6.6.2] - 2020-01-16
## Added
- Parameters to customize exponential backoff delay and increase timeout at each retry.
## Changed
- Stop using `axios-retry` logic, implement retry manually.
# [6.6.1] - 2020-01-16
## Fixed
- Vbase `getJSON` typings. Do not return type `{}`
## Changed
- Do not rely on state for flushing `x-vtex-meta` headers
# [6.6.0] - 2020-01-16
# [6.6.0-beta] - 2020-01-15
## Changed
- Enables fast recorder
# [6.5.0] - 2020-01-15
## Changed
- Sets `x-vtex-meta` header _ONCE_ in the `recorder` middleware to tackle performance issues
# [6.4.1] - 2020-01-09
## Fixed
- Internal app path log in toolbelt
# [6.4.0] - 2020-01-09
## Added
- Allow getting segment data with default locale and currency from binding instead of tenant.
# [6.3.0] - 2020-01-08
## Added
- New route to get files from Apps with only the app name, account and workspace
# [6.2.2] - 2020-01-08
## Fixed
- Logic to get cancellable methods for cancellation token
# [6.2.1] - 2020-01-08
## Fixed
- There was a HUGE performance drop when setting `x-vtex-meta` header via `ctx.set` using an array. Joining in a single string solved the problem
# [6.2.0] - 2020-01-07
## Added
- Batches messages to be translated
# [6.1.7] - 2020-01-02
## Changed
- Added correct getFile function to Assets client
# [6.1.6] - 2019-12-17
## Changed
- When linking only one worker will be available
- Gracefull shutdown when receiving `sigterm` from master and child processes
## Fixed
- Remote debugger now debugs worker instead of master process
- @transltableV2 directive arguments
# [6.1.5] - 2019-12-12
# [6.1.4] - 2019-12-12
## Fixed
- Add binding to context when receiving header
# [6.1.3] - 2019-12-11
## Fixed
- Public routes now working
# [6.1.2] - 2019-12-11
# [6.1.1] - 2019-12-10
# [6.1.0] - 2019-12-09
# [6.0.0] - 2019-11-27
# [6.0.0-beta.12] - 2019-11-26
# [3.66.3] - 2019-11-26
## Removed
- Splunk log in clients to console.log only
# [3.66.2] - 2019-11-26
## Fixed
- Flag `fireEvent` in Messages `saveV2` should be optional
# [3.66.1] - 2019-11-25
## Fixed
- Checks if logger.warn is a function before calling it
# [3.66.0] - 2019-11-25
## Added
- Add binding information to HttpClient requests
# [3.65.4] - 2019-11-25
## Fixed
- Conflicts Resolver only use `comparableKeys` when objects owns them
# [3.65.3] - 2019-11-25
# Added
- Allows filter dependencies from app list
# [3.65.2] - 2019-11-25
## Added
- New attribute to messages API
# [3.65.1] - 2019-11-21
# [3.65.1-beta] - 2019-11-21
## Fixed
- Uses http in old routes
# [3.65.0] - 2019-11-21
## Added
- Error type `TooManyRequestsError` that returns status code 429
# [3.64.0] - 2019-11-19
## Added
- Uses https if request is from outside IO
## Changed
- Updates internal routing
# [3.63.0] - 2019-11-18
## Added
- Update Messages SaveArgsV2 interface
# [3.62.6] - 2019-11-14
## Fixed
- Removes `ctx.graphql` object sharing and make it have a request cycle duration
# [3.62.5] - 2019-11-11
## Changed
- Upgrades new error query format for splunk 72
## Fixed
- Fix "socket hang up" by preventing client request abortion after server response is finished or client response is completed.
- Fix cancellation error not being thrown if the request does not have metric.
# [3.62.4] - 2019-11-04
## Changed
- Removes tracing from graphqlruntime
# [3.62.3] - 2019-10-30
## Fixed
- stale getAppFile accepts MAJOR.x app name
# [3.62.2] - 2019-10-30
## Fixed
- Handle nullable nested objects in MineWinsConflictsResolver
# [3.62.1] - 2019-10-29
## Fixed
- Export error type RequestCancelledError in index
# [3.62.0] - 2019-10-29
## Added
- New scalar type and directive to sanitize strings
## Fixed
- Handle error without response in VBase getJSON calls
# [3.61.1] - 2019-10-29
## Fixed
- Throw error in `getAppsMetaInfos` method if `staleIfError`` is false.
# [3.60.0] - 2019-10-28
# [3.59.2] - 2019-10-24
## Fixed
- Handle nullable arrays passed to MineWinsConflictsResolver
# [3.59.1] - 2019-10-18
## Fixed
- Correctly handle errors caused by requests cancelled with cancellation token
# [3.59.0] - 2019-10-16
# [3.58.0] - 2019-10-14
## Added
- **environment** arg to `JanusClient`.
# [3.57.1] - 2019-10-11
# Added
- Apps install accepts `infra:service-*` apps
# [3.56.0] - 2019-10-10
## Added
- New getAppMetaInfos function with diskCache fallback
- Add MineWinsConflict resolver logic to VBase client
- New getAppFiles with fallback strategies
# [3.55.4-beta] - 2019-10-09
# [3.55.3] - 2019-10-09
## Fixed
- Messages Save v2 interface
# [3.55.2] - 2019-10-01
## Fixed
- Warnings logged as errors
# [3.55.1] - 2019-09-27
# [3.55.0] - 2019-09-25
# [3.54.1] - 2019-09-23
## Added
- Tenant client added
# [3.54.0] - 2019-09-23
## Changed
- Logger client instantiated in service-node
- `@translatableV2` directive uses language from context instead of making an IO
# [3.53.0] - 2019-09-16
## Changed
- TranslatableV2 support for context and from in message encoding
## Changed
- Resolve context in message at directive translatableV2
# [3.52.0] - 2019-09-16
## Added
- Add saveV2 method in MessagesGraphQL client
# [3.51.1] - 2019-09-13
## Fixed
- Add host to IOContext
# [3.51.0] - 2019-09-13
## Added
- Forward x-forwarded-host header.
- Add vary x-forwarded-host.
# [3.50.2] - 2019-09-13
# [3.50.2-beta] - 2019-09-12
## Added
- Add `platform` to `ctx`
# [3.50.1] - 2019-09-11
# [3.50.0] - 2019-09-11
# [3.50.0-beta] - 2019-09-11
## Added
- Export list of all available public domains
# [3.49.0] - 2019-09-10
# [3.48.3] - 2019-09-09
## Fixed
- Added logger middleware to events pipeline.
# [3.48.2] - 2019-09-04
# [3.48.1] - 2019-09-04
# [3.48.1-beta.0] - 2019-09-04
# [3.48.1-beta] - 2019-09-03
# [3.48.0] - 2019-09-03
## Added
- Route for testing apps on `builder-hub`.
# [3.47.2] - 2019-09-02
## Fixed
- Update missing changelog.
- Remove if statements on existence of ctx.vtex.logger
# [3.47.1] - 2019-08-29
## Fixed
- Fix ramda typings errors.
# [3.47.0] - 2019-08-29
## Added
- Add parameter `skipSemVerEnsure` in app publish.
# [3.46.0] - 2019-08-26
## Added
- Create event handler similar to http requests, providing vtex clients, timings and error logs.
# [3.46.0-beta.2] - 2019-08-26
# [3.46.0-beta.1] - 2019-08-26
# [3.46.0-beta.0] - 2019-08-26
# [3.46.0-beta] - 2019-08-26
# [3.45.0] - 2019-08-22
# [3.44.3] - 2019-08-20
## Fixed
- Stop ignoring 0ms metrics.
- Rename GraphQL middlewares to resolve metrics conflict.
## Changed
- Stop measuring event-loop overhead.
# [3.44.2] - 2019-08-19
# [3.44.1] - 2019-08-19
## Fixed
- Truncate long GraphQL errors so they can be sent to Splunk.
# [3.44.0] - 2019-08-19
## Changed
- Deprecate Colossus logger completely, using stdout instead.
# [3.43.0] - 2019-08-19
## Changed
- Properly times metrics, considering total elapsed and code run after `await next()`.
- Avoid broken metrics when a middleware throws.
- Do not batch metrics for unsuccessful handlers and middlewares.
- Rename `http-handler-success-*` to `http-handler-*` and only count non-success statuses.
# [3.42.0] - 2019-08-19
## Changed
- Disable caching if response varies with session. (Before, we incorrectly disabled caching if _we had a session token_)
# [3.41.1] - 2019-08-15
# [3.41.1-beta] - 2019-08-15
# [3.41.0] - 2019-08-13
# [3.40.1] - 2019-08-12
## Fixed
- Typo on segment path.
# [3.40.0] - 2019-08-09
# [3.39.0] - 2019-08-09
# [3.38.0] - 2019-08-08
## Added
- Inside the class `Translatable`, allow `string` arrays to be translated too.
# [3.37.2] - 2019-08-08
# [3.37.1] - 2019-08-08
# [3.37.0] - 2019-08-08
# [3.36.1] - 2019-08-08
# [3.36.0] - 2019-08-08
# [3.35.0] - 2019-08-01
## Fixed
- Use POST requests for queries only in the `MessagesGraphQL` client, not in the `GraphQLClient`.
# [3.34.1] - 2019-07-31
# [3.34.0] - 2019-07-30
## Fixed
- Create middleware that deletes headers passed to make cache behavior consistent regarldess of CDN.
# [3.33.1] - 2019-07-29
## Changed
- `getAccountData` now requires to pass the param `VtexIdclientAutCookie`.
# [3.33.0] - 2019-07-26
# [3.32.2] - 2019-07-24
## Added
- Accept `VtexIdclientAutCookie` as param to `getAccountData`.
# [3.32.1] - 2019-07-23
## Fixed
- Revert changes made in release 3.31.0.
# [3.32.0] - 2019-07-22
## Added
- Function to check resource access in License Manager Client
# [3.31.0] - 2019-07-15
## Changed
- Do not separate messages `translate` queries in batches. Instead, use a single POST request for all translations.
# [3.30.2] - 2019-07-10
# [3.30.1] - 2019-07-10
# [3.30.0] - 2019-07-09
# [3.29.1] - 2019-07-09
# [3.29.0] - 2019-07-09
# [3.28.1] - 2019-07-08
# [3.28.0] - 2019-07-08
# [3.27.2] - 2019-07-08
# [3.27.1] - 2019-07-02
## Added
- Http head request
- VBase get file metadata
# [3.27.0] - 2019-06-27
# [3.26.5] - 2019-06-27
# [3.26.4] - 2019-06-27
## Fixed
- Removal of circular references in logs.
# [3.26.3] - 2019-06-24
# [3.26.2] - 2019-06-24
# [3.26.1] - 2019-06-21
## Fixed
- Problem with `recorder` inside `context` - Assure that `recorder` is inside `context` at the right moment.
# [3.26.0] - 2019-06-19
# [3.25.0] - 2019-06-19
# [3.24.1] - 2019-06-17
## Fixed
- Fixes `Please use a named function as handler for better metrics` warnings
# [3.24.0] - 2019-06-14
# [3.24.0-beta.0] - 2019-06-13
# [3.24.0-beta] - 2019-06-13
## Added
- Propagate `x-vtex-session` across requests.
# [3.23.0] - 2019-06-13
## Added
- Enable environment selection, e.g beta, when cookie `vtex-commerce-env` is set
# [3.22.0] - 2019-06-06
## Added
- Typings for Free and Paid Billing Options
- Typings for Fixed and Metric-Based Calculation Items
- Type guards for Billing Options
# [3.21.3] - 2019-06-04
# [3.21.2] - 2019-05-27
# [3.21.1] - 2019-05-27
# [3.21.0] - 2019-05-27
# [3.20.0] - 2019-05-27
# [3.20.0-beta] - 2019-05-25
# [3.19.0] - 2019-05-24
# [3.18.2] - 2019-05-23
# [3.18.1] - 2019-05-21
# [3.18.0] - 2019-05-20
## Added
- Generate `manifest.json` schema from TypeScript definition.
# [3.17.0] - 2019-05-20
## Added
- GraphQL Client
# [3.16.0] - 2019-05-17
# [3.15.1] - 2019-05-17
## Changed
- Change type of `buildFeatures` to `Record<string, string[]>`
# [3.15.0] - 2019-05-13
# [3.14.1] - 2019-05-10
# [3.14.1-beta] - 2019-05-09
# [3.14.0] - 2019-05-09
# [3.13.1] - 2019-05-09
# [3.13.0] - 2019-05-08
## Changed
- Made query string param serialization `repeat` by default. This means arrays, which were previously encoded as e.g. `files[]=a&files[]=b` become `files=a&files=b`.
## Added
- Implement Settings client for `vtex.settings-server`.
# [3.12.1] - 2019-05-08
# [3.12.0] - 2019-05-07
## Added
- Add "buildFeatures" inside "manifest".
# [3.11.0] - 2019-05-06
# [3.10.0] - 2019-05-06
## Changed
- Add caller, params and query to error logs
- Relax error typing and capture stack automatically
# [3.9.2] - 2019-05-02
## Fixed
- Usage of `routes.Links` function in the `routes.Unlink` function (Apps client)
# [3.9.1] - 2019-05-02
# [3.9.0] - 2019-04-30
# [3.8.2-beta] - 2019-04-30
# [3.8.1] - 2019-04-26
# [3.8.0] - 2019-04-26
## Changed
- Add `adminUserAuthToken` (from cookie `VtexIdclientAutCookie`) and `storeUserAuthToken` (from cookie `VtexIdclientAutCookie_${account}`) to `ctx.vtex`
# [3.7.0] - 2019-04-25
## Changed
- Add LicenseManager client
- Add Session client
- Restructure HttpClient
- Implement IOClient
- Implement IOClient subclasses
- Port all native clients
- Reduced default timeout to 1s
- Added default `params` to HttpClient
# [3.6.1] - 2019-04-24
# [3.6.0] - 2019-04-24
# [3.5.2-beta] - 2019-04-24
# [3.5.1] - 2019-04-23
# [3.5.0] - 2019-04-22
## Added
- Add native error and warning classes and log these appropriately.
# [3.4.4] - 2019-04-22
# [3.4.4-beta] - 2019-04-19
## Changed
- Fixed host reference for Billing metrics sending
# [3.4.3] - 2019-04-18
# [3.4.2] - 2019-04-18
# [3.4.1] - 2019-04-18
# [3.4.0] - 2019-04-18
# [3.3.1] - 2019-04-16
# [3.3.1-beta.1] - 2019-04-17
# [3.3.1-beta.0] - 2019-04-17
# [3.3.1-beta] - 2019-04-15
# [3.3.0] - 2019-04-11
## Added
- Messages `saveTransalation` method
# [3.2.4] - 2019-04-10
# [3.2.3] - 2019-04-10
# [3.2.2] - 2019-04-09
# [3.2.1] - 2019-04-09
## Fixed
- Security hole as `Authorization`, `Proxy-Authorization` and `vtexIdClientAutCookie` headers were being sent to graphql errors
# [3.2.0] - 2019-04-09
# [3.2.0-beta.7] - 2019-04-09
# [3.2.0-beta.6] - 2019-04-09
# [3.2.0-beta.5] - 2019-04-09
# [3.2.0-beta.4] - 2019-04-08
# [3.2.0-beta.3] - 2019-04-08
## Added
- `segment.getSegment` and `segment.getSegmentByToken`
# [3.2.0-beta.2] - 2019-04-08
# [3.2.0-beta.1] - 2019-04-08
# [3.2.0-beta.0] - 2019-04-08
# [3.2.0-beta] - 2019-04-08
## Added
- Option `forceMaxAge` option to `HttpClient` request config. This allows certain requests to forceably be cached for `forceMaxAge` seconds, regardless of the responses' `Cache-control` header, as long as status is 200.
# [3.1.2] - 2019-04-09
## Changed
- Makes errors compliant to [apollo's specification](https://www.apollographql.com/docs/apollo-server/features/errors)
- Makes it possible to use graphql handler with a scary warning
# [3.1.2-beta.0] - 2019-04-08
# [3.1.2-beta] - 2019-04-08
# [3.1.0] - 2019-04-04
# [3.1.0-beta.0] - 2019-04-04
# [3.1.0-beta] - 2019-04-04
# [3.0.16] - 2019-04-04
# [3.0.16-beta.0] - 2019-04-04
# [3.0.16-beta] - 2019-04-04
# [3.0.15] - 2019-04-03
## Changed
- Added type inference for `IOClients.getOrSet` method. No need to type instantiations like
```ts
export class IOClients {
public get logger(): Logger {
return this.getOrSet('logger', Logger)
}
}
```
You can just do
```ts
export class IOClients {
public get logger() {
return this.getOrSet('logger', Logger)
}
}
```
instead
# [3.0.14] - 2019-04-03
# [3.0.14-beta.0] - 2019-04-03
# [3.0.14-beta] - 2019-04-03
# [3.0.13] - 2019-04-03
# [3.0.12] - 2019-04-02
# [3.0.11] - 2019-03-31
# [3.0.11-beta.7] - 2019-03-29
# [3.0.11-beta.6] - 2019-03-29
# [3.0.11-beta.5] - 2019-03-29
# [3.0.11-beta.4] - 2019-03-29
# [3.0.11-beta.3] - 2019-03-29
# [3.0.11-beta.2] - 2019-03-29
# [3.0.11-beta.1] - 2019-03-29
# [3.0.11-beta.0] - 2019-03-29
# [3.0.11-beta] - 2019-03-29
# [3.0.10] - 2019-03-28
# [3.0.9] - 2019-03-28
## Changed
- Expose more details on all errors (e.g. operationId, requestId, query source, variables).
# [3.0.9-beta.4] - 2019-03-28
# [3.0.9-beta.3] - 2019-03-28
# [3.0.9-beta.2] - 2019-03-28
# [3.0.9-beta.1] - 2019-03-28
# [3.0.9-beta.0] - 2019-03-28
# [3.0.9-beta] - 2019-03-28
# [3.0.8] - 2019-03-28
# [3.0.8-beta] - 2019-03-28
## Changed
- Conflate 2xx and 5xx status labels to success and error respectively.
- Adds `graphql-operation` metric that considers if _any_ resolver had errors, with two dimensions: success and error
- Logs each resolver error individually and add request information
- Stop logging successful route handlers
- Add single hardcoded retry for sending error logs
- Prepare for `graphql` route id (deprecating `__graphql`)
- Disallow declaration of `graphql` as http route handler
# [3.0.7-beta.0] - 2019-03-28
# [3.0.7] - 2019-03-28
## Added
- tsErrorsAsWarnings parameter for the `linkApp` and `relinkApp` methods of the `Builder` class
# [3.0.7-beta] - 2019-03-28
# [3.0.6] - 2019-03-28
# [3.0.5] - 2019-03-27
# [3.0.4] - 2019-03-27
# [3.0.3] - 2019-03-27
## Added
- Implement new Service() wrapper and port graphql route generation from service-runtime-node.
# [3.0.3-beta.4] - 2019-03-27
# [3.0.3-beta.3] - 2019-03-27
# [3.0.3-beta.2] - 2019-03-27
# [3.0.3-beta.1] - 2019-03-26
# [3.0.3-beta.0] - 2019-03-26
# [3.0.1-beta.28] - 2019-03-26
# [3.0.1-beta.27] - 2019-03-26
# [3.0.1-beta.26] - 2019-03-26
# [3.0.1-beta.25] - 2019-03-26
# [3.0.1-beta.24] - 2019-03-26
# [3.0.1-beta.23] - 2019-03-26
# [3.0.1-beta.22] - 2019-03-26
# [3.0.1-beta.21] - 2019-03-26
# [3.0.1-beta.20] - 2019-03-25
# [3.0.1-beta.19] - 2019-03-25
# [3.0.1-beta.18] - 2019-03-25
# [3.0.1-beta.17] - 2019-03-21
# [3.0.1-beta.16] - 2019-03-21
# [3.0.1-beta.15] - 2019-03-21
# [3.0.1-beta.14] - 2019-03-21
# [3.0.1-beta.13] - 2019-03-20
# [3.0.1-beta.12] - 2019-03-20
# [3.0.1-beta.11] - 2019-03-20
# [3.0.0-beta.16] - 2019-03-20
# [3.0.0-beta.15] - 2019-03-20
# [3.0.0-beta.14] - 2019-03-20
# [3.0.0-beta.13] - 2019-03-20
# [3.0.0-beta.12] - 2019-03-20
# [3.0.0-beta.11] - 2019-03-20
# [3.0.0-beta.10] - 2019-03-19
# [3.0.0-beta.9] - 2019-03-19
# [3.0.0-beta.8] - 2019-03-18
# [3.0.0-beta.7] - 2019-03-18
# [3.0.0-beta.6] - 2019-03-18
# [3.0.0-beta.5] - 2019-03-18
# [3.0.0-beta.4] - 2019-03-17
# [3.0.0-beta.3] - 2019-03-17
# [3.0.0-beta.2] - 2019-03-17
# [3.0.0-beta.1] - 2019-03-17
# [3.0.0-beta.0] - 2019-03-17
# [3.0.0-beta] - 2019-03-17
# [2.4.0] - 2019-03-16
# [2.3.6] - 2019-03-16
# [2.3.6-beta] - 2019-03-16
# [2.3.5] - 2019-03-14
# [2.3.4] - 2019-03-14
## Changed
- Add production dimension to all metrics
# [2.3.3] - 2019-03-13
# [2.3.2] - 2019-03-13
# [2.3.1] - 2019-03-13
# [2.3.0] - 2019-03-13
# [2.3.0-beta.3] - 2019-03-13
# [2.3.0-beta.2] - 2019-03-13
# [2.3.0-beta.1] - 2019-03-13
# [2.3.0-beta.0] - 2019-03-13
# [2.3.0-beta] - 2019-03-13
## Changed
- Remove production from MetricsAccumulator methods and add cacheHits
# [2.2.0] - 2019-03-12
# [2.2.0-beta.0] - 2019-03-11
# [2.2.0-beta] - 2019-03-11
## Changed
- Only retry safe requests
- Add metrics for proxy timeout and retries
- Add `metric` config to clients requests
- Add `concurrency` option to HttpClient to limit amount of parallel requests
# [2.1.0] - 2019-03-07
## Changed
- Change default retry behaviour to only retry on network error once
- Accept retryConfig on each HttpClient
# [2.1.0-beta.1] - 2019-02-28
# [2.1.0-beta.0] - 2019-02-27
# [2.1.0-beta] - 2019-02-27
## Changed
- Added new required parameter to create a new workspace on Workspaces API.
# [1.9.0] - 2019-02-25
## Added
- Functions that call new Apps API for dependency resolution.
# [1.8.3] - 2019-02-22
## Changed
- Updated App Manifest types
# [1.8.2] - 2019-02-22
# [1.8.2-beta] - 2019-02-22
# [1.8.1] - 2019-02-13
# [1.8.1-beta] - 2019-02-12
# [1.8.0-beta] - 2019-02-12
# [1.7.0] - 2019-02-12
## Added
- segmentToken and sessionToken to IOContext type definition
# [1.7.0-beta] - 2019-02-12
# [1.6.0] - 2019-01-25
# [1.5.4] - 2019-01-17
## Added
- protected context in favor of private one in IODataSource
# [1.5.3] - 2019-01-11
## Fixed
- IOContext types mismatch with service-runtime-node
# [1.5.2] - 2018-11-27
# [1.5.1] - 2018-10-31
# [1.5.0] - 2018-10-31
# [1.4.0] - 2018-10-29
# [1.2.0] - 2018-10-16
# [1.1.0] - 2018-10-15
# [1.0.0] - 2018-10-08
# [1.0.0-beta.16] - 2018-10-08
# [1.0.0-beta.15] - 2018-09-28
# [1.0.0-beta.14] - 2018-09-25
# [1.0.0-beta.13] - 2018-09-25
# [1.0.0-beta.12] - 2018-09-25
# [1.0.0-beta.11] - 2018-09-25
# [1.0.0-beta.10] - 2018-09-25
# [1.0.0-beta.9] - 2018-09-25
# [1.0.0-beta] - 2018-09-21
## Added
- Added changelog :grimacing:.
- Added MetricsAccumulator
- Added Metrics support in HttpClient
## Changed
- Lint the whole damn thing.
- Update all dependencies.
# [0.48.0] - 2018-09-21
## Changed
- `HttpClient` now adds `'Accept-Encoding': 'gzip'` header by default.
[7.0.0]: https://github.com/vtex/node-vtex-api/compare/v7.0.0...v6.49.6
[6.45.15]: https://github.com/vtex/node-vtex-api/compare/v6.45.14...v6.45.15
[6.45.14]: https://github.com/vtex/node-vtex-api/compare/v6.45.13...v6.45.14
[6.45.13]: https://github.com/vtex/node-vtex-api/compare/v6.45.12...v6.45.13
[6.45.22]: https://github.com/vtex/node-vtex-api/compare/v6.45.21...v6.45.22
[6.45.21]: https://github.com/vtex/node-vtex-api/compare/v6.45.21-beta.2...v6.45.21
[6.45.21-beta.2]: https://github.com/vtex/node-vtex-api/compare/v6.45.21-beta.1...v6.45.21-beta.2
[6.45.21-beta.1]: https://github.com/vtex/node-vtex-api/compare/v6.45.21-beta.0...v6.45.21-beta.1
[6.45.21-beta.0]: https://github.com/vtex/node-vtex-api/compare/v6.45.21-beta...v6.45.21-beta.0
[6.45.21-beta]: https://github.com/vtex/node-vtex-api/compare/v6.45.20...v6.45.21-beta
[6.45.20]: https://github.com/vtex/node-vtex-api/compare/v6.45.20-beta...v6.45.20
[6.45.20-beta]: https://github.com/vtex/node-vtex-api/compare/v6.45.19...v6.45.20-beta