Repository navigation
chore: dependency refresh, image hardening and tooling alignment - #59
Merged
Merged
Conversation
… 24.22 / alpine 3.24 npm update clears 20 of 29 npm audit findings (proxy-addr critical, axios, form-data, fast-uri, vue, postcss...). The runtime stage now runs apk upgrade and drops npm/corepack, which carry their own CVEs and are never used at runtime. The rollup musl binary install is gone: vite 8 bundles with rolldown, rollup is no longer in the tree.
yaml is imported nowhere (js-yaml is used). ofetch is imported by src/context.ts but only resolved through the lib-vue peer install.
…2, unplugin-auto-import 21 unplugin-vue-components 32 drops the chokidar 3 / braces chain flagged by npm audit. Checked against ui/public/examples: marked renders the 4619 descriptions identically (only a quote inside a javascript: href is now entity-encoded, sanitized anyway), computedAsync keeps its signature, generated components.d.ts is identical.
config 5 ships its own types, which also type config.util.loadFileConfigs, so the @ts-ignore goes. Checked against api/config: same resolved config in production, development and test, and with DEFAULT_URL / ALLOWED_URLS (json) / PORT overrides.
BUILD.json is only written by CI, so an image built locally crashed at startup with ENOENT. Fall back to an 'unknown (built without CI)' version, as the other services do.
… .dockerignore - apk upgrade moves to the base stage so the build stages get the alpine fixes too - yarn (/opt/yarn-*) is removed from the runtime with npm and corepack - .dockerignore: ADD /ui ui copied the developer's ui/node_modules and a stale ui/dist into a local build
…ervices - eslint 10, neostandard 0.14, @commitlint 21; @data-fair/lib-utils declared in the root devDependencies (the root eslint config imports it, it resolved through the ui workspace) - ui eslint: flat/recommended (vue) and flat/recommended-v4 (vuetify) instead of flat/base; the 5 new warnings fixed (attribute order in dev-embed, prism prop defaults) - commitlint.config.ts; commit-msg passes "$1" (--edit "" linted a stale COMMIT_EDITMSG on merges) - engines.node v24, tsconfig erasableSyntaxOnly (0 new errors) - check-types runs vue-tsc too, after the ui build in quality (vue-tsc needs ui/dts) - the lockfile shrinks by ~2700 lines: eslint 10 drops most of its dependency tree
A build that inherits NODE_ENV=development (a dev shell) shipped dev.vue and dev-embed.vue.
…n-action - checkout v7, setup-node v7, setup-buildx v4, login v4, metadata v6, build-push v7: the docker actions still ran on node20; no input used here was renamed or removed - releases.yml computes the major tag with a shell step instead of the unmaintained node12 get-version-action (untested until the next v* tag)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Routine dependency refresh, plus the parts of the shared data-fair service conventions that touch dependencies, the image and the build.
Before / after
npm audit(whole tree)The 6 low findings are the
ellipticchain undervite-plugin-node-polyfills. It is build-time only and not bundled (include: ['path']); see "Deferred".Changes
npm update(fixes proxy-addr critical, axios, form-data, fast-uri, vue, postcss…). Base imagenode:24.22.0-alpine3.24withapk upgradeinbase. npm, corepack and yarn removed from the runtime. Dropped the@rollup/rollup-linux-x64-muslinstall, since vite 8 bundles with rolldown. Added a.dockerignore:ADD /ui uiused to copy the developer'sui/node_modulesand a staledistinto local builds.yamlremoved (nothing imports it).ofetchdeclared (imported byui/src/context.ts, it only resolved through the lib-vue peer).@types/configand a@ts-ignorego). Old and new versions were run side by side onui/public/examplesandapi/config:javascript:href is now entity-encoded, and it is sanitized anyway.BUILD.json. Before, an image built outside CI crashed with ENOENT.command, not byNODE_ENV.@data-fair/lib-utilsdeclared at the root.flat/recommendedandflat/recommended-v4; the 5 new warnings are fixed.commitlint.config.ts;commit-msgpasses"$1".engines.nodev24,erasableSyntaxOnly.check-typesnow also runsvue-tsc, after the ui build inquality.battila7/get-version-action(node12, unmaintained) is replaced by a shell step. Note that the shared tooling reference lists action majors as "not decided"; they were bumped because of node20's removal.Verification
npm run lint,check-types(api + ui),ui build, unit tests 13/13.BUILD.jsonand loads config 5 (config.get('port')).actionlint: only a pre-existing shellcheck warning in the BUILD.json step.Untested: the
releases.ymlchange (the major-tag shell step) only runs on the nextv*tag. Its logic was checked locally (v2.3.1→2).Deferred
$refs to localhost / private IPs (safeUrlResolveron by default) and fetches withredirect: "manual", which gives an opaque response on redirects. No fixture has external refs, so it can't be proven neutral. It also keepsvite-plugin-node-polyfillsneeded (path / Buffer / process).YAML.dumpno longer folds long strings, a visible change in the YAML tabs.