Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/build-ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -42,21 +42,21 @@ jobs:
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v7
with:
lfs: true

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
uses: docker/setup-buildx-action@v4
- name: Login to GitHub Registry
uses: docker/login-action@v3
uses: docker/login-action@v4
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ github.token }}

- name: Build and push vault Image
uses: docker/build-push-action@v5
uses: docker/build-push-action@v7
with:
push: true
context: .github/docker/vault
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release-warp10.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ jobs:
needs: build
steps:
- name: Create Github Release for Warp10
uses: softprops/action-gh-release@v2
uses: softprops/action-gh-release@v3
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ jobs:
runs-on: ubuntu-latest
needs: build
steps:
- uses: softprops/action-gh-release@v2
- uses: softprops/action-gh-release@v3
env:
GITHUB_TOKEN: ${{ github.token }}
with:
Expand Down
34 changes: 17 additions & 17 deletions .github/workflows/tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,12 @@ jobs:
runs-on: ubuntu-22.04-2core
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v7
with:
lfs: true
- uses: actions/setup-node@v4
- uses: actions/setup-node@v7
with:
node-version: '22.11.0'
node-version: '24.21.0'

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

how come sometimes we have 24.21.0, and other codebase, like the scuba one is just 24 :

  - name: Setup Node 24
    uses: actions/setup-node@v6
    with:
      node-version: '24'
      cache: yarn

@francoisferrand francoisferrand Sep 24, 2026 •

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i don't know, and choose to ignore that question... especially this repo is not active anymore, so probably does not matter much: we need the bumps mainly because it is pulled in cloudserver...

cache: yarn
- name: install dependencies
run: yarn install --frozen-lockfile --network-concurrency 1
Expand Down Expand Up @@ -124,14 +124,14 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v7
with:
lfs: true
- uses: actions/setup-node@v4
- uses: actions/setup-node@v7
with:
node-version: '22.11.0'
node-version: '24.21.0'
cache: yarn
- uses: actions/setup-python@v5
- uses: actions/setup-python@v7
with:
python-version: '3.9'
cache: pip
Expand Down Expand Up @@ -218,14 +218,14 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v7
with:
lfs: true
- uses: actions/setup-node@v4
- uses: actions/setup-node@v7
with:
node-version: '22.11.0'
node-version: '24.21.0'
cache: yarn
- uses: actions/setup-python@v5
- uses: actions/setup-python@v7
with:
python-version: '3.9'
cache: pip
Expand All @@ -243,7 +243,7 @@ jobs:
UTAPI_LOG_LEVEL: trace
SETUP_CMD: "run start_v2:server"
- name: 'Debug: SSH to runner'
uses: scality/actions/action-ssh-to-runner@1.7.0
uses: scality/actions/action-ssh-to-runner@1.18.0
timeout-minutes: ${{ fromJSON(github.event.inputs.connection-timeout-m) }}
continue-on-error: true
with:
Expand Down Expand Up @@ -345,14 +345,14 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v7
with:
lfs: true
- uses: actions/setup-node@v4
- uses: actions/setup-node@v7
with:
node-version: '22.11.0'
node-version: '24.21.0'
cache: yarn
- uses: actions/setup-python@v5
- uses: actions/setup-python@v7
with:
python-version: '3.9'
cache: pip
Expand All @@ -366,7 +366,7 @@ jobs:
run: ${{ matrix.test.command }}
env: ${{ matrix.test.env }}
- name: 'Debug: SSH to runner'
uses: scality/actions/action-ssh-to-runner@1.7.0
uses: scality/actions/action-ssh-to-runner@1.18.0
timeout-minutes: ${{ fromJSON(github.event.inputs.connection-timeout-m) }}
continue-on-error: true
with:
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ push metrics directly to the underlying datastore (Redis) without the need of an
extra HTTP request to Utapi.

```js
const { UtapiClient } = require('utapi');
const { UtapiClient } = require('@scality/utapi');

const config = {
redis: {
Expand Down
2 changes: 1 addition & 1 deletion bin/ensureServiceUser
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
// - deduplicate with Vault's seed script at https://github.com/scality/Vault/pull/1627
// - add permission boundaries to user when https://scality.atlassian.net/browse/VAULT-4 is implemented

const { errors } = require('arsenal');
const { errors } = require('@scality/arsenal');
const { program } = require('commander');
const werelogs = require('werelogs');
const async = require('async');
Expand Down
2 changes: 1 addition & 1 deletion eslint.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ const compat = new FlatCompat({
allConfig: js.configs.all
});

export default [...compat.extends("scality"), {
export default [...compat.extends("@scality/scality"), {
plugins: {
mocha,
},
Expand Down
2 changes: 1 addition & 1 deletion lib/ListMetrics.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const async = require('async');
const { errors } = require('arsenal');
const { errors } = require('@scality/arsenal');
const { getMetricFromKey, getKeys, generateStateKey } = require('./schema');
const s3metricResponseJSON = require('../models/s3metricResponse');
const config = require('./Config');
Expand Down
2 changes: 1 addition & 1 deletion lib/UtapiClient.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
const assert = require('assert');
const { doUntil, parallel } = require('async');
const werelogs = require('werelogs');
const { errors } = require('arsenal');
const { errors } = require('@scality/arsenal');
const Datastore = require('./Datastore');
const { generateKey, generateCounter, generateStateKey } = require('./schema');
const redisClientv2 = require('../utils/redisClientv2');
Expand Down
2 changes: 1 addition & 1 deletion lib/UtapiReindex.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ const childProcess = require('child_process');
const async = require('async');
const nodeSchedule = require('node-schedule');

const { jsutil } = require('arsenal');
const { jsutil } = require('@scality/arsenal');
const werelogs = require('werelogs');

const Datastore = require('./Datastore');
Expand Down
6 changes: 2 additions & 4 deletions lib/UtapiRequest.js
Original file line number Diff line number Diff line change
Expand Up @@ -87,8 +87,7 @@ class UtapiRequest {
/**
* Set request path
*
* @param {string} path - path from url.parse
* of request.url (pathname plus query)
* @param {string} path - request path (pathname plus query)
* @return {UtapiRequest} itself
*/
setRequestPath(path) {
Expand All @@ -99,8 +98,7 @@ class UtapiRequest {
/**
* Set request pathname
*
* @param {string} pathname - pathname from url.parse
* of request.url (pathname minus query)
* @param {string} pathname - request pathname (without query)
* @return {UtapiRequest} itself
*/
setRequestPathname(pathname) {
Expand Down
13 changes: 7 additions & 6 deletions lib/server.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
const http = require('http');
const https = require('https');
const url = require('url');
const querystring = require('querystring');

const { Clustering, errors, ipCheck } = require('arsenal');
const arsenalHttps = require('arsenal').https;
const { Clustering, errors, ipCheck, requestUrl } = require('@scality/arsenal');
const arsenalHttps = require('@scality/arsenal').https;
const { Logger } = require('werelogs');

const config = require('./Config');
Expand Down Expand Up @@ -38,8 +38,8 @@ class UtapiServer {
/**
* Function to validate a URI component
*
* @param {string|object} component - path from url.parse of request.url
* (pathname plus query) or query from request
* @param {string|object} component - request path (pathname plus query)
* or parsed query object
* @return {string|undefined} If `decodeURIComponent` throws an error,
* return the invalid `decodeURIComponent` string, otherwise return
* `undefined`
Expand Down Expand Up @@ -68,7 +68,8 @@ class UtapiServer {
requestListener(req, res, router) {
// disable nagle algorithm
req.socket.setNoDelay();
const { query, path, pathname } = url.parse(req.url, true);
const { query: search, path, pathname } = requestUrl.parseRequestTarget(req.url);
const query = querystring.parse(search ?? '');
const utapiRequest = new UtapiRequest()
.setRequest(req)
.setLog(this.logger.newRequestLogger())
Expand Down
4 changes: 2 additions & 2 deletions libV2/metadata/client.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const bucketclient = require('bucketclient');
const { BucketClientInterface } = require('arsenal').storage.metadata.bucketclient;
const bucketclient = require('@scality/bucketclient');
const { BucketClientInterface } = require('@scality/arsenal').storage.metadata.bucketclient;

const config = require('../config');
const { LoggerContext } = require('../utils');
Expand Down
2 changes: 1 addition & 1 deletion libV2/metadata/index.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const arsenal = require('arsenal');
const arsenal = require('@scality/arsenal');
const async = require('async');
const metadata = require('./client');
const { LoggerContext, logger } = require('../utils');
Expand Down
2 changes: 1 addition & 1 deletion libV2/redis.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
const EventEmitter = require('events');
const { callbackify } = require('util');
const IORedis = require('ioredis');
const { jsutil } = require('arsenal');
const { jsutil } = require('@scality/arsenal');
const BackOff = require('backo');
const { whilst } = require('async');

Expand Down
2 changes: 1 addition & 1 deletion libV2/server/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ const http = require('http');
const https = require('https');
const express = require('express');
const bodyParser = require('body-parser');
const { ciphers, dhparam } = require('arsenal').https;
const { ciphers, dhparam } = require('@scality/arsenal').https;

const Process = require('../process');
const config = require('../config');
Expand Down
2 changes: 1 addition & 1 deletion libV2/server/middleware.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
const oasTools = require('oas-tools');
const path = require('path');
const { promisify } = require('util');
const { ipCheck } = require('arsenal');
const { ipCheck } = require('@scality/arsenal');
const config = require('../config');
const { logger, buildRequestLogger } = require('../utils');
const errors = require('../errors');
Expand Down
2 changes: 1 addition & 1 deletion libV2/tasks/BaseTask.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ const assert = require('assert');
const cron = require('node-schedule');
const cronparser = require('cron-parser');
const promClient = require('prom-client');
const { DEFAULT_METRICS_ROUTE } = require('arsenal').network.probe.ProbeServer;
const { DEFAULT_METRICS_ROUTE } = require('@scality/arsenal').network.probe.ProbeServer;

const { client: cacheClient } = require('../cache');
const Process = require('../process');
Expand Down
2 changes: 1 addition & 1 deletion libV2/tasks/Migrate.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const async = require('async');
const { jsutil } = require('arsenal');
const { jsutil } = require('@scality/arsenal');
const BaseTask = require('./BaseTask');
const { UtapiRecord } = require('../models');
const config = require('../config');
Expand Down
2 changes: 1 addition & 1 deletion libV2/tasks/Reindex.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const async = require('async');
const { mpuBucketPrefix } = require('arsenal').constants;
const { mpuBucketPrefix } = require('@scality/arsenal').constants;
const BaseTask = require('./BaseTask');
const { UtapiRecord } = require('../models');
const config = require('../config');
Expand Down
2 changes: 1 addition & 1 deletion libV2/utils/probe.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

const { ProbeServer } = require('arsenal').network.probe.ProbeServer;
const { ProbeServer } = require('@scality/arsenal').network.probe.ProbeServer;

/**
* Configure probe servers
Expand Down
2 changes: 1 addition & 1 deletion libV2/vault/client.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const assert = require('assert');
const { auth, policies } = require('arsenal');
const { auth, policies } = require('@scality/arsenal');
const vaultclient = require('vaultclient');
const config = require('../config');
const errors = require('../errors');
Expand Down
23 changes: 9 additions & 14 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{
"name": "utapi",
"name": "@scality/utapi",
"engines": {
"node": ">=22"
Comment thread
francoisferrand marked this conversation as resolved.
},
"version": "8.3.1",
"version": "8.4.0",
"description": "API for tracking resource utilization and reporting metrics",
"main": "index.js",
"repository": {
Expand All @@ -19,13 +19,13 @@
"dependencies": {
"@aws-sdk/client-iam": "^3.975.0",
"@hapi/joi": "^17.1.1",
"@scality/arsenal": "^8.6.0-0",
"@scality/bucketclient": "scality/bucketclient#8.3.0",
"@senx/warp10": "1.0.14",
"arsenal": "git+https://github.com/scality/Arsenal#8.5.6",
"async": "^3.2.6",
"aws4": "^1.13.2",
"backo": "^1.1.0",
"body-parser": "^1.20.3",
"bucketclient": "scality/bucketclient#8.2.5",
"byte-size": "^9.0.1",
"commander": "^12.1.0",
"cron-parser": "^4.9.0",
Expand All @@ -43,14 +43,14 @@
"oas-tools": "^2.2.2",
"prom-client": "^15.1.3",
"uuid": "^11.0.3",
"vaultclient": "scality/vaultclient#8.5.3",
"werelogs": "scality/werelogs#8.2.2"
"vaultclient": "scality/vaultclient#8.5.9",
"werelogs": "scality/werelogs#8.2.5"
},
"devDependencies": {
"@eslint/eslintrc": "^3.3.0",
"@eslint/js": "9.22.0",
"@scality/eslint-config-scality": "scality/Guidelines#8.3.3",
"eslint": "^9.17.0",
"eslint-config-scality": "scality/Guidelines#8.3.0",
"eslint-plugin-import": "^2.31.0",
"eslint-plugin-mocha": "^10.5.0",
"mocha": "^10.7.3",
Expand All @@ -59,13 +59,8 @@
"sinon": "^19.0.2"
},
"resolutions": {
"**/@yarnpkg/fslib": "2.4.0",
"**/@yarnpkg/libzip": "2.2.1",
"**/@yarnpkg/json-proxy": "2.1.0",
"**/@yarnpkg/parsers": "2.3.0",
"string-width": "4.2.3",
"cliui": "7.0.4",
"nan": "v2.22.0"
"oas-tools/jsonwebtoken": "^9.0.2",
"**/request/form-data": "^2.5.6"
},
Comment on lines +61 to +64

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe let's have a followup ticket for bumping to oas-tools 3.x? To drop these overrides properly.

"scripts": {
"ft_test": "mocha --recursive tests/functional --exit",
Expand Down
Loading
Loading