71 lines
3.9 KiB
Markdown
71 lines
3.9 KiB
Markdown
# Changelog
|
|
|
|
## 0.4.0
|
|
|
|
feature: the tfvars store keeps Terraform modules, their instances and the instances' variable files in PostgreSQL.
|
|
|
|
- `createTfvarsStore(pool)`: the tables `tf_modules`, `tf_instances` and `tf_variable_files`,
|
|
created at the first use, with `modules` (`list`, `put`, `delete`), `instances` (`list`,
|
|
`create`, `delete`) and `variables(module, instance)` (`read`, `write`, `remove`), whose writes
|
|
take the version read and answer `false` when the files changed since.
|
|
- `versionOf`, `tfvarsText`, and the types `TfModule`, `TfInstance` and `TfvarsFileStatus` with
|
|
the patterns of their names, also exported from `/web`.
|
|
- `pg` is an optional peer dependency, for the store.
|
|
- `npm test` tests the store against a scratch database of the server the `PG*` variables name.
|
|
|
|
## 0.3.0
|
|
|
|
feature: the key of a credential store may be a path of keys, so stores of several kinds share one object of config.json.
|
|
|
|
- `CredentialStore.key` is a key of `config.json` or a path of keys separated by dots, such as
|
|
`connections.pg`; read, validate, write and `credentialValues` use the list at that path, and a
|
|
write creates the objects of the path that are missing and keeps their other keys.
|
|
|
|
## 0.2.1
|
|
|
|
fix: a credential store holds credentials of one kind, without a kind field in its entries, and the dialog edits several stores in tabs.
|
|
|
|
- A `CredentialStore` has one `kind`, and its entries hold the name and the fields of that kind
|
|
only; `kind` is no longer a field of an entry, of `CredentialProfile`, or of `CredentialKind`. The
|
|
read answer has the store's `kind` in place of `kinds`.
|
|
- `CredentialsButton` takes `stores`, the prefixes and labels of the stores of the same
|
|
`config.json`, with a tab for each when there are several; Save writes each store that changed.
|
|
The message of an empty store is centered in the dialog, and the kind's label keeps its case.
|
|
- The README's Using it shows the `dev-link` script of the applications, `npm link --no-save` in
|
|
both their packages, in place of the two commands.
|
|
|
|
## 0.2.0
|
|
|
|
feature: the credential store keeps credentials of any kind in config.json with encrypted secrets, with its routes and its dialog.
|
|
|
|
- `encryptionKey`, `encrypt` and `decrypt`: AES-256-GCM with the SHA-256 of `ENCRYPTION_KEY` or of
|
|
the content of `ENCRYPTION_KEY_FILE`.
|
|
- `CredentialStore`, `credentialProblems`, `credentialValues` and `registerCredentialRoutes`: a
|
|
list of credentials in a key of `config.json`, of the kinds the application gives, with routes
|
|
to read, validate and write it; secrets are encrypted and never answered.
|
|
- `POSTGRESQL_KIND`, the kind of a PostgreSQL connection.
|
|
- `CredentialsButton`, the dialog that edits a store, its fields rendered from the kinds.
|
|
|
|
## 0.1.1
|
|
|
|
fix: the declarations of the published package import the other declarations by their .js names.
|
|
|
|
- The `.d.ts` files of the package name the files they import as `.js`, as the compiled
|
|
JavaScript does, instead of the `.ts` and `.tsx` files of the source, which the package does not
|
|
hold.
|
|
|
|
## 0.1.0
|
|
|
|
feature: sk-react-toolkit holds the server helpers, web components and Vite font plugin shared by manage-ui and sql-query-webui.
|
|
|
|
- `sk-react-toolkit/server`: `HttpError`, `strict`, the error and not-found handlers, the log,
|
|
`fail`, `gitVersion`, `exitOnSignals` and `readJsonObject`.
|
|
- `sk-react-toolkit/web`: `request` and `ApiError`, the theme and `renderApp`, the font styles,
|
|
`Card`, `ThemeMenu`, `SwitcherMenu`, `TextInput`, `RowDialog`, `useValidation` and
|
|
`createBrowserSettings`.
|
|
- `sk-react-toolkit/vite`: the `VITE_FONT` font plugin and the resolve options that keep one copy
|
|
of React, MUI and Emotion.
|
|
- `npm run build` builds the published package, `@koszewscy/sk-react-toolkit`, compiled to
|
|
JavaScript with declarations, in `dist/`. The `Release` workflow of Gitea Actions checks, builds
|
|
and publishes each tag to the Gitea npm registry, skipping a version already published.
|