Files

87 lines
4.6 KiB
Markdown

# Changelog
## 0.6.0
feature: RowDialog validates a row as part of a larger value, such as a whole document with the row put in.
- `RowDialog` takes `body`, the value posted to `validatePath` for the row, and `select`, the
row's problems by field and message taken from the answer.
- `useValidation` and `RowDialog` take an answer of any shape.
## 0.5.0
feature: the entry point /shared exports the types and constants a server and its web application share.
- `@koszewscy/sk-react-toolkit/shared` exports the credential types, `TfModule`, `TfInstance`,
`TfvarsFileStatus` and the name patterns of the tfvars store, for the API types of an
application imported by both its server and its web application.
## 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.