stork issueshttps://gitlab.isc.org/isc-projects/stork/-/issues2024-02-13T14:40:45Zhttps://gitlab.isc.org/isc-projects/stork/-/issues/1294Menubar bugs after PrimeNG update2024-02-13T14:40:45ZSlawek FigielMenubar bugs after PrimeNG update[Original source](https://gitlab.isc.org/isc-projects/stork/-/merge_requests/712#note_433295)
Buttons on the top bar
* On hover
* On master, the dropdown is not expanded.
* ![image](https://gitlab.isc.org/isc-projects/stork/uploa...[Original source](https://gitlab.isc.org/isc-projects/stork/-/merge_requests/712#note_433295)
Buttons on the top bar
* On hover
* On master, the dropdown is not expanded.
* ![image](https://gitlab.isc.org/isc-projects/stork/uploads/4af3ff65063b39f15a25b7654b20828c/image.png)
* On this branch, the dropdown is expanded.
* ![image](https://gitlab.isc.org/isc-projects/stork/uploads/45bc7214bf46f737c6c37a714c0ac4fa/image.png)
* On unhover
* On master, it returns to the initial state.
* ![image](https://gitlab.isc.org/isc-projects/stork/uploads/d084acfb2bb1b9934e562beb4389fd1f/image.png)
* On this branch, the dropdown remains expanded.
* ![image](https://gitlab.isc.org/isc-projects/stork/uploads/1891a06b3bd24907247771ba866b11a8/image.png)
Andrei likes the on-hover change. He doesn't like the on-unhover change.
It is a bug in [the PrimeNG 17.4.0 internals](https://github.com/primefaces/primeng/issues/13512). I didn't find the workaround.outstandinghttps://gitlab.isc.org/isc-projects/stork/-/issues/1293UI code coverage2024-02-13T14:38:49ZSlawek FigielUI code coverageWe have a utility to generate coverage for the backend but not for the frontend. We should fill this gap.
The development of this feature was excluded from #800.We have a utility to generate coverage for the backend but not for the frontend. We should fill this gap.
The development of this feature was excluded from #800.1.16https://gitlab.isc.org/isc-projects/stork/-/issues/1292Restore storybook plugins2024-02-13T14:37:10ZSlawek FigielRestore storybook pluginsDue to compatibility problems with the dynamic forms in Angular, we turned off some default Storybook plugins some time ago. We should restore them because they are pretty useful.
List of disabled plugins:
- `@storybook/addon-controls`...Due to compatibility problems with the dynamic forms in Angular, we turned off some default Storybook plugins some time ago. We should restore them because they are pretty useful.
List of disabled plugins:
- `@storybook/addon-controls`
- `@storybook/addon-actions`
This code was implemented originally in #800, but it is out-of-scope of that issue.backloghttps://gitlab.isc.org/isc-projects/stork/-/issues/1291QA: Consider secret scanning2024-02-07T11:24:58ZTomek MrugalskiQA: Consider secret scanningTo prevent token and other secrets leaking, we might consider deploying secret scanning tools. Here's two that we might consider:
- [trufflehog](https://github.com/trufflesecurity/trufflehog) -13.2k stars on github
- [gitleaks](https://...To prevent token and other secrets leaking, we might consider deploying secret scanning tools. Here's two that we might consider:
- [trufflehog](https://github.com/trufflesecurity/trufflehog) -13.2k stars on github
- [gitleaks](https://gitleaks.io/) - 14.6k stars on github
There are plenty others, too.backloghttps://gitlab.isc.org/isc-projects/stork/-/issues/1290Hook changelogs in release notes2024-02-06T14:58:17ZSlawek FigielHook changelogs in release notesCurrently, we describe the changes provided in the hooks in the changelog in the main repository. It is pretty convenient because, anyway, we need to update the hook submodule reference to the main repository if any changes were provided...Currently, we describe the changes provided in the hooks in the changelog in the main repository. It is pretty convenient because, anyway, we need to update the hook submodule reference to the main repository if any changes were provided there.
But the hooks contain their own changelogs but they are not used in the release process. In Kea, we present them together with release notes.
@andrei proposed to do the same in Stork in https://gitlab.isc.org/isc-projects/stork/-/merge_requests/716#note_432749 .
Kea has only one repository for all hooks. It means there is only one changelog for all hooks, so in total, there are two changelogs (main and hooks) to maintain. In Stork, we plan to store every hook in a separate repository. Finally, you will have multiple changelogs that need to be processed to prepare the release notes. As far as I know, it is mainly a manual job, right? So, realizing this idea may increase the complexity work of release engineers.
We can extend the release utilities in the main repository to automate including the hook changelogs in the release notes.backloghttps://gitlab.isc.org/isc-projects/stork/-/issues/1288404 if stork-server is installed in custom path2024-02-06T14:53:55ZAndrei Pavelandrei@isc.org404 if stork-server is installed in custom pathSteps
1. Install server in a custom location.
```sh
$ rake install:server DEST=/opt/stork-server
mkdir -p /opt/stork-server
cp -a -f dist/server/. /opt/stork-server
```
2. Start server.
```sh
$ stork-server
WARN[2024-01-30 15:16:24]...Steps
1. Install server in a custom location.
```sh
$ rake install:server DEST=/opt/stork-server
mkdir -p /opt/stork-server
cp -a -f dist/server/. /opt/stork-server
```
2. Start server.
```sh
$ stork-server
WARN[2024-01-30 15:16:24] restservice.go:354 Cannot read the base URL in the '/usr/share/stork/www/index.html' file because it is missing. If the files are located on separate machine, you need manually change the 'href' value of the <base> HTML tag to '/' error="open /usr/share/stork/www/index.html: no such file or directory"
```
3. Attempt to open the UI in browser.
> 404 page not found
Expectation was that I get served `/opt/stork-server/usr/share/stork/www/index.html` which exists.
---
Similarly, stork-server logs on startup:
```
WARN[2024-01-30 15:16:24] server.go:102 The hook directory: '/var/lib/stork-server/hooks' doesn't exist error="cannot find plugin paths in: /var/lib/stork-server/hooks: cannot list hook directory: /var/lib/stork-server/hooks: open /var/lib/stork-server/hooks: no such file or directory"
```
It would be nice if this was also looked up from the installation path and that the directory would be created on installation, so there would be no warnings by default.
This last one also happens with stork-agent.backloghttps://gitlab.isc.org/isc-projects/stork/-/issues/1287Deadlock during removing a machine2024-01-31T18:51:40ZSlawek FigielDeadlock during removing a machineThe database deadlock may occur if the machine is deleted during the config review.
```
problem deleting machine 1: ERROR #40P01 deadlock detected" file="machines.go:688"
```
It causes the `test_delete_machine_with_config_reports` syst...The database deadlock may occur if the machine is deleted during the config review.
```
problem deleting machine 1: ERROR #40P01 deadlock detected" file="machines.go:688"
```
It causes the `test_delete_machine_with_config_reports` system test to fail often.backloghttps://gitlab.isc.org/isc-projects/stork/-/issues/1281Deserialize the Kea JSON config lazily2024-01-16T14:48:41ZSlawek FigielDeserialize the Kea JSON config lazilyDeserializing the big Kea config JSON is a very memory-consuming operation. It is stored in the `config` column in the `kea_daemon` table.
The entries of this table are used in many contexts in Stork. Whenever they are fetched, the JSON ...Deserializing the big Kea config JSON is a very memory-consuming operation. It is stored in the `config` column in the `kea_daemon` table.
The entries of this table are used in many contexts in Stork. Whenever they are fetched, the JSON content is deserialized into Go structures, even if all or significant parts of this data are unnecessary, which is quite a common situation.
My proposal is to deserialize this JSON lazily - only when the related data are needed. The solution may be based on the `RawMessage` feature of the `encoding/json` package.backloghttps://gitlab.isc.org/isc-projects/stork/-/issues/1278Backend profiler and performance monitor2024-01-16T14:43:02ZSlawek FigielBackend profiler and performance monitorTo improve the quality of our solutions, I propose to add to the Stork project the following:
- Profiler for the backend unit tests
- On-demand profiler for currently executed Stork server or agent
- Performance monitor for system tests...To improve the quality of our solutions, I propose to add to the Stork project the following:
- Profiler for the backend unit tests
- On-demand profiler for currently executed Stork server or agent
- Performance monitor for system tests
These components were implemented to recognize the cause of the performance problems reported in #1263.1.16https://gitlab.isc.org/isc-projects/stork/-/issues/1276github-friendly security policy2024-01-16T14:41:55ZTomek Mrugalskigithub-friendly security policyThis is mostly to check off some extra check boxes on github.
Something similar as we have in Kea: [Kea security policy](https://github.com/isc-projects/kea/security/policy).
This is just writing down what we already have spread out in...This is mostly to check off some extra check boxes on github.
Something similar as we have in Kea: [Kea security policy](https://github.com/isc-projects/kea/security/policy).
This is just writing down what we already have spread out in several places, condensed and formatted in github friendly format. No specific process changes proposed.1.16Tomek MrugalskiTomek Mrugalskihttps://gitlab.isc.org/isc-projects/stork/-/issues/1275Password change fails with character '+' that form states is allowable2024-01-16T14:41:07ZBaxil (aka Horizon)Password change fails with character '+' that form states is allowable
**Description**
Stork will refuse to validate passwords using the plus sign, one of the characters the password change screen explicitly states is an allowed special character.
**To Reproduce**
1. visit /profile/password page for passw...
**Description**
Stork will refuse to validate passwords using the plus sign, one of the characters the password change screen explicitly states is an allowed special character.
**To Reproduce**
1. visit /profile/password page for password change
2. In both password and confirm password boxes type: abc+123
3. Password box will error out with an allowed characters message and confirm box will error out stating passwords don't match
![20240109-stork-passwords](/uploads/76d84e097f9c19cc31850f9bc204c36e/20240109-stork-passwords.png)
**Expected behavior**
Any characters which cause password processing errors should be removed from acceptable character lists.
**Environment:**
- Stork: 1.14.0
- OS: unknown, my apologies (I'm an end user)
- Kea version: unknown
- BIND9 version: unknown
**Additional Information**
This is possibly related to issue #1246 if the db password is processed in the same fashion.1.16https://gitlab.isc.org/isc-projects/stork/-/issues/1274Hub and spoke configuration monitoring2024-03-28T12:21:12ZMarcin SiodelskiHub and spoke configuration monitoringWe have added the hub-and-spoke configuration support in Kea. It means that a HA-enabled server can now have multiple relationships. We need to rework the Stork backend and UI to support it.We have added the hub-and-spoke configuration support in Kea. It means that a HA-enabled server can now have multiple relationships. We need to rework the Stork backend and UI to support it.1.16Marcin SiodelskiMarcin Siodelskihttps://gitlab.isc.org/isc-projects/stork/-/issues/1269After authorizing a machine it stays on a unauthorized list for 10 seconds or...2024-03-28T12:19:59ZPiotrek ZadrogaAfter authorizing a machine it stays on a unauthorized list for 10 seconds or longerSometimes this happens:
- Run Stork demo
- Go to unauthorized machines
- Authorize machines that are on a list
- Sometimes pressing `Authorize` has no effect in UI for 10 seconds or more, after that the machine dissapearsSometimes this happens:
- Run Stork demo
- Go to unauthorized machines
- Authorize machines that are on a list
- Sometimes pressing `Authorize` has no effect in UI for 10 seconds or more, after that the machine dissapears1.16https://gitlab.isc.org/isc-projects/stork/-/issues/1268Filter machines by port2024-01-02T14:23:35ZSlawek FigielFilter machines by portThe machine lists can be filtered by address but not by port.
![image](/uploads/f64b2c0b5572d22a2360d31236a8897c/image.png)
![image](/uploads/3ad9e1629d7ffec7db1e6a184a2a9637/image.png)The machine lists can be filtered by address but not by port.
![image](/uploads/f64b2c0b5572d22a2360d31236a8897c/image.png)
![image](/uploads/3ad9e1629d7ffec7db1e6a184a2a9637/image.png)backloghttps://gitlab.isc.org/isc-projects/stork/-/issues/1266Inconsistent IDs2024-01-23T14:18:17ZManuelInconsistent IDsHey everybody,
today I noticed a strange error message in Stork.
Everything is working fine, but looks to me as if this is a logic flaw.
We have multiple kea servers with a private subnet but unique ids.
Why would that be a problem?
...Hey everybody,
today I noticed a strange error message in Stork.
Everything is working fine, but looks to me as if this is a logic flaw.
We have multiple kea servers with a private subnet but unique ids.
Why would that be a problem?
Thanks!
![image](/uploads/9eb80b5bda7df51180e51795217d0474/image.png)outstandingMarcin SiodelskiMarcin Siodelskihttps://gitlab.isc.org/isc-projects/stork/-/issues/1265Hosts reservations filter improvements2024-03-27T14:12:45ZPiotrek ZadrogaHosts reservations filter improvementsText Input type filter used currently in Hosts reservations view has some limitations and drawbacks (https://gitlab.isc.org/isc-projects/stork/-/issues/917#note_423973).
E.g. it is not possible to filter out all reservations in 2 subnet...Text Input type filter used currently in Hosts reservations view has some limitations and drawbacks (https://gitlab.isc.org/isc-projects/stork/-/issues/917#note_423973).
E.g. it is not possible to filter out all reservations in 2 subnets.
This could be improved by leaving existing Text Input only for filtering `byText` and introducing something different for filtering by `appId`, `subnetId`, `keaSubnetId`, `global`. This could be e.g. `multiselect` (https://primeng.org/multiselect).1.16Piotrek ZadrogaPiotrek Zadrogahttps://gitlab.isc.org/isc-projects/stork/-/issues/1261The list tab link doesn't include the already specified filter2024-03-13T18:41:07ZSlawek FigielThe list tab link doesn't include the already specified filterThe list tab link doesn't include the already specified filter.
![image](/uploads/975779709fab2fb25c2959373d7d2081/image.png)
After clicking on it, the list presents non-filtered results, although the filter is still specified.
![imag...The list tab link doesn't include the already specified filter.
![image](/uploads/975779709fab2fb25c2959373d7d2081/image.png)
After clicking on it, the list presents non-filtered results, although the filter is still specified.
![image](/uploads/946de8fa616032c96e97f1157e526afa/image.png)1.16https://gitlab.isc.org/isc-projects/stork/-/issues/1252Interrupt the system tests if the docker-compose build fails2023-12-19T14:46:52ZSlawek FigielInterrupt the system tests if the docker-compose build failsThe issue was created due to a post-sanity checks discussion with @andrei.
If your image build fails, it will be repeated for each test case if it isn't a temporary problem because the failed build is not stored in the cache. The build ...The issue was created due to a post-sanity checks discussion with @andrei.
If your image build fails, it will be repeated for each test case if it isn't a temporary problem because the failed build is not stored in the cache. The build problems are usually related to misconfiguration or bugs in Dockerfile or scripts. They are not temporary, so repeating the build on each test is unnecessary. We should interrupt the tests on the first build problem to save time.1.16https://gitlab.isc.org/isc-projects/stork/-/issues/1251LDAP hook: Build fails on some Linux distributions2023-12-19T14:47:34ZSlawek FigielLDAP hook: Build fails on some Linux distributionsThe issue was found by @andrei during 1.14 sanity checks: https://gitlab.isc.org/isc-projects/stork/-/issues/1240#note_421471
```
Another one I had forgotten. I understand that this one as well is not a task that you usually run on a ta...The issue was found by @andrei during 1.14 sanity checks: https://gitlab.isc.org/isc-projects/stork/-/issues/1240#note_421471
```
Another one I had forgotten. I understand that this one as well is not a task that you usually run on a tarball.
rake hook:init MODULE=stork-server-ldap; rake hook:build results in error when run on a tarball. It seems like it is not picking up on DEFAULT_HOOK_DIRECTORY.
rm -f
Removing old compiled hooks...
cp go.mod go.sum /tmp/d20231205-1147463-kn7j49
/home/andrei/Descărcări/sanity-checks/stork-1.14.0/tools/golang/go/bin/go mod edit -replace isc.org/stork=../../../../../Descărcări/sanity-checks/stork-1.14.0/backend
/home/andrei/Descărcări/sanity-checks/stork-1.14.0/tools/golang/go/bin/go mod tidy
rake build
Building stork-server-ldap...
mkdir -p build
rm
rm: missing operand
Try 'rm --help' for more information.
rake aborted!
Command failed with status (1): [rm...]
/home/andrei/Descărcări/sanity-checks/stork-1.14.0/hooks/stork-server-ldap/Rakefile:17:in `block in <top (required)>'
Tasks: TOP => build
(See full trace by running task with --trace)
rake aborted!
Command failed with status (1): [rake build...]
/home/andrei/Descărcări/sanity-checks/stork-1.14.0/rakelib/90_hooks.rake:150:in `block (4 levels) in <top (required)>'
/home/andrei/Descărcări/sanity-checks/stork-1.14.0/rakelib/90_hooks.rake:141:in `block (3 levels) in <top (required)>'
/home/andrei/Descărcări/sanity-checks/stork-1.14.0/rakelib/90_hooks.rake:66:in `block (3 levels) in forEachHook'
/home/andrei/Descărcări/sanity-checks/stork-1.14.0/rakelib/90_hooks.rake:65:in `chdir'
/home/andrei/Descărcări/sanity-checks/stork-1.14.0/rakelib/90_hooks.rake:65:in `block (2 levels) in forEachHook'
/home/andrei/Descărcări/sanity-checks/stork-1.14.0/rakelib/90_hooks.rake:46:in `chdir'
/home/andrei/Descărcări/sanity-checks/stork-1.14.0/rakelib/90_hooks.rake:46:in `block in forEachHook'
/home/andrei/Descărcări/sanity-checks/stork-1.14.0/rakelib/90_hooks.rake:42:in `foreach'
/home/andrei/Descărcări/sanity-checks/stork-1.14.0/rakelib/90_hooks.rake:42:in `forEachHook'
/home/andrei/Descărcări/sanity-checks/stork-1.14.0/rakelib/90_hooks.rake:139:in `block (2 levels) in <top (required)>'
Tasks: TOP => hook:build
(See full trace by running task with --trace)
```1.16https://gitlab.isc.org/isc-projects/stork/-/issues/1250Syncing a new hook directory fails when running from tarball2023-12-19T14:43:29ZSlawek FigielSyncing a new hook directory fails when running from tarballThe issue was found by @andrei during 1.14 sanity checks: https://gitlab.isc.org/isc-projects/stork/-/issues/1240#note_421415
* If I do `rake hook:init MODULE=stork-server-ldap`, it initializes the git module correctly relative to the t...The issue was found by @andrei during 1.14 sanity checks: https://gitlab.isc.org/isc-projects/stork/-/issues/1240#note_421415
* If I do `rake hook:init MODULE=stork-server-ldap`, it initializes the git module correctly relative to the tarball content. However, if I do `rake hook:sync`, because the tarball is not a git repo, it goes all the way to the nearest parent git repository, and does some syncing there. I happen to have my home directory set up as a git repo, so I ended up with having some of my modules there modified. The task could instead check if there is a `.git` directory created at the same level as `Rakefile` first to determine if it is a tarball or a git repo. I also understand that this is not a task that you usually run on a tarball.
```
modified: .config/awesome/lain (new commits, modified content)
modified: .zprezto (modified content)
```backlog