Releases: safe-global/safe-client-gateway
Releases · safe-global/safe-client-gateway
v1.37.0
What's Changed
- Map
TransactionInfo
according toTransfer['type']
by @iamacook in #1477 - Instantiate an
AuthPayload
from request by @iamacook in #1478 - build(deps-dev): bump supertest from 6.3.4 to 7.0.0 by @dependabot in #1481
- build(deps-dev): bump typescript-eslint from 7.7.1 to 7.8.0 by @dependabot in #1484
- build(deps): bump postgres from 3.4.3 to 3.4.4 by @dependabot in #1482
- build(deps): bump zod from 3.23.3 to 3.23.5 by @dependabot in #1485
- build(deps): bump viem from 2.9.25 to 2.9.29 by @dependabot in #1487
- Extract allowed apps to SwapOrderHelper by @fmrsabino in #1479
- Restrict Swap apps in Confirmation View by @fmrsabino in #1480
- Add native currency support to SwapOrderHelper by @fmrsabino in #1491
- Perform lower case comparison for native currency by @fmrsabino in #1493
- Change AddressInfo empty string values to explicit nulls by @hectorgomezv in #1494
Full Changelog: v1.36.0...v1.37.0
v1.36.0
What's Changed
- Add QueuesApi datasource by @hectorgomezv in #1412
- Return non formatted Order data by @fmrsabino in #1426
- Add queues domain layer by @hectorgomezv in #1418
- Add ISwapsRepository interface by @fmrsabino in #1431
- Extract SetPreSignatureDecoder to its own module by @fmrsabino in #1433
- Rename SwapsModule by @fmrsabino in #1432
- Add SwapOrderHelper by @fmrsabino in #1434
- Fix SwapOrderMapper dependency injection by @fmrsabino in #1436
- Add support for Swap orders in tx confirmation route by @fmrsabino in #1435
- Fix
no-case-declarations
instances by @iamacook in #1429 - Simplify
AddressInfo
entity types by @iamacook in #1430 - Explicitly set
iat
claim of token by @iamacook in #1414 - Remove unnecessary module imports by @fmrsabino in #1438
- Rename Order.class to Order.orderClass by @fmrsabino in #1439
- build(deps): bump viem from 2.9.19 to 2.9.25 by @dependabot in #1443
- build(deps): bump @safe-global/safe-deployments from 1.33.0 to 1.34.0 by @dependabot in #1442
- build(deps): bump zod from 3.22.4 to 3.23.3 by @dependabot in #1446
- build(deps): bump the nest-js-core group with 4 updates by @dependabot in #1441
- Change AMQP prefetch configuration by @hectorgomezv in #1440
- build(deps-dev): bump typescript-eslint from 7.7.0 to 7.7.1 by @dependabot in #1445
- Migrate
MultisigTransaction
tozod
by @iamacook in #1385 - Add queues routes layer by @hectorgomezv in #1437
- Add const assertions to order.builder by @fmrsabino in #1447
- Forward parsed fullAppData by @fmrsabino in #1448
- Migrate
TransactionType
tozod
by @iamacook in #1396 - Remove
ajv
andajv-formats
by @iamacook in #1397 - Align usage of page schema factory by @iamacook in #1449
- Forward the Order receiver by @fmrsabino in #1452
- Add AMQP default configuration values by @hectorgomezv in #1453
- Forward the Order owner by @fmrsabino in #1455
- Update docker-compose redis image by @hectorgomezv in #1451
- Remove unnecessary events message parsing by @hectorgomezv in #1454
- Rename
JwtRepository
toAuthRepository
by @iamacook in #1456 - Include not listed Safe Apps on transaction mappings by @hectorgomezv in #1450
- Add onlyListed to CacheRouter.getSafeAppsCacheDir argument list by @hectorgomezv in #1462
- Allow Swap App restriction by @fmrsabino in #1458
- Fix
no-useless-escape
instances by @iamacook in #1463 - Populate
Request['auth']
in AuthGuard by @iamacook in #1459 - Make
MultisigTransaction['value']
non-nullable by @iamacook in #1471 - Add X Layer fiat prices configuration by @hectorgomezv in #1467
- Fix
@typescript-eslint/await-thenable
instances by @iamacook in #1464 - Fix
@typescript-eslint/no-base-to-string
instances by @iamacook in #1465 - Remove locking feature flag by @iamacook in #1472
- Remove relay feature flag by @iamacook in #1473
- Remove FF_RELAY from .env.sample by @hectorgomezv in #1475
- Use Docker Registry cache backend by @fmrsabino in #1474
- Merge balance entities and schemas by @iamacook in #1476
Full Changelog: v1.35.0...v1.36.0
v1.35.0
What's Changed
- Add
/views/transaction-confirmation
endpoint by @fmrsabino in #1419 - Add high refresh rate token prices feature by @hectorgomezv in #1424
- Add
chain_id
claim to token by @iamacook in #1416 - Configurable native coin prices TTL by @hectorgomezv in #1425
- Add expiration time limit by @iamacook in #1413
Full Changelog: v1.34.0...v1.35.0
v1.34.0
What's Changed
- Fix token used for fee label by @fmrsabino in #1391
- Rename wallet address param and mark it optional by @iamacook in #1389
- Extract Alerts configuration by @fmrsabino in #1372
- build(deps-dev): bump eslint from 8.57.0 to 9.0.0 by @dependabot in #1380
- Add error messages for custom validation schemas by @iamacook in #1384
- Migrate
TransferSchema
tozod
by @iamacook in #1375 - Add surplusLabel to Order by @fmrsabino in #1395
- Increase max overview amount by @iamacook in #1392
- Remove unnecessary casting of
previewTransactionDto
by @iamacook in #1398 - Remove unnecessary address checksumming by @iamacook in #1400
- User
0x${string}
types throughout relay by @iamacook in #1399 - Split auth domain by @iamacook in #1388
- Fix
no-unsafe-optional-chaining
instances by @iamacook in #1402 - Omit erroneous overview elements by @iamacook in #1393
- Move relay count CRUD to datasource by @iamacook in #1401
- Add support for
presignaturePending
orders by @fmrsabino in #1404 - build(deps-dev): bump @types/node from 20.12.2 to 20.12.7 by @dependabot in #1407
- build(deps): bump viem from 2.9.6 to 2.9.18 by @dependabot in #1408
- build(deps-dev): bump typescript-eslint from 7.6.0 to 7.7.0 by @dependabot in #1409
- build(deps-dev): bump typescript from 5.4.4 to 5.4.5 by @dependabot in #1410
- Extract JWT configuration by @fmrsabino in #1405
- build(deps): bump node from 20.12.1-alpine to 20.12.2-alpine by @dependabot in #1406
- Rename GetDataDecodedDto to TransactionDataDto by @fmrsabino in #1417
- Cookie-based authenticated sessions by @iamacook in #1403
- Add Scroll prices provider configuration by @hectorgomezv in #1423
Full Changelog: v1.33.0...v1.34.0
v1.33.0
What's Changed
- Add
JwtModule
datasource by @iamacook in #1355 - Add default URI of locking service by @iamacook in #1359
- Remove
JwtModule
from global scope and validation of its env. vars. by @iamacook in #1363 - Add
AuthApiModule
datasource by @iamacook in #1357 - Add
AuthDomainModule
by @iamacook in #1361 - Add
SiweMessageSchema
by @iamacook in #1360 - Make ConfigApiModule non-global by @fmrsabino in #1365
- Make TransactionApiModule non-global by @fmrsabino in #1366
- Remove DomainModule by @fmrsabino in #1367
- Migrate
RelayLegacyDto
tozod
by @iamacook in #1362 - Add NODE_ENV environment variable by @hectorgomezv in #1364
- Improve SiWe nonce generation by @iamacook in #1373
- build(deps-dev): bump typescript from 5.4.3 to 5.4.4 by @dependabot in #1377
- build(deps): bump winston from 3.12.0 to 3.13.0 by @dependabot in #1376
- build(deps): bump @nestjs/config from 3.2.0 to 3.2.2 by @dependabot in #1379
- build(deps): bump @nestjs/swagger from 7.3.0 to 7.3.1 by @dependabot in #1378
- Improve robustness of
RelayLegacyDtoSchema
by @iamacook in #1374 - build(deps): bump node from 20.12.0-alpine to 20.12.1-alpine by @dependabot in #1381
- Extract schema validation logic by @fmrsabino in #1371
- Add
AuthController
by @iamacook in #1368 - Enable Email Feature for Subscription Controller tests by @fmrsabino in #1386
- Increase auth nonce entropy by @iamacook in #1383
- Add
AuthGuard
by @iamacook in #1369 - Rename surplusLabel to feeLabel by @fmrsabino in #1390
Full Changelog: v1.32.0...v1.33.0
v1.32.0
What's Changed
- Add Swap Order UID to SwapOrderTransactionInfo by @fmrsabino in #1341
- Add Explorer URI for Order by @fmrsabino in #1342
- build(deps): bump the nest-js-core group with 4 updates by @dependabot in #1343
- build(deps-dev): bump @types/node from 20.11.26 to 20.11.30 by @dependabot in #1344
- build(deps-dev): bump typescript from 5.4.2 to 5.4.3 by @dependabot in #1345
- build(deps-dev): bump @typescript-eslint/eslint-plugin from 7.2.0 to 7.4.0 by @dependabot in #1346
- build(deps): bump nestjs-cls from 4.2.1 to 4.3.0 by @dependabot in #1347
- build(deps): bump viem from 2.8.13 to 2.9.6 by @dependabot in #1351
- build(deps-dev): bump ts-jest from 29.1.1 to 29.1.2 by @dependabot in #1352
- build(deps): bump @nestjs/serve-static from 4.0.1 to 4.0.2 by @dependabot in #1354
- build(deps): bump reflect-metadata from 0.2.1 to 0.2.2 by @dependabot in #1353
- build(deps): bump the nest-js-core group with 4 updates by @dependabot in #1350
- Add support for decoding Swap Orders in Multisends by @fmrsabino in #1348
- build(deps): bump node from 20.11.1-alpine to 20.12.0-alpine by @dependabot in #1349
- Allow decoding of
multiSend
transactions
with emptydata
by @iamacook in #1358 - Set Cache-Control to no-cache by @fmrsabino in #1356
Full Changelog: v1.31.0...v1.32.0
v1.31.0
What's Changed
- Migrate
SafeList
tozod
by @iamacook in #1311 - Migrate configuration validation to
zod
by @iamacook in #1313 - Migrate
Singleton
tozod
by @iamacook in #1312 - Fix Singleton.deployer schema requirement by @fmrsabino in #1316
- Fix missing path
safeAddress
param on Swagger locking docs by @iamacook in #1318 - Migrate Token to zod by @hectorgomezv in #1317
- build(deps-dev): bump @types/lodash from 4.14.202 to 4.17.0 by @dependabot in #1324
- build(deps): bump winston from 3.11.0 to 3.12.0 by @dependabot in #1325
- build(deps): bump nestjs-cls from 4.1.0 to 4.2.1 by @dependabot in #1326
- build(deps): bump viem from 2.8.0 to 2.8.13 by @dependabot in #1327
- build(deps): bump the nest-js-core group with 4 updates by @dependabot in #1322
- Migrate
CreationTransaction
tozod
by @iamacook in #1269 - Migrate
DeleteSafeDelegateDto
tozod
by @iamacook in #1314 - Change OpenAPI resource location by @fmrsabino in #1329
- Add optional debugging logs when retrieving transactions history by @hectorgomezv in #1330
- Add additional timestamps to transaction history logs by @hectorgomezv in #1335
- Migrate
AddRecoveryModuleDto
tozod
by @iamacook in #1320 - Migrade
ModuleTransaction
tozod
by @iamacook in #1319 - Migrate
GetEstimationDto
tozod
by @iamacook in #1331 - Migrate
UpdateMessageSignatureDto
tozod
by @iamacook in #1334 - Migrate
Safe
to zod by @iamacook in #1333 - Merge Order entity and schema files by @fmrsabino in #1337
- Improve Order OpenAPI documentation by @fmrsabino in #1336
- Change type and validate
Rank['position']
as anumber
by @iamacook in #1339 - Migrate
ProposeTransactionDto
tozod
by @iamacook in #1332 - Add
GET
/v1/safes
overview endpoint by @iamacook in #1129 - Change rank route by @iamacook in #1340
- Add filledPercentage to SwapOrderTransactionInfo by @fmrsabino in #1338
- Migrate
Message
/MessageConfirmation
tozod
by @iamacook in #1315
Full Changelog: v1.30.0...v1.31.0
v1.30.0
What's Changed
- Unify readonly class variables name convention by @hectorgomezv in #1238
- Move
proposer
fromexecutionInfo
todetailedExecutionInfo
by @iamacook in #1234 - Pass Tenderly headers correctly by @iamacook in #1241
- Add support for Database certificate pinning by @fmrsabino in #1235
- Make Zerion balances icons nullable by @hectorgomezv in #1249
- Read CA path only if set by @fmrsabino in #1255
- Add SetPreSignatureDecoder by @fmrsabino in #1239
- build(deps): bump viem from 2.0.3 to 2.7.19 by @dependabot in #1244
- Encode mock event hashes by @iamacook in #1258
- Guard adding/removing recovery contracts by @iamacook in #1247
- Fix Zerion API collectibles pagination on null next page by @hectorgomezv in #1259
- Bump Yarn from 4.0.2 to 4.1.1 by @fmrsabino in #1263
- Align and validate
ILockingApi
return types by @iamacook in #1248 - Improve
ZodErrorFilter
to only return first union error by @iamacook in #1256 - Clarify transfers to self in relaying error message by @iamacook in #1250
- Migrate
CreateDelegateDto
tozod
by @iamacook in #1262 - Convert
Chain
validation to usezod
by @iamacook in #1236 - Make Chain.chainLogoUri nullable by @hectorgomezv in #1273
- Migrate
DeleteTransactionDto
validation tozod
by @hectorgomezv in #1266 - Add Chain.chainLogoUri default value by @hectorgomezv in #1274
- Add test for
DeleteTransactionDtoSchema
by @iamacook in #1277 - Migrate
Backbone
validation tozod
by @iamacook in #1252 - Migrate
DeleteDelegateDto
validation tozod
by @hectorgomezv in #1265 - Make CreateDelegateDto.safe nullable by @hectorgomezv in #1275
- Migrate
AddConfirmationDto
validation tozod
by @iamacook in #1253 - Migrate
Alert
validation tozod
by @iamacook in #1254 - Migrate
Balance
validation tozod
by @iamacook in #1257 - Migrate
Collectible
tozod
by @iamacook in #1260 - Migrate
Delegate
tozod
by @iamacook in #1270 - Pass network request arguments in an object by @iamacook in #1251
- Change relay-related errors to throw client-side errors by @iamacook in #1281
- build(deps-dev): bump @typescript-eslint/eslint-plugin from 7.1.1 to 7.2.0 by @dependabot in #1283
- build(deps): bump viem from 2.7.19 to 2.8.0 by @dependabot in #1284
- build(deps): bump @nestjs/swagger from 7.2.0 to 7.3.0 by @dependabot in #1285
- build(deps-dev): bump @types/node from 20.11.20 to 20.11.26 by @dependabot in #1287
- Migrate
Contract
tozod
by @iamacook in #1261 - build(deps-dev): bump typescript from 5.3.3 to 5.4.2 by @dependabot in #1282
- Narrow post delegates types by @hectorgomezv in #1279
- Convert Order entity to Zod by @fmrsabino in #1280
- Implement proposed return types of leaderboard by @iamacook in #1278
- Update locking API network interface by @iamacook in #1293
- Only allow enabling/disabling recovery alerts for modules of given Safe by @iamacook in #1267
- Migrate
SafeApp
tozod
by @hectorgomezv in #1296 - Add tokenBuilder decimals max/min limits by @hectorgomezv in #1297
- Allow relaying of all ERC-20 methods by @iamacook in #1288
- Update and add test for
ChainSchema
and sub-schemas by @iamacook in #1276 - Migrate
CreateMessageDto
tozod
by @iamacook in #1264 - Add test coverage for
ILockingApi['getRank' | 'getLeaderboard']
by @iamacook in #1295 - Coerce order amounts to bigint by @fmrsabino in #1298
- Differentiate error codes depending on validation source by @iamacook in #1294
- Migrate
GetDataDecodedDto
tozod
and narrow types by @iamacook in #1289 - Add support for decoding CoW Swap orders by @fmrsabino in #1299
- Migrate
DataDecoded
tozod
by @iamacook in #1268 - Move viem deprecated getFunctionSelector to toFunctionSelector by @hectorgomezv in #1303
- Migrate
Estimation
tozod
by @iamacook in #1271 - Add OrderSchema tests by @fmrsabino in #1302
- Remove duplicate switch/case in test by @fmrsabino in #1306
- Remove duplicate eslint rule by @fmrsabino in #1305
- Implement ICacheReadiness for FakeCacheService by @fmrsabino in #1307
- Migrate
Event
tozod
by @iamacook in #1272 - Migrate
PreviewTransactionDto
tozod
by @iamacook in #1290 - Migrate
GetDelegateDto
tozod
by @iamacook in #1291 - Remove unused
HEX_PATTERN
by @iamacook in #1309 - Remove waiting for the Promise result on /events route by @fmrsabino in #1310
- Add tests for
LockingEventSchema
by @iamacook in #1292 - Simplify
Operation
entity by @iamacook in #1308 - Fix locking history pagination by @iamacook in #1300
- Add Swagger documentation for locking by @iamacook in #1304
Full Changelog: v1.29.0...v1.30.0
v1.29.0
What's Changed
- Generify, validate and inject relay env. vars. into Docker by @iamacook in #1205
- build(deps-dev): bump @types/semver from 7.5.7 to 7.5.8 by @dependabot in #1208
- build(deps-dev): bump @nestjs/schematics from 10.1.0 to 10.1.1 by @dependabot in #1211
- build(deps-dev): bump @types/node from 20.11.19 to 20.11.20 by @dependabot in #1210
- build(deps-dev): bump eslint from 8.56.0 to 8.57.0 by @dependabot in #1209
- build(deps-dev): bump prettier from 3.2.4 to 3.2.5 by @dependabot in #1207
- Upgrade
@typescript-eslint/parser
to satisfy peer dep. by @iamacook in #1212 - Redirect legacy relay route with params by @iamacook in #1213
- Generate chain-specific deployment versions for tests by @iamacook in #1195
- Normalize Ethereum addresses by @fmrsabino in #1218
- Make expireTimeSeconds non-optional by @fmrsabino in #1219
- Add RELAY_THROTTLE_TTL_SECONDS config by @fmrsabino in #1220
- Align FakeCacheService and RedisCacheService implementations by @hectorgomezv in #1215
- Redirect legacy relay route using
chainId
frombody
by @iamacook in #1223 - Add
trusted
query param. toincoming-transfers
endpoint by @iamacook in #1214 - Add
proposer
toMultisigExecutionInfo
by @iamacook in #1217 - Add
GET
/v1/alerts
endpoint for webhook verification by @iamacook in #1230 - Propagate Django error messages from Transaction Service by @iamacook in #1226
- Change Tenderly endpoint to add a contract by @iamacook in #1221
- Extend ICacheService interface by storing incrementable numeric values by @hectorgomezv in #1225
- Add endpoint to delete contracts from Tenderly by @iamacook in #1222
- Scaffold locking API data source by @iamacook in #1227
- Add CowSwapApi by @fmrsabino in #1233
- Scaffold locking repository by @iamacook in #1229
- Validate
RelayDto
usingzod
by @iamacook in #1203 - Add Zerion API rate limit by @hectorgomezv in #1228
- Scaffold locking controller by @iamacook in #1231
- Set Order UID type to 0x string by @fmrsabino in #1237
- Add headers to
DELETE
requests by @iamacook in #1240 - build(deps-dev): bump @types/jest from 29.5.11 to 29.5.12 by @dependabot in #1245
- build(deps-dev): bump @typescript-eslint/eslint-plugin from 7.0.2 to 7.1.1 by @dependabot in #1243
- build(deps): bump @nestjs/config from 3.1.1 to 3.2.0 by @dependabot in #1242
- build(deps): bump @safe-global/safe-deployments from 1.32.0 to 1.33.0 by @dependabot in #1246
Full Changelog: v1.28.0...v1.29.0
v1.28.0
What's Changed
- Reorganise contract decoders by @iamacook in #1138
- Replace jest.clearAllMocks with jest.resetAllMocks by @fmrsabino in #1140
- Add tests for
ProxyFactoryDecoder
by @iamacook in #1139 - Add
GelatoApi
service by @iamacook in #1141 - Add PreExecutionLogGuard to POST /v1/hooks/events route by @hectorgomezv in #1120
- Add SSL configuration to database by @fmrsabino in #1143
- Bundle migrations in Docker image by @fmrsabino in #1146
- Remove
@gelatonetwork/relay-sdk
in favour of request by @iamacook in #1145 - Add Zerion NFTs retrieval by @hectorgomezv in #1121
- Remove Valk BalancesAPI by @hectorgomezv in #1149
- Fix file name typo by @fmrsabino in #1150
- Add officiality check for Safe and MultiSend contracts in
LimitAddressesMapper
by @iamacook in #1144 - Send notification only to subscribed accounts by @fmrsabino in #1152
- Add SafeBalancesApi by @hectorgomezv in #1151
- Add relay controller by @iamacook in #1153
- Generate and infer from ABIs of
@safe-global/safe-deployments
by @iamacook in #1147 - Revert "Generate and infer from ABIs of
@safe-global/safe-deployments
(#1147)" by @iamacook in #1156 - Reapply ABI generation outside of
/dist
by @iamacook in #1157 - Revert "Reapply ABI generation outside of
/dist
(#1157)" by @iamacook in #1158 - Reapply "Reapply ABI generation outside of
/dist
(#1157)" (#1158) by @iamacook in #1159 - Throw custom errors from relayer by @iamacook in #1154
- Add legacy relay service route by @iamacook in #1155
- Mark
isTestnet
as required by @iamacook in #1163 - build(deps-dev): bump @types/node from 20.11.17 to 20.11.19 by @dependabot in #1168
- build(deps-dev): bump @typescript-eslint/eslint-plugin from 6.21.0 to 7.0.2 by @dependabot in #1169
- build(deps): bump @nestjs/serve-static from 4.0.0 to 4.0.1 by @dependabot in #1167
- build(deps): bump @nestjs/cli from 10.3.1 to 10.3.2 by @dependabot in #1171
- build(deps-dev): bump husky from 9.0.10 to 9.0.11 by @dependabot in #1170
- Remove unnecessary build step before VSCode debug configuration by @hectorgomezv in #1166
- Add description regarding
RelayDto['gasLimit']
overhead by @iamacook in #1160 - build(deps): bump node from 20.11.0-alpine to 20.11.1-alpine by @dependabot in #1172
- Change
faker.number.float
precision
option tomultipleOf
by @iamacook in #1162 - Replace Safe/ERC-20
ContractHelper
s withAbiDecoder
s by @iamacook in #1148 - Send unsubscription token when sending email by @fmrsabino in #1164
- Remove usage of UrlGeneratorHelper by @fmrsabino in #1165
- Generate
AbiDecoder
helpers for testing if calldata is of method by @iamacook in #1173 - Add
version
to relay payload by @iamacook in #1161 - build(deps): bump ip from 2.0.0 to 2.0.1 by @dependabot in #1179
- Add UnauthenticatedExceptionFilter by @fmrsabino in #1181
- Add Sepolia to relay configuration by @iamacook in #1176
- Add information about ABI generation to readme by @iamacook in #1177
- Move
AbiDecoder
s intodecoders
andIEncoder
s intoencoders
folders by @iamacook in #1174 - Test each chain depending on supported contract versions by @iamacook in #1189
- Push all SafeBalancesApi related logic to the datasources layer by @hectorgomezv in #1175
- Make email verification sending async by @fmrsabino in #1186
- Make alert email notification async by @fmrsabino in #1187
- Return immediately in /alerts route by @fmrsabino in #1188
- Migrate deprecated
faker.internet.avatar
by @iamacook in #1182 - Fix
RelayDto['gasLimit']
Swagger type by @iamacook in #1184 - Add bug and feature issue templates by @iamacook in #1185
- Move prices provider configuration schema by @hectorgomezv in #1178
- Make Page count property nullable by @hectorgomezv in #1192
- Fix Zerion collectibles count attribute by @hectorgomezv in #1193
- Allow blank issues by @iamacook in #1191
- Add officiality checks for ProxyFactory by @iamacook in #1180
- Add basic PR template by @iamacook in #1196
- Add custom TTL for owners, disabling caching by @iamacook in #1199
- Coerce
RelayDto['gasLimit']
tobigint
by @iamacook in #1194 - Rename owners TTL env. var. by @iamacook in #1200
- Use checksummed addresses in safeBuilder by @fmrsabino in #1201
- Remove fail() from tests by @hectorgomezv in #1202
Full Changelog: v1.27.0...v1.28.0