findAbsolutePath throw error with minimal react library

Description
I'm evaluating the feasibility to use telemetry-js to track usage of Airbus innersource design system react library, with a potential internal opentelemetry collector.
Studying with a minimal react library build with vite, I'm getting error thrown when running ibmtelemetry scripts to collect data.
Steps to reproduce

I used this article as a reference to build the minimal react library : https://dev.to/receter/how-to-create-a-react-component-library-using-vites-library-mode-4lma
Used a default telemetry.yml file like example : https://github.com/ibm-telemetry/telemetry-js?tab=readme-ov-file#2-create-a-telemetryyml-config-file
Created a minimal react vite project to import the library (I'm publishing the npm package locally with verdaccio, same error if I install npm package from relative file path)
Running ibmtelemetry like this locally : CI=true npm explore @airbus/poc-telemetry-reactlib -- npm run postinstall

This is part of the log with error :
error 29249 2024-05-30T14:39:47.260Z -x- uG::find(...): _5 [Error]: lib/Button/index.tsx is not a subpath of /Users/helier_e/Dev/tests/telemetry/poc-telemetry-reactlib
    at uG.findAbsolutePath (file:///Users/helier_e/Dev/tests/telemetry/poc-telemetry-reactlib/node_modules/@ibm/telemetry-js/dist/background-process.js:473:5133)
    at async file:///Users/helier_e/Dev/tests/telemetry/poc-telemetry-reactlib/node_modules/@ibm/telemetry-js/dist/background-process.js:473:4887
    at async Promise.all (index 1)
    at async uG.find (file:///Users/helier_e/Dev/tests/telemetry/poc-telemetry-reactlib/node_modules/@ibm/telemetry-js/dist/background-process.js:473:4827)
error 29249 2024-05-30T14:39:47.260Z _5 Error: lib/Button/index.tsx is not a subpath of /Users/helier_e/Dev/tests/telemetry/poc-telemetry-reactlib
    at uG.findAbsolutePath (file:///Users/helier_e/Dev/tests/telemetry/poc-telemetry-reactlib/node_modules/@ibm/telemetry-js/dist/background-process.js:473:5133)
    at async file:///Users/helier_e/Dev/tests/telemetry/poc-telemetry-reactlib/node_modules/@ibm/telemetry-js/dist/background-process.js:473:4887
    at async Promise.all (index 1)
    at async uG.find (file:///Users/helier_e/Dev/tests/telemetry/poc-telemetry-reactlib/node_modules/@ibm/telemetry-js/dist/background-process.js:473:4827)

Any hint on what could be the issue ?

Hi @eric-helier! This issue slipped by without me noticing, so I'm super sorry about that. Now that I see it, I just wanted to quickly say thanks for your interest in the project and that I'm going to spend some time today or tomorrow to understand the issue you're seeing and see what I can do to help.

Thanks for the feedback @jdharvey-ibm no worry for the reactivity, I understand we all face charged agendas.
If my issue is difficult to understand / reproduce I can try to give more details.

Thanks for your patience. I'm doing some digging on this trying to get this error to pop out in my environment as well.
One thing investigating this led me to find was that our readme was slightly out of date. The schema line in the config file can instead look like this:
# yaml-language-server: $schema=https://unpkg.com/<EMAIL_ADDRESS>
Since we are interface stable with our config schema yaml at this point. This won't affect your issue, but it will unlock some additional scopes and options for collection. Namely: our js scope in addition to jsx and npm.
The code in question that's throwing the error is here:
https://github.com/ibm-telemetry/telemetry-js/blob/main/src/main/core/tracked-file-enumerator.ts
And it is being called by:
https://github.com/ibm-telemetry/telemetry-js/blob/main/src/main/core/get-tracked-source-files.ts
A couple things to note: After discovering source files in a project using Git, we construct absolute paths to those files to use throughout the rest of the tooling. After construction, the way we check if those absolute paths are correct is by using node's access function. Here, that's the check that's failing and causing the errors to be seen.
One possible reason for that could be that the telemetry node process does not have permission to those files. If that's the case, then the tooling won't be able to discover/analyze any source files.
There's another thing to note about pathing: When you install a dependency locally, you typically end up with a symlink in your node_modules folder to the actual location of the dep. That won't work for telemetry because the path of the dep in question will be outside of the project being analyzed, so you'll see errors showing the tooling looking for dependency and other data outside of the project you're trying to analyze. You might see things like:
error 18725 2024-06-19T21:08:18.038Z T_e Error: No package installation found for @receter/my-component-library
    at file:///Users/jdharvey/Desktop/stuffwow/my-component-library/node_modules/@ibm/telemetry-js/dist/background-process.js:473:21527
    at async Promise.all (index 2)
    at async k_e (file:///Users/jdharvey/Desktop/stuffwow/my-component-library/node_modules/@ibm/telemetry-js/dist/background-process.js:473:21581)
    at async u.captureAllMetrics (file:///Users/jdharvey/Desktop/stuffwow/my-component-library/node_modules/@ibm/telemetry-js/dist/background-process.js:473:40200)

when the files you want to analyze are in a folder called: /Users/jdharvey/Desktop/stuffwow/vite-project.
And your library is in a folder called: /Users/jdharvey/Desktop/stuffwow/my-component-library.
Said differently, it's using the "wrong" node_modules folder for all of its comparisons.
For local testing, I believe what we ended up doing was to build our instrumented component library and then run npm pack to get a zip of it. And then we'd install the zip into the project so that the files physically exist in the node_modules folder.
One more side note: The code as it is right now relies on there being an initialized git repo in which to run as well as a remote named origin configured. We have a TODO to revisit that logic, but for now, that's a potential pitfall.
Hopefully some of this helps! If you're still stuck, feel free to provide more info about what you see and I'm happy to help.

Thank you so much for your time and detailed explanations.
I'll have a look at it again and get back to you with my results.
We are really interested in this approach as that could solve a major issue we have currently in making visible real usage metrics of our inner-source libraries.

I think what was breaking was missing origin on consumer project. I pushed the project to a remote git repository, and now it looks to work. The output show that the "Button" component published from instrumented library has been found in consumer project.
Here is the output for the Button component with size and variant props. I'm super excited to get it working and thank you again for the hints.

Collected metrics
"metrics": [
          {
            "descriptor": {
              "name": "jsx.element",
              "type": "COUNTER",
              "description": "",
              "unit": "",
              "valueType": 0,
              "advice": {}
            },
            "aggregationTemporality": 1,
            "dataPointType": 3,
            "dataPoints": [
              {
                "attributes": {
                  "jsx.element.name": "Button",
                  "jsx.element.module.specifier": "@airbus/poc-telemetry-reactlib",
                  "jsx.element.attributes.names": [
                    "size",
                    "[redacted1]"
                  ],
                  "jsx.element.attributes.values": [
                    "medium",
                    "[redacted2]"
                  ],
                  "npm.dependency.instrumented.raw": "723e616f9bb6eeb4b0961b586b04bb2ab1f2997bcb3d5fd6555fa5b0f2eae264",
                  "npm.dependency.instrumented.owner": "63c4c9ea1758969d402b20c6d6ff7f4a83e3a14e3dcba7dad93d48d5905faf0d",
                  "npm.dependency.instrumented.name": "6cc9821ca41219c78ad169b6d760e998b7aeb54eb86fca93ea10252b4aafc352",
                  "npm.dependency.instrumented.version.raw": "0b88f7a63f3a40fc380aaf21abc72cc8ded9cd28d7ee901bc7327497bb683116",
                  "npm.dependency.instrumented.version.major": "0",
                  "npm.dependency.instrumented.version.minor": "0",
                  "npm.dependency.instrumented.version.patch": "5"
                },
                "startTime": [
<PHONE_NUMBER>,
                  154000000
                ],
                "endTime": [
<PHONE_NUMBER>,
                  155000000
                ],
                "value": 1
              },
              {
                "attributes": {
                  "jsx.element.name": "Button",
                  "jsx.element.module.specifier": "@airbus/poc-telemetry-reactlib",
                  "jsx.element.attributes.names": [
                    "variant",
                    "size"
                  ],
                  "jsx.element.attributes.values": [
                    "secondary",
                    "small"
                  ],
                  "npm.dependency.instrumented.raw": "723e616f9bb6eeb4b0961b586b04bb2ab1f2997bcb3d5fd6555fa5b0f2eae264",
                  "npm.dependency.instrumented.owner": "63c4c9ea1758969d402b20c6d6ff7f4a83e3a14e3dcba7dad93d48d5905faf0d",
                  "npm.dependency.instrumented.name": "6cc9821ca41219c78ad169b6d760e998b7aeb54eb86fca93ea10252b4aafc352",
                  "npm.dependency.instrumented.version.raw": "0b88f7a63f3a40fc380aaf21abc72cc8ded9cd28d7ee901bc7327497bb683116",
                  "npm.dependency.instrumented.version.major": "0",
                  "npm.dependency.instrumented.version.minor": "0",
                  "npm.dependency.instrumented.version.patch": "5"
                },
                "startTime": [
<PHONE_NUMBER>,
                  154000000
                ],
                "endTime": [
<PHONE_NUMBER>,
                  155000000
                ],
                "value": 1
              },
              {
                "attributes": {
                  "jsx.element.name": "Button",
                  "jsx.element.module.specifier": "@airbus/poc-telemetry-reactlib",
                  "jsx.element.attributes.names": [
                    "variant",
                    "size"
                  ],
                  "jsx.element.attributes.values": [
                    "primary",
                    "large"
                  ],
                  "npm.dependency.instrumented.raw": "723e616f9bb6eeb4b0961b586b04bb2ab1f2997bcb3d5fd6555fa5b0f2eae264",
                  "npm.dependency.instrumented.owner": "63c4c9ea1758969d402b20c6d6ff7f4a83e3a14e3dcba7dad93d48d5905faf0d",
                  "npm.dependency.instrumented.name": "6cc9821ca41219c78ad169b6d760e998b7aeb54eb86fca93ea10252b4aafc352",
                  "npm.dependency.instrumented.version.raw": "0b88f7a63f3a40fc380aaf21abc72cc8ded9cd28d7ee901bc7327497bb683116",
                  "npm.dependency.instrumented.version.major": "0",
                  "npm.dependency.instrumented.version.minor": "0",
                  "npm.dependency.instrumented.version.patch": "5"
                },
                "startTime": [
<PHONE_NUMBER>,
                  154000000
                ],
                "endTime": [
<PHONE_NUMBER>,
                  155000000
                ],
                "value": 1
              }
            ],

Now I'll try to figure out how to run an opentelemetry endpoint locally.
Also a question on telemetry config, is there a way to feed allowedAttributeNames and allowedAttributeStringValues more easily than just typing all the props names and props values ?
Maybe I missed something in the documentation around that part of the configuration.

Awesome! Glad you got some button metrics out of it!
The quickest way I was able to get an OTel collector running was by creating a free trial to the Elastic stack since they have a native OpenTelemetry integration via the APM Integration.
If you just want to fiddle around with requests, you basically just need to run an API endpoint that listens for POST requests on /v1/metrics. What you do with the incoming data at that point is totally up to you!
Regarding the config file, you didn't miss anything. One of the most critical aspects of this project is its protection of sensitive data. Since we use this tooling to collect data from other people's code repos, we take their code's privacy and confidentiality extremely seriously, even though that means making things a bit less convenient for those who might use this in a closed-source environment or something similar.
In terms of configuration, what that means is that the telemetry-js package is built in a way where there are no off switches for our critical security features, namely anonymization, de-identification, and allowlisting over blocklisting where sensitive information may be present.
We have taken the stance that the person instrumenting their package must explicitly define values that are 'okay' to exist in plain text in the output metrics so as to prevent our back-end data warehouse from ever being contaminated with PI, SPI, or confidential information. This mainly applies to string values being used in props or function parameters.
We fully realize that this is inconvenient for the maintainers, but given our small dev team, it has been the optimal decision for us in this regard. That's where the config generator comes into play. We want to assist in the generation of those value sets without "opening the flood gates."
With that said, if there's any aspect of the structure of the config schema that could be improved based on your use cases, we're definitely open to that. We've gotten feedback from internal teams that having to define basically the same list twice is kind of a pain, and also that if values could be specified per-component, it would make maintenance and automation a bit easier.

Totally makes sense. the strong anonymisation and de-identification approach may actually be a good thing for us, since in Airbus there are very strict rules that would block us from using telemetry otherwise.
I'm in contact with a team internally maintaining Splunk on premise. Looks like splunk supports OpenTelemetry protocol so that could be a win.

I believe you can close this issue. Thank you again for all the insights.
I've setup a basic nodejs express server to demonstrate the kind of data we can get, works perfectly.
A last question maybe : for the npm dependencies, it is perfect to get the version number of the instrumented lib. But is it possible to specify a list of other dependencies for which we would like to know if it is used and with what version ? (I'm thinking of dependencies like react/react-dom/vite/jest/mui...). I don't see how in the telemetry config schema any way to specify such a "white list" of npm dependencies : https://github.com/ibm-telemetry/telemetry-config-schema?tab=readme-ov-file#npm-scope
Looks possible from reading the doc : "What version of React/Angular/Vue... are consumers most using along with my package?"

@eric-helier Awesome! Glad you're getting some usefulness out of this project! That helps validate for me that we're heading in the right direction.
Regarding the npm scope: This one is almost the opposite of the jsx scope in terms of how much it collects by default. I'll start out by saying that I'm definitely going to make an issue to let users specify specific packages to collect as a part of the npm scope, but the purpose of that may surprise you :) It's to limit data collection, not increase it 😄. We've actually considered extending the config that way before.
The npm scope by default will look at where the instrumented package was installed, and capture one metric for every package found that is adjacent to the instrumented package. So for example, if you have a project that looks like this:
package.json
{
  "dependencies": {
    "my-cool-library": "^1.0.0",
    "react": "^18.0.0",
    "vite": "^5.3.2"
  }
}

The npm scope will [by default] capture 3 metrics. One for my-cool-library, one for react, and one for vite, along with their versions. my-cool-library will have one extra field (npm.dependency.isInstrumented), and it will be set to true so you can distinguish them from each other.
Config-wise to accomplish this, all that you should need to add in addition to the jsx scope is:
# ...
collect:
+  npm:
+    dependencies:
# ...

I'll start out by saying that I'm definitely going to make an issue to let users specify specific packages to collect

That would be a great feature 👍
Also maybe there could be ways to reduce the output sent to opentelemetry protocol to a more lightweight data set.
I've tested our real react library on a dozen real projects.
npm scope output vary around 200k and jsx output around 1/2mb.
That's quite big as the huge majority of the data is unreadable by default, maybe there could be an option to only send readable information ?
Another question regarding project's information, would that be ok to provide a way to get the package.json name entry ?
Currently as I understand we only get an anonymised name (I wrongly thought initially that project.id would be that, but it's the instrumented library project id).
How do you manage on your side to get an understanding of which project is attached to some collected data ? Or do you simply ignore that level of information ?

Hello again.
Regarding the initial error of this issue, I think I've found a reproducible use case that throw this error.
This is also easy to test with unit tests of this method https://github.com/ibm-telemetry/telemetry-js/blob/9695b5199ac8e583f12b94a37f4f1680692d5b28/src/main/core/tracked-file-enumerator.ts#L66
Here was my parameters for root and trackedFile

root :  /Users/helier_e/Dev/projects/someproject-xxxx-cockpit
trackedFile : cockpit/config/env.js

In this case, the finalPath value is "/Users/helier_e/Dev/projects/someproject-xxxx-cockpit/config/env.js" which is wrong.
it should be "/Users/helier_e/Dev/projects/someproject-xxxx-cockpit/cockpit/config/env.js"
I've been able to workaround this issue by renaming the project folder to "someproject-xxxx" (removing the "cockpit" from the end of the folder name).
I believe this could happen quite frequently, I've currently tested the approach on a dozen real projects, and two of them had this issue.

I can try to provide the changes needed to make the two examples work if that sounds good for you 🙂

@eric-helier this issue should be fixed in v1.6.0, let us know otherwise and thanks again for reporting 🙏🏻

That's quite big as the huge majority of the data is "unreadable", maybe there could be an option to only send readable information ?

@eric-helier That's a great suggestion! I'm gonna add that to our project board for the next team we do a prioritization exercise. You're definitely right that it's a lot of data.

Another question regarding project's information, would that be ok to provide a way to get the package.json name entry ?
Currently as I understand we only get an anonymised name (I wrongly thought initially that project.id would be that, but it's the instrumented library project id).
How do you manage on your side to get an understanding of which project is attached to some collected data ? Or do you simply ignore that level of information ?

You're definitely right that currently we only keep the anonymized version of the actual name field from the package.json file and use the npm.dependency.isInstrumented field to determine which of the incoming metrics represents the instrumented package.
The purpose of the projectId is mostly to outlast renames/restructurings of packages or one package superseding another. I wanted the data to all still be relatable even if a package was renamed or restructured for some reason. We've seen that happen a couple times in our package ecosystem, and I wanted the flexibility to tolerate that at the earliest point possible. So we assign a projectId to every instrumented package, and along with that ID, we store all known names of the package in plain text, the maintainer, and some other metadata. It's just a basic NoSQL database, but that's what allows us to make that correlation.
Generally speaking, when you "collect" the data on the server side, you can add to it however makes the most sense to you. That could mean looking up an incoming hash in a set of known hashes and adding some human-readable fields prior to storage. That could also be done periodically as a batch job or something, too. There's also some internal IDs that we attach to certain repos and projects prior to storing them in our data warehouse to make future lookup and correlation more convenient.
With all of that said, I'm going to add another entry on our project board to simply consider adding a "project.name" field to the transmitted data :)

Thanks for the answer. FYI I already added two separates entries to the github issues, so you can close this one and decide what to do for the two other topics

https://github.com/ibm-telemetry/telemetry-js/issues/255
https://github.com/ibm-telemetry/telemetry-js/issues/254


Exists check logs error "An error occurred using the connection..."

I am seeing a lot of errors like this when using the tools.

An error occurred using the connection to database 'main' on server 'Test.db'.

There are two issues with them:

We expect these errors when checking if the database exists. Can we suppress (or dampen their log level) in this case?
Logging errors terminates the process in PMC meaning you have to call Update-Database a few times before it succeeds. (fixed)

Log a debug message when using the path from Exists.


It's not working

Please add more information like:

laravel version
OS
backup version
and any error message you can see

Thank you for replying sir, but I have solved the issue. The issue was that I had not specified the location of the mysqldump.exe file in the config/backup.php properly or rather just gave the path for the file instead of specifying the file name itself. I did not know that I had to do that because I did not find that in the description. I would be nice to specify that in the description(Quick Installation) so that future users wont get confused.
It's working perfectly fine for me right now. Thanks for creating this. Helped me big time. Thank you again sir.

@rohitkapali yes you are right the option is there in the config file indications but not in the docs, I'll add it. You're welcome =)


⚠ ClamAV has degraded performance

In 834dcf2, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 70 ms

Resolved: ClamAV performance has improved in a72b7d9.


MINOR: Add connector configs to site-docs

In AK's documentation, the config props for connectors are not listed (https://kafka.apache.org/documentation/#connectconfigs). This PR adds these sink and source connector configs to the html site-docs.
Signed-off-by: Arjun Satish<EMAIL_ADDRESS>Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

@ewencp @rhauch any thoughts on this?

Thanks, Ewen!


Add slice config to strip Range header for HEAD requests

Added config in slice plugin to remove Range header from HEAD requests. When enabled, HEAD requests going through slice will always return full object content length

@pparam=--strip-range-for-head
Docs updated and autest added

[approve ci autest]

[approve ci autest]

id be +1 on this for 9.2.1, it's an experimental plugin so not a large change to core code and its pretty isolated in the change as well

Cherry-picked to v9.2.x


Fix JSON parser error on survey content

The getSurveyContent method was causing JSON parser error in QuestionReader line 38.

closing as project has moved to: https://github.com/konveyor/tackle-pathfinder


Python Version

Is there any python+opencv version to this algorithm or do you ever mind if I develop one and put it in the github?

Hi,
Actually the AdaptiveManifoldFilter was included into opencv_contrib repository and should already have Python bindings.
See https://github.com/opencv/opencv_contrib/blob/master/modules/ximgproc/include/opencv2/ximgproc/edge_filter.hpp#L262
See the instructions in  https://github.com/opencv/opencv_contrib
This repository might be considered as obsolete.


proposal: os: increase os.ReadDir() dirent buffer from 8KiB to 32KiB

Proposal Details
Propose to increase the dirent buffer blockSize from 8KiB to 32KiB in src/os/dir_unix.go for os.ReadDir() to align with glibc [1] [2], as they both wrap getdents64() syscall in Linux systems.
Background
Machine: 4 core 8 GiB VM via UTM on MacBook Pro, Apple M2 Pro arm64 CPU, native virtualization
OS: Fedora 38 (tried CentOS 9, Ubuntu 22), Linux 6.5.10 (tried V1 patch in [3]), 4 KiB page size (tried 16 KiB)
Go: go version go1.20.10 linux/arm64
I was trying out continuous profiling tools (pyroscope, inspektor-gadget) and found os.ReadDir("/proc") sometimes dominate the CPU time while CPU util% is low like <=5%. Here is the flamegraph.
Observation
os.ReadDir() is a wrapper of getdents64() like glibc, confirm it by tracing (2nd column is latency):
# perf trace -e getdents64 -p `pidof gadgettracermanager` sleep 3
     0.000 ( 0.335 ms): gadgettracerma/8544 getdents64(fd: 28, dirent: 0x40031a4000, count: 8192) = 8184
     0.397 ( 0.093 ms): gadgettracerma/8544 getdents64(fd: 28, dirent: 0x40031a4000, count: 8192) = 688
     0.665 ( 0.187 ms): gadgettracerma/8544 getdents64(fd: 28, dirent: 0x40031a4000, count: 8192) = 0
  1000.545 ( 1.035 ms): gadgettracerma/8544 getdents64(fd: 28, dirent: 0x4000af2000, count: 8192) = 8184
  1001.785 ( 0.258 ms): gadgettracerma/8544 getdents64(fd: 28, dirent: 0x4000af2000, count: 8192) = 688
  1002.070 ( 0.058 ms): gadgettracerma/8544 getdents64(fd: 28, dirent: 0x4000af2000, count: 8192) = 0
  2000.946 ( 1.208 ms): gadgettracerma/8544 getdents64(fd: 28, dirent: 0x40031a4000, count: 8192) = 8184
  2002.478 ( 0.199 ms): gadgettracerma/8544 getdents64(fd: 28, dirent: 0x40031a4000, count: 8192) = 688
  2002.820 ( 0.087 ms): gadgettracerma/8544 getdents64(fd: 28, dirent: 0x40031a4000, count: 8192) = 0

The monitoring daemon calls os.ReadDir("/proc") every 1s to get all process IDs, and latency spikes (1ms to 2ms) can be observed. The dirent buffer size is 8KiB, one os.ReadDir() results in 3 getdents64() to get all the PIDs (roughly 300).
Trace ps to see how glibc behaves:
# perf trace -e getdents64 ps -eo pid > /dev/null
     0.000 ( 0.206 ms): ps/74672 getdents64(fd: 5, dirent: 0xaaaad37a9080, count: 32768) = 9552
     3.328 ( 0.023 ms): ps/74672 getdents64(fd: 5, dirent: 0xaaaad37a9080, count: 32768) = 0

glibc uses 32KiB dirent buffer [1] [2], so result in 2 getdents64(), less syscalls. Latency is lower probably because of directory cache (dcache) hit warmed up by the monitoring daemon every 1s, see the reproduce program traces below.
Reproduce
This os.ReadDir() hotspot can be reproduced without the monitoring system:
# cat readdir.go
package main

import (
    "fmt"
    "os"
    "strconv"
    "time"
)

func repeat_routine(dir string, loop int) {
    var output []int
    for i := 0; i < loop; i++ {
        dirEntries, err := os.ReadDir(dir)
        check(err)
        output = nil
        for _, entry := range dirEntries {
            pid, err := strconv.Atoi(entry.Name())
            if err != nil {
                // entry is not a process directory. Ignore.
                continue
            }
            output = append(output, pid)
        }
    }
    fmt.Println(output)
}

func check(e error) {
    if e != nil {
        panic(e)
    }
}

func main() {
    if len(os.Args) < 4 {
        fmt.Println("Need input: dir loop runtime");
        os.Exit(-1)
    }

    dir := os.Args[1]
    count, err := strconv.Atoi(os.Args[2])
    check(err)
    runtime, err := strconv.Atoi(os.Args[3])
    check(err)

    for i := 0; i < runtime; i++ {
        repeat_routine(dir, count)
        time.Sleep(time.Second)
    }
}

Run above reproduce program and monitoring daemons at the same time:
# perf trace -e getdents64 ./readdir_go /proc 1 3 > /dev/null
     0.000 ( 0.272 ms): readdir_go/65676 getdents64(fd: 3, dirent: 0x40000b2000, count: 8192) = 8184
     0.314 ( 0.054 ms): readdir_go/65676 getdents64(fd: 3, dirent: 0x40000b2000, count: 8192) = 688
     0.384 ( 0.016 ms): readdir_go/65676 getdents64(fd: 3, dirent: 0x40000b2000, count: 8192) = 0
  1000.748 ( 0.368 ms): readdir_go/65676 getdents64(fd: 3, dirent: 0x4000108000, count: 8192) = 8184
  1001.295 ( 0.233 ms): readdir_go/65676 getdents64(fd: 3, dirent: 0x4000108000, count: 8192) = 688
  1001.591 ( 0.044 ms): readdir_go/65676 getdents64(fd: 3, dirent: 0x4000108000, count: 8192) = 0
  2003.251 ( 0.329 ms): readdir_go/65676 getdents64(fd: 3, dirent: 0x40000b2000, count: 8192) = 8184
  2003.802 ( 0.117 ms): readdir_go/65676 getdents64(fd: 3, dirent: 0x40000b2000, count: 8192) = 688
  2004.061 ( 0.070 ms): readdir_go/65676 getdents64(fd: 3, dirent: 0x40000b2000, count: 8192) = 0

Stop the monitoring daemons and run the program alone (8KiB buffer is sufficient when less threads):
# perf trace -e getdents64 ./readdir_go /proc 1 3 > /dev/null
     0.000 ( 0.271 ms): readdir_go/66797 getdents64(fd: 3, dirent: 0x4000120000, count: 8192) = 7920
     0.319 ( 0.018 ms): readdir_go/66797 getdents64(fd: 3, dirent: 0x4000120000, count: 8192) = 0
  1005.351 ( 1.412 ms): readdir_go/66797 getdents64(fd: 3, dirent: 0x40000a4000, count: 8192) = 7920
  1007.017 ( 0.200 ms): readdir_go/66797 getdents64(fd: 3, dirent: 0x40000a4000, count: 8192) = 0
  2012.598 ( 1.014 ms): readdir_go/66797 getdents64(fd: 3, dirent: 0x4000120000, count: 8192) = 7920
  2013.985 ( 0.126 ms): readdir_go/66797 getdents64(fd: 3, dirent: 0x4000120000, count: 8192) = 0

Bottom-up analysis
System level
Some search results [3] [4] show Linux procfs has scalability issue in proc_pid_readdir() when many threads. Here it's a 4 core 8 GiB arm64 VM with 300 threads, and system is idle without any workloads yet. I did some verifications:

Guest VM is running 4KiB page size kernel while host M2 processor's native page size is 16KiB. Memory traversal may be less efficient in this manner. I tried 16KiB page guest kernel, but not helpful.
I tried VMs in the cloud with same 4 core 8 GiB configuration and same software, os.ReadDir("/proc")'s max latency is lower than desktop VM: AMD Epyc 7T83 VM is < 0.28ms, ARM Neoverse N2 VM is < 0.36ms.
I applied the Linux kernel patch V1 in [3], it's helpful to eliminate radix-tree hotspot, but remaining part __d_lookup() becomes most significant in proc_pid_readdir(). Here is the flamegraph for it.
https://github.com/torvalds/linux/commit/3ba4bceef23206349d4130ddf140819b365de7c8 mentioned proc_pid_readdir() can take more than 50ms and added cond_resched() in it.

So os.ReadDir("/proc") can be slow in Linux systems, sometimes because of the processor, sometimes system loads.
Standard library
I found https://github.com/golang/go/issues/24015 increased the blockSize to 8KiB to fix missing CIFS file bug. It's somewhat similar to the comment in glibc [2], so increase to the same 32KiB lower limit as glibc may be good for both compatibility and performance described above.
Checked solaris/illumos libc as a reference, filesystem independent dirent buffer lower limit is 8KiB, and upper limit is 64KiB.
Application level
Monitoring software checks PIDs often, some may change to use sysfs instead of procfs, like the cgroup.procs file for container process where linux sub-system stores the PIDs in one memory place without frequent memory traversal in /proc.
Suggestion
Align with glibc implementation to allocate 32KiB buffer for dirent buffer for better performance and compatiblity.
diff --git a/src/os/dir_unix.go b/src/os/dir_unix.go
index 266a78acaf..6e8c821c21 100644
--- a/src/os/dir_unix.go
+++ b/src/os/dir_unix.go
@@ -23,7 +23,7 @@ type dirInfo struct {

 const (
        // More than 5760 to work around https://golang.org/issue/24015.
-       blockSize = 8192
+       blockSize = 32768
 )

[1] https://sourceware.org/git/?p=glibc.git;a=commit;h=4b962c9e859de23b461d61f860dbd3f21311e83a
[2]<EMAIL_ADDRESS>[3]<EMAIL_ADDRESS>[4] https://www.usenix.org/system/files/srecon22emea_slides_liku.pdf

Thanks for the thorough investigation on the matter and the nice write-up of the findings!
I don't see any issues with raising the buffer to 32K, specially since glibc already did it.
Taking this out of the proposal process as it doesn't involve API changes.

cc @rsc @robpike @ianlancetaylor @bradfitz @griesemer


Can't start gdb instance.

First of all nice plugin and thank you for it.
I tried to use this plugin in neovim but it's sort of working.
I tried to follow README but without succes. So after running:Nbgdb t1  i got new window but there is no gdb in it, just bash prompt. I can start it myself and then I can work with plugin. Also there is no GdbLocal command. I am asking that because I want to have backtrace and breakpoint windows.
Thx.

So after running:Nbgdb t1 i got new window but there is no gdb in it

[+] This related to nvim, we can press  when focus the gdb-window to force refresh the inline terminal window.

Also there is no GdbLocal command.

[+] Sorry for this, that's old command, and I'm not remove it.

I want to have backtrace and breakpoint windows

[+] The default layout of local not show the backtrace, we can enable it by adding these lines to .vimrc:
let g:neobugger_local_backtrace = 1
let g:neobugger_local_breakpoint = 1

[+] This related to nvim, we can press when focus the gdb-window to force refresh the inline terminal window.
It dosen't help.
I think that is also a reason I can't see backtrace and breakpoint window.

@thegala  Do you add that two lines to your vimrc according.
BTW, the editor should be nvim.
I test it local, it should work.

I tried on other PC it's working. I guess it's problem with my configuration.

@thegala Thanks you find the resolution. :)
Could you tell me how to fix your issue? for example:

Add these to the bashrc:
set +o emacs
set +o vi

Start a new bash without editing
bash --noediting --rcfile /tmp/tmp.bashrc

Or something else?

Well, it's little more complicated then I  assumed.
There are few problems.
Configuration for readline is in .readlinerc.
This is my readline configuration:
set show-all-if-ambiguous on
set visible-stats on
set colored-stats on
set completion-ignore-case on
set completion-map-case on
set completion-prefix-display-length 2
set show-all-if-ambiguous on
set show-all-if-unmodified on
set page-completions off
set editing-mode vi
set show-mode-in-prompt on
set vi-ins-mode-string +
set vi-cmd-mode-string :
# set keymap vi
Tab: menu-complete

Also vim plugin airline is creating problem. So I need to disable him to get plugin sort of working.
After running
:Nbgdb t1
Starts shell and gdb in it.
gdb --command /home/mirko/.config/nvim/plugged/new-gdb.vim/plugin/gdbinit -q -f --args
 t1

But after that there is no commands inside gdb shell.
So there is no backtrace or breakpoint windows.
Last thing to get this working was to custom prompt setting from .gdbinit.
This is custom gdb that is causing problems.
set prompt \033[31mgdb$ \033[0m
Just to clarify old plugin https://github.com/huawenyu/new-gdb.vim is working fine. Only problem is there is no backtrace or brakepoint windows.

Thanks your detail explation.


fix(imgcache): Reduce likelihood of image scan cache misses

Description
There is an edge case where pulling previously enriched images from Central DB/Sensor cache will miss, these misses would occur prior to but are likely more frequent with the introduction of Unqualified Search Registries.  The edge case occurs when:

2+ images with different names but the same digest exist in a cluster
An image with a bad name already exists in Central DB (defined as no metadata previously obtained)
An enrichment is requested from Sensor with a different fully qualified name then what exists in Central DB.
And the enrichment with the fully qualified name fails consistently (for any reason, such as bad creds, scanner broken, etc.)

This will cause central to return an image with 'names' from the central db (or truncated to just the requested image with unqualified search registries). This ultimately causes the 'names' in the image stored in the sensor cache to 'flap' in such a way that the cache will miss each time Sensor receives alternating informer events for the 2+ images.  This combined with central not updating the DB for an image if the enrichment fails creates a scenario where the 'additional' names for an image are never stored and therefore the cache always misses ('names' are used to determine if a cache hit occurs in both Central and Sensor)
This PR:

Changes Sensor to always append image names to scan cache entries (only removing entries on expiry).
Changes Central to update a stored image if the existing image didn't contain metadata but the new one does even if scanning or sig fetching fails.

The changes are behind the ROX_UNQUALIFIED_SEARCH_REGISTRIES feature flag as we expect the fix to be introduced as part of a patch release.
Checklist

[ ] Investigated and inspected CI test results
[ ] Unit test and regression tests added
[ ] Evaluated and added CHANGELOG entry if required
[x] Determined and documented upgrade steps
[x] Documented user facing changes (create PR based on openshift/openshift-docs and merge into rhacs-docs)

If any of these don't apply, please comment below.
Testing Performed
TBD

Closing this PR, going to split each enhancement into separate PRs for easier cherry picking.

Perhaps the most change: https://github.com/stackrox/stackrox/pull/11359


Use XML escape entities when writting project files to replace <, >, &, ...

Projects containing these characters fail to load now.
Replacing them manually in the project file by <, >, ..., projects load and render correctly.

False alarm.


Add support for specifying operation names in client generation.

Is there any progress on this?  I am looking for a way to add operation name.

We haven't been able to prioritize this issue yet. Feel free to open a PR if it's blocking your efforts. We will be able to get to it over the next few weeks.

Duplicate of this issue: https://github.com/Netflix/dgs-codegen/issues/354.  Closing this one.


GetUserAvailability request only returns items for last mailbox in MailboxDataArray

Since im unable to access the support chat, i am going to try my luck here. I hope this is fine.
I am trying to fetch the calendar items of multiple rooms in order to determine which one is free at the given time. However, in the response i get from the server, there is only one CalendarEventArray which contains the items of the last entry in my MailboxDataArray (room2@company.com). Is there anything im missing?
Request:
const ewsArgsAv = {
  'TimeZone': {
    'Bias': '-60',
    'StandardTime': {
      'Bias': '0',
      'Time': '02:00:00',
      'DayOrder': '5',
      'Month': '10',
      'DayOfWeek': 'Sunday',
    },
    'DaylightTime': {
      'Bias': '-60',
      'Time': '02:00:00',
      'DayOrder': '1',
      'Month': '4',
      'DayOfWeek': 'Sunday',
    }
  },
  'MailboxDataArray': {
    'MailboxData': {
      'Email': {
        'Address'<EMAIL_ADDRESS>      },
      'AttendeeType': 'Room',
      'ExcludeConflicts': 'false'
    },
    'MailboxData': {
      'Email': {
        'Address'<EMAIL_ADDRESS>      },
      'AttendeeType': 'Room',
      'ExcludeConflicts': 'false'
    }
  },
  'FreeBusyViewOptions': {
    'TimeWindow': {
      'StartTime': '2018-06-18T00:26:44',
      'EndTime': '2018-06-18T23:26:44'
    },
    'MergedFreeBusyIntervalInMinutes': '60',
    'RequestedView': 'Detailed'
  }
}

Response:
{
   "FreeBusyResponseArray":{
      "FreeBusyResponse":{
         "ResponseMessage":{
            "attributes":{
               "ResponseClass":"Success"
            },
            "ResponseCode":"NoError"
         },
         "FreeBusyView":{
            "FreeBusyViewType":"DetailedMerged",
            "MergedFreeBusy":"00000000022222220000000",
            "CalendarEventArray":{
               "CalendarEvent":[
                  {
                     "StartTime":"2018-06-18T09:30:00",
                     "EndTime":"2018-06-18T12:00:00",
                     "BusyType":"Busy",
                     "CalendarEventDetails":{
                        "ID":"00000000F64E448C1D682F46B381613F00369AD50700CEF39665EF7BC746BBD2D1EEFFF1B51A0038774FA144000019FD60B3AE971C47B3E1CFD98C307CA100037C3360350000",
                        "Subject":"Meeting 1",
                        "Location":"Room 2",
                        "IsMeeting":"true",
                        "IsRecurring":"false",
                        "IsException":"false",
                        "IsReminderSet":"false",
                        "IsPrivate":"false"
                     }
                  },
                  {
                     "StartTime":"2018-06-18T13:00:00",
                     "EndTime":"2018-06-18T14:00:00",
                     "BusyType":"Busy",
                     "CalendarEventDetails":{
                        "ID":"00000000F64E448C1D682F46B381613F00369AD50700CEF39665EF7BC746BBD2D1EEFFF1B51A0038774FA144000019FD60B3AE971C47B3E1CFD98C307CA100037C3360430000",
                        "Subject":"Meeting 2",
                        "Location":"Room 2",
                        "IsMeeting":"true",
                        "IsRecurring":"false",
                        "IsException":"false",
                        "IsReminderSet":"false",
                        "IsPrivate":"false"
                     }
                  },
                  {
                     "StartTime":"2018-06-18T15:00:00",
                     "EndTime":"2018-06-18T15:30:00",
                     "BusyType":"Busy",
                     "CalendarEventDetails":{
                        "ID":"00000000F64E448C1D682F46B381613F00369AD50700CEF39665EF7BC746BBD2D1EEFFF1B51A0038774FA144000019FD60B3AE971C47B3E1CFD98C307CA100037C335FFA0000",
                        "Subject":"Meeting 3",
                        "Location":"Room 2",
                        "IsMeeting":"true",
                        "IsRecurring":"true",
                        "IsException":"false",
                        "IsReminderSet":"false",
                        "IsPrivate":"false"
                     }
                  }
               ]
            },
            "WorkingHours":{
               "TimeZone":{
                  "Bias":"-60",
                  "StandardTime":{
                     "Bias":"0",
                     "Time":"03:00:00",
                     "DayOrder":"5",
                     "Month":"10",
                     "DayOfWeek":"Sunday"
                  },
                  "DaylightTime":{
                     "Bias":"-60",
                     "Time":"02:00:00",
                     "DayOrder":"5",
                     "Month":"3",
                     "DayOfWeek":"Sunday"
                  }
               },
               "WorkingPeriodArray":{
                  "WorkingPeriod":{
                     "DayOfWeek":"Monday Tuesday Wednesday Thursday Friday",
                     "StartTimeInMinutes":"480",
                     "EndTimeInMinutes":"1020"
                  }
               }
            }
         }
      }
   }
}

Node ews seems to have this problem all over the place... I get it with find item properties and free busy periods. I'm surprised anybody can use this library without running into errors.

I have since switched to ews-javascript-api since i got no response here. Works well for me and seems to be a better choice for your js-related EWS needs in general.

Disclaimer: I know this is 2 yrs old, but it might help somebody... so here you go.
It's about the correct way to defined the Array in JSON. In the code you provided, the second 'MailboxData' just overwrote the first. I had success in forming this part like:
'MailboxDataArray': {
    'MailboxData': [
    {
      'Email': {
        'Address'<EMAIL_ADDRESS>      },
      'AttendeeType': 'Room',
      'ExcludeConflicts': 'false'
    },
    {
      'Email': {
        'Address'<EMAIL_ADDRESS>      },
      'AttendeeType': 'Room',
      'ExcludeConflicts': 'false'
    }]
  },

Disclaimer: I know this is 2 yrs old, but it might help somebody... so here you go.
It's about the correct way to defined the Array in JSON. In the code you provided, the second 'MailboxData' just overwrote the first. I had success in forming this part like:
'MailboxDataArray': {
    'MailboxData': [
    {
      'Email': {
        'Address'<EMAIL_ADDRESS>      },
      'AttendeeType': 'Room',
      'ExcludeConflicts': 'false'
    },
    {
      'Email': {
        'Address'<EMAIL_ADDRESS>      },
      'AttendeeType': 'Room',
      'ExcludeConflicts': 'false'
    }]
  },


Rescue Java::JavaLang::OutOfMemoryError and print a useful error message

As reported in #4572, it's very possible for Bundler to run the JVM out of memory, especially on memory-constrained JVM instances. We should rescue this error and print an explanatory message, rather than barfing a stacktrace and asking users to report the bug as a new issue. Here's a draft error message:

Your JVM has run out of memory, and Bundler cannot continue. You can decrease the amount of memory Bundler needs by removing gems from your Gemfile, especially large gems. (Gems can be as large as hundreds of megabytes, and Bundler has to read those files!). Alternatively, you can increase the amount of memory the JVM is able to use by running Bundler with jruby -J-Xmx1024m -S bundle (JRuby defaults to 500MB).

Can just add this to friendly_errors

FWIW, JRuby already will display such a message if the OOM bubbles all the way out, and memory errors can be notoriously tricky to rescue (because we're at a memory limit already). Feel free to add this message if it fits the rest of the system though, and let me know if you have any trouble rescuing the error.


Browsers compatibility for 'react-cookies'

Excuse my ignorance, but from the image below: does it mean that this package will not work on browsers releases before those versions?
I guess that this is not the case, so what does those browser versions mean?
And what is the browser compatibility? How can I know that?
Thanks

I want to know the same. fyi IE 11 is not supported because you dont polyfill promises

No, it only teels which version it has been tested on.


More options to the solver

Besides the max iteration option, the solver should accept other options.
And there should be some way to set the option for default parameters of the solver.

After consideration, there should be no way to change the default behavior of the solver.
And now convexjlr should support multiple options for solver SCS and ECOS.


Error: Request failed with status code 401. Please refresh the page if the issue continues. invalid jwt

Describe the problem
After upgrading from v0.14.4 to v0.21.3 I am unable to access the dashboard and get this error:

I suspect this is related to the new IdP changes but I am not sure what.
To Reproduce
Steps to reproduce the behavior:

Pull latest https://github.com/netbirdio/netbird.git
Copy infrastructure_files/setup.env.template to infrastructure_files/setup.env (overwrite existing file from old version)
Fill in correct values noting these changes:

Generate a client secret for the netbird-client in Keycloak and NETBIRD_AUTH_CLIENT_SECRET
Create a new client netbird-backend and follow the steps here: https://docs.netbird.io/selfhosted/identity-providers#step-8-create-a-net-bird-backend-client

Re-run ./configure.sh
Run docker compose pull && docker compose down && docker compose up -d

Expected behavior
Things work as they used to
Additional context
I tried setting NETBIRD_MGMT_IDP="none" and the dashboard loads but no clients can connect with this error:
netbird up --management-url https://netbird.XXX:33073 --admin-url https://netbird.XXX:443
Error: login failed: rpc error: code = NotFound desc = no SSO provider returned from management. If you are using hosting Netbird see documentation at https://github.com/netbirdio/netbird/tree/main/management for details

Hello @a7g4 , can you share the management service logs and your setup.env file after masking the sensitive information (domains, secret keys, etc) from it?

setup.env:
## example file, you can copy this file to setup.env and update its values
##
# Dashboard domain. e.g. app.mydomain.com
NETBIRD_DOMAIN="netbird.XXX"

# -------------------------------------------
# OIDC
#  e.g., https://example.eu.auth0.com/.well-known/openid-configuration
# -------------------------------------------
NETBIRD_AUTH_OIDC_CONFIGURATION_ENDPOINT="https://keycloak.XXX/realms/corp/.well-known/openid-configuration"
NETBIRD_AUTH_AUDIENCE="netbird-client"
# e.g. netbird-client
NETBIRD_AUTH_CLIENT_ID="netbird-client"
NETBIRD_AUTH_CLIENT_SECRET="XXX"
# if you want to use a custom claim for the user ID instead of 'sub', set it here
# NETBIRD_AUTH_USER_ID_CLAIM=""
# indicates whether to use Auth0 or not: true or false
NETBIRD_USE_AUTH0="false"
# if your IDP provider doesn't support fragmented URIs, configure custom
# redirect and silent redirect URIs, these will be concatenated into your NETBIRD_DOMAIN domain.
# NETBIRD_AUTH_REDIRECT_URI="/peers"
# NETBIRD_AUTH_SILENT_REDIRECT_URI="/add-peers"
# Updates the preference to use id tokens instead of access token on dashboard
# Okta and Gitlab IDPs can benefit from this
# NETBIRD_TOKEN_SOURCE="idToken"
# -------------------------------------------
# OIDC Device Authorization Flow
# -------------------------------------------
NETBIRD_AUTH_DEVICE_AUTH_PROVIDER="netbird-client"
NETBIRD_AUTH_DEVICE_AUTH_CLIENT_ID=""
# Some IDPs requires different audience, scopes and to use id token for device authorization flow
# you can customize here:
NETBIRD_AUTH_DEVICE_AUTH_AUDIENCE=$NETBIRD_AUTH_AUDIENCE
NETBIRD_AUTH_DEVICE_AUTH_SCOPE="openid"
NETBIRD_AUTH_DEVICE_AUTH_USE_ID_TOKEN=false
# -------------------------------------------
# IDP Management
# -------------------------------------------
# eg. zitadel, auth0, azure, keycloak
NETBIRD_MGMT_IDP="keycloak"
# Some IDPs requires different client id and client secret for management api
NETBIRD_IDP_MGMT_CLIENT_ID="netbird-backend"
NETBIRD_IDP_MGMT_CLIENT_SECRET="XXX"
NETBIRD_IDP_MGMT_EXTRA_ADMIN_ENDPOINT="https://keycloak.XXX/admin/realms/corp"
# NETBIRD_IDP_MGMT_EXTRA_ variables. See https://docs.netbird.io/selfhosted/identity-providers for more information about your IDP of choice.
# -------------------------------------------
# Letsencrypt
# -------------------------------------------
# Disable letsencrypt
#  if disabled, cannot use HTTPS anymore and requires setting up a reverse-proxy to do it instead
NETBIRD_DISABLE_LETSENCRYPT=false
# e.g<EMAIL_ADDRESS>NETBIRD_LETSENCRYPT_EMAIL="XXX"
# -------------------------------------------
# Extra settings
# -------------------------------------------
# Disable anonymous metrics collection, see more information at https://netbird.io/docs/FAQ/metrics-collection
NETBIRD_DISABLE_ANONYMOUS_METRICS=false
# DNS DOMAIN configures the domain name used for peer resolution. By default it is netbird.selfhosted
NETBIRD_MGMT_DNS_DOMAIN=XXX

Management logs:
infrastructure_files-management-1  | time="2023-06-16T20:13:49Z" level=info msg="loading OIDC configuration from the provided IDP configuration endpoint https://keycloak.XXXX/realms/corp/.well-known/openid-configuration"
infrastructure_files-management-1  | time="2023-06-16T20:13:50Z" level=info msg="loaded OIDC configuration from the provided IDP configuration endpoint: https://keycloak.XXX/realms/corp/.well-known/openid-configuration"
infrastructure_files-management-1  | time="2023-06-16T20:13:50Z" level=info msg="overriding HttpConfig.AuthIssuer with a new value https://keycloak.XXX/realms/corp, previously configured value: https://keycloak.XXX/realms/corp"
infrastructure_files-management-1  | time="2023-06-16T20:13:50Z" level=info msg="overriding HttpConfig.AuthKeysLocation (JWT certs) with a new value https://keycloak.XXX/realms/corp/protocol/openid-connect/certs, previously configured value: https://keycloak.XXX/realms/corp/protocol/openid-connect/certs"
infrastructure_files-management-1  | 2023-06-16T20:13:50Z INFO management/server/telemetry/app_metrics.go:161: enabled application metrics and exposing on http://<IP_ADDRESS>:8081
infrastructure_files-management-1  | 2023-06-16T20:13:50Z INFO management/server/account.go:638: single account mode enabled, accounts number 1
infrastructure_files-management-1  | 2023-06-16T20:13:50Z INFO management/cmd/management.go:233: running gRPC backward compatibility server: [::]:33073
infrastructure_files-management-1  | 2023-06-16T20:13:50Z INFO management/cmd/management.go:265: running HTTP server and gRPC server on the same port: [::]:443
infrastructure_files-management-1  | 2023-06-16T20:13:50Z INFO management/server/account.go:825: warmed up IDP cache with 0 entries
infrastructure_files-management-1  | 2023-06-16T20:13:54Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:13:54Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response<PHONE_NUMBER>: GET /api/users status 401
infrastructure_files-management-1  | 2023-06-16T20:13:55Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:13:55Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:13:55Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:13:55Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response<PHONE_NUMBER>: GET /api/users status 401
infrastructure_files-management-1  | 2023-06-16T20:13:55Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response<PHONE_NUMBER>: GET /api/peers status 401
infrastructure_files-management-1  | 2023-06-16T20:13:55Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response<PHONE_NUMBER>: GET /api/groups status 401
infrastructure_files-management-1  | 2023-06-16T20:14:30Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:14:30Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:14:30Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:14:30Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response 880387937: GET /api/users status 401
infrastructure_files-management-1  | 2023-06-16T20:14:30Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response<PHONE_NUMBER>: GET /api/peers status 401
infrastructure_files-management-1  | 2023-06-16T20:14:31Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response<PHONE_NUMBER>: GET /api/groups status 401
infrastructure_files-management-1  | 2023-06-16T20:14:50Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:14:50Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response 508241012: GET /api/users status 401
infrastructure_files-management-1  | 2023-06-16T20:14:50Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:14:50Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:14:50Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:14:50Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response<PHONE_NUMBER>: GET /api/users status 401
infrastructure_files-management-1  | 2023-06-16T20:14:50Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response<PHONE_NUMBER>: GET /api/peers status 401
infrastructure_files-management-1  | 2023-06-16T20:14:50Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response<PHONE_NUMBER>: GET /api/groups status 401
infrastructure_files-management-1  | 2023-06-16T20:14:59Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:14:59Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response 710235830: GET /api/users status 401
infrastructure_files-management-1  | 2023-06-16T20:15:00Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:15:00Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:15:00Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:15:00Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response<PHONE_NUMBER>: GET /api/users status 401
infrastructure_files-management-1  | 2023-06-16T20:15:00Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response<PHONE_NUMBER>: GET /api/peers status 401
infrastructure_files-management-1  | 2023-06-16T20:15:00Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response 137198349: GET /api/groups status 401
infrastructure_files-management-1  | 2023-06-16T20:15:13Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:15:13Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:15:13Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:15:13Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:15:13Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response<PHONE_NUMBER>: GET /api/groups status 401
infrastructure_files-management-1  | 2023-06-16T20:15:13Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response<PHONE_NUMBER>: GET /api/groups status 401
infrastructure_files-management-1  | 2023-06-16T20:15:14Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response<PHONE_NUMBER>: GET /api/users?service_user=false status 401
infrastructure_files-management-1  | 2023-06-16T20:15:14Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response 849930274: GET /api/users status 401
infrastructure_files-management-1  | 2023-06-16T20:15:24Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:15:24Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response<PHONE_NUMBER>: GET /api/users status 401
infrastructure_files-management-1  | 2023-06-16T20:15:25Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:15:25Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:15:25Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:15:25Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response<PHONE_NUMBER>: GET /api/users status 401
infrastructure_files-management-1  | 2023-06-16T20:15:25Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response<PHONE_NUMBER>: GET /api/groups status 401
infrastructure_files-management-1  | 2023-06-16T20:15:25Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response<PHONE_NUMBER>: GET /api/peers status 401
infrastructure_files-management-1  | 2023-06-16T20:19:01Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:19:01Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:19:01Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:19:01Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response<PHONE_NUMBER>: GET /api/users status 401
infrastructure_files-management-1  | 2023-06-16T20:19:01Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response<PHONE_NUMBER>: GET /api/peers status 401
infrastructure_files-management-1  | 2023-06-16T20:19:01Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response 216561841: GET /api/groups status 401
infrastructure_files-management-1  | 2023-06-16T20:19:56Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:19:56Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:19:56Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:19:56Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response<PHONE_NUMBER>: GET /api/users status 401
infrastructure_files-management-1  | 2023-06-16T20:19:56Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response<PHONE_NUMBER>: GET /api/peers status 401
infrastructure_files-management-1  | 2023-06-16T20:19:56Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response<PHONE_NUMBER>: GET /api/groups status 401
infrastructure_files-management-1  | 2023-06-16T20:22:42Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:22:42Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response<PHONE_NUMBER>: GET /api/users status 401
infrastructure_files-management-1  | 2023-06-16T20:22:42Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:22:42Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:22:42Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:22:42Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response 646400623: GET /api/users status 401
infrastructure_files-management-1  | 2023-06-16T20:22:42Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response 950116203: GET /api/peers status 401
infrastructure_files-management-1  | 2023-06-16T20:22:42Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response 783724766: GET /api/groups status 401
infrastructure_files-management-1  | 2023-06-16T20:23:32Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:23:32Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:23:32Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:23:32Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response<PHONE_NUMBER>: GET /api/users status 401
infrastructure_files-management-1  | 2023-06-16T20:23:32Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response<PHONE_NUMBER>: GET /api/peers status 401
infrastructure_files-management-1  | 2023-06-16T20:23:32Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response 564420133: GET /api/groups status 401
infrastructure_files-management-1  | 2023-06-16T20:27:13Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:27:13Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:27:13Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:27:13Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response<PHONE_NUMBER>: GET /api/users status 401
infrastructure_files-management-1  | 2023-06-16T20:27:13Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response 921908523: GET /api/peers status 401
infrastructure_files-management-1  | 2023-06-16T20:27:13Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response<PHONE_NUMBER>: GET /api/groups status 401
infrastructure_files-management-1  | 2023-06-16T20:28:03Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:28:03Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:28:03Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:28:03Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response<PHONE_NUMBER>: GET /api/users status 401
infrastructure_files-management-1  | 2023-06-16T20:28:03Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response 657611697: GET /api/peers status 401
infrastructure_files-management-1  | 2023-06-16T20:28:03Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response<PHONE_NUMBER>: GET /api/groups status 401
infrastructure_files-management-1  | 2023-06-16T20:31:44Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:31:44Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:31:44Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:31:44Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response<PHONE_NUMBER>: GET /api/users status 401
infrastructure_files-management-1  | 2023-06-16T20:31:44Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response<PHONE_NUMBER>: GET /api/peers status 401
infrastructure_files-management-1  | 2023-06-16T20:31:44Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response<PHONE_NUMBER>: GET /api/groups status 401
infrastructure_files-management-1  | 2023-06-16T20:32:34Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:32:34Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:32:34Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:32:34Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response<PHONE_NUMBER>: GET /api/users status 401
infrastructure_files-management-1  | 2023-06-16T20:32:34Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response 417756283: GET /api/peers status 401
infrastructure_files-management-1  | 2023-06-16T20:32:34Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response<PHONE_NUMBER>: GET /api/groups status 401
infrastructure_files-management-1  | 2023-06-16T20:36:15Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:36:15Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:36:15Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:36:15Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response 945906577: GET /api/users status 401
infrastructure_files-management-1  | 2023-06-16T20:36:16Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response 422450056: GET /api/peers status 401
infrastructure_files-management-1  | 2023-06-16T20:36:16Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response 406063406: GET /api/groups status 401
infrastructure_files-management-1  | 2023-06-16T20:37:06Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:37:06Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:37:06Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:37:06Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response<PHONE_NUMBER>: GET /api/users status 401
infrastructure_files-management-1  | 2023-06-16T20:37:06Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response<PHONE_NUMBER>: GET /api/peers status 401
infrastructure_files-management-1  | 2023-06-16T20:37:06Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response<PHONE_NUMBER>: GET /api/groups status 401
infrastructure_files-management-1  | 2023-06-16T20:40:46Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:40:46Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:40:46Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:40:47Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response<PHONE_NUMBER>: GET /api/users status 401
infrastructure_files-management-1  | 2023-06-16T20:40:47Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response<PHONE_NUMBER>: GET /api/peers status 401
infrastructure_files-management-1  | 2023-06-16T20:40:47Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response<PHONE_NUMBER>: GET /api/groups status 401
infrastructure_files-management-1  | 2023-06-16T20:41:37Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:41:37Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:41:37Z INFO management/server/account.go:1223: overriding JWT Domain and DomainCategory claims since single account mode is enabled
infrastructure_files-management-1  | 2023-06-16T20:41:37Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response<PHONE_NUMBER>: GET /api/users status 401
infrastructure_files-management-1  | 2023-06-16T20:41:37Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response 912947053: GET /api/peers status 401
infrastructure_files-management-1  | 2023-06-16T20:41:37Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response 771940875: GET /api/groups status 401

Woohooo 🎉  that works
Clients can connect and the dashboard works!
What does the IDP management do? (And is it worth me debugging why that isn't working)?

The IDP manager is mainly mapping user IDs from netbird management system to emails from your IDP
It needs permissions to update your IDP user's attributes, like it adds the netbird account ID to a user.

i have the same error with a different return code:

Request failed with status code 401. Please refresh the page if the issue continues.
token invalid

docker management logs:

2023-06-28T23:33:07Z INFO management/server/telemetry/app_metrics.go:161: enabled application metrics and exposing on http://<IP_ADDRESS>:8081
2023-06-28T23:33:07Z INFO management/server/account.go:638: single account mode enabled, accounts number 0
2023-06-28T23:33:07Z INFO management/cmd/management.go:233: running gRPC backward compatibility server: [::]:33073
2023-06-28T23:33:07Z INFO management/cmd/management.go:265: running HTTP server and gRPC server on the same port: [::]:443
2023-06-28T23:33:11Z WARN management/server/account.go:674: failed warming up cache due to error: unable to get keycloak token, statusCode 401

that's my setup.env:
## example file, you can copy this file to setup.env and update its values
##
# Dashboard domain. e.g. app.mydomain.com
NETBIRD_DOMAIN="XXXXX"

# -------------------------------------------
# OIDC
#  e.g., https://example.eu.auth0.com/.well-known/openid-configuration
# ------------------------------------------
NETBIRD_AUTH_DEVICE_AUTH_PROVIDER=hosted
NETBIRD_AUTH_OIDC_CONFIGURATION_ENDPOINT="https://XXXXX/auth/realms/netbird/.well-known/openid-configuration"
NETBIRD_USE_AUTH0=false
NETBIRD_AUTH_CLIENT_ID="netbird-client"
NETBIRD_AUTH_AUDIENCE="netbird-client"
NETBIRD_AUTH_DEVICE_AUTH_CLIENT_ID="netbird-client"
NETBIRD_MGMT_IDP="keycloak"
NETBIRD_IDP_MGMT_CLIENT_ID="netbird-backend"
NETBIRD_IDP_MGMT_CLIENT_SECRET="XXXXX"
NETBIRD_IDP_MGMT_EXTRA_ADMIN_ENDPOINT="https://XXXXX/auth/realms/netbird"

# -------------------------------------------
# Letsencrypt
# -------------------------------------------
# Disable letsencrypt
#  if disabled, cannot use HTTPS anymore and requires setting up a reverse-proxy to do it instead
# e.g<EMAIL_ADDRESS>NETBIRD_LETSENCRYPT_EMAIL="XXXXX"
# -------------------------------------------
# Extra settings
# -------------------------------------------
# Disable anonymous metrics collection, see more information at https://netbird.io/docs/FAQ/metrics-collection
NETBIRD_DISABLE_ANONYMOUS_METRICS=false
# DNS DOMAIN configures the domain name used for peer resolution. By default it is netbird.selfhosted
NETBIRD_MGMT_DNS_DOMAIN=netbird.selfhosted

Could you set none for MGM IDP, NETBIRD_MGMT_IDP=none, and try the steps again? The IDP management might be causing the issues.

when i applied your solution, there was no error in the logs as you can see except for the failed logging
2023-06-29T00:37:02Z INFO management/server/telemetry/app_metrics.go:161: enabled application metrics and exposing on http://<IP_ADDRESS>:8081
2023-06-29T00:37:02Z INFO management/server/account.go:638: single account mode enabled, accounts number 0
2023-06-29T00:37:02Z INFO management/cmd/management.go:233: running gRPC backward compatibility server: [::]:33073
2023-06-29T00:37:02Z INFO management/cmd/management.go:265: running HTTP server and gRPC server on the same port: [::]:443
2023-06-29T00:37:20Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response<PHONE_NUMBER>: GET /api/users status 401
2023-06-29T00:37:21Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response<PHONE_NUMBER>: GET /api/users status 401
2023-06-29T00:37:21Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response<PHONE_NUMBER>: GET /api/peers status 401
2023-06-29T00:37:21Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response<PHONE_NUMBER>: GET /api/groups status 401
2023-06-29T00:37:26Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response<PHONE_NUMBER>: GET /api/users status 401
2023-06-29T00:37:26Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response<PHONE_NUMBER>: GET /api/peers status 401
2023-06-29T00:37:26Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response 107507818: GET /api/groups status 401
2023-06-29T00:37:26Z ERRO management/server/telemetry/http_api_metrics.go:181: HTTP response<PHONE_NUMBER>: GET /api/users status 401
2023-06-29T00:37:46Z WARN management/server/grpcserver.go:322: failed logging in peer sajM8Azu99EOT4XkyUrxnVzlk9xMn5pL1tkkNCgT72w=

but when i tried to connect in the client side, it didn't work:
sudo netbird up --management-url https://XXXXXXXXXXX:33073
Please do the SSO login in your browser.
If your browser didn't open automatically, use this URL to log in:

 https://keycloak-exasecu.duckdns.org/auth/realms/netbird/device?user_code=TUNW-JWND

Alternatively, you may want to use a setup key, see:

 https://www.netbird.io/docs/overview/setup-keys
^[[1;2D²Error: waiting sso login failed with: rpc error: code = Unknown desc = validate access token failed with error: invalid JWT token audience field

i solved the issue about keycloak service account roles, you should check it in the settings to appear

same problem for me

me too
I refer to this installation  https://docs.netbird.io/selfhosted/selfhosted-quickstart

Hello @NatureLR,  the issue has been fixed in the latest version, you can run docker compose pull followed by docker compose up -d --force-recreate management to upgrade.

Hello @NatureLR, the issue has been fixed in the latest version, you can run docker compose pull followed by docker compose up -d --force-recreate management to upgrade.

very good  it's Succeeded 😄

Hello @NatureLR, the issue has been fixed in the latest version, you can run docker compose pull followed by docker compose up -d --force-recreate management to upgrade.

Same problem use docker compose pull and docker compose up -d --force-recreate management work but when token expired problem come again.
I refer to this installation https://docs.netbird.io/selfhosted/selfhosted-quickstart with google workspace.


Reports Navigation Doesn't Collapse

@blargity
Love the reports feature so far!
Quick note though -- when using reports with the "Collapse Sidebar" feature, the "Reports" navigation item doesn't collapse down to the icon as appropriate when the sidebar is collapsed. (I know it gets tricky when there is an overlap between features, but thought you should know.)

Thanks Ben! I think @mhum is working on this one at the moment.

I hope to have something later this evening.

I've made significant progress on this one. The Reports icon has been added into the sidebar and you can move between items. It's also a bit more dynamic and can handle new custom buttons to the sidebar. Took my a while to figure out how to move between Reports and Accounts/Budget.
@blargity,
I made a small change in the Reports feature which you can see here:
https://github.com/mhum/ynab-enhanced/commit/1a20577fe7d9f1e22588559021d1bedf719223ef#diff-bb3bd9db3bb36aab8242f1f438c15fc5L52
I moved the on click event setup into the showReports function. Otherwise, when re-generating the collapsed sidebar, those events get lost and the user can't move back to the screen they just came from when navigating away from Reports.
What is left is:

Getting the correct Active style on the button when navigating from Reports back to the immediately proceeding screen
Cleaning up the sidebar feature code. It's become a bit of a mess

@mhum, that change is fine by me!
The only other way I can think of that might turn out a bit cleaner is a bit cheeky. What if you sent a JQuery .click() call to whatever the original DOM button that you cloned into the collapsed bar was? If it works, it wouldn't matter whether it's an ember action or a link or some sort of JQuery handler. You'd just be channeling the user's actual click to and simulate the event on the original proper element. If that's no good for whatever reason or turns out messy then I'm more than happy to have the handler in the showReports function if it works.

I went ahead and did my cheeky approach in Pull Request #195.
I'll close this issue as it's now resolved as far as I can tell.


include infos about which software is available in which room

like the printer list, but for rooms. maybe get infos from http://www.hft-stuttgart.de/Einrichtungen/IZ/IZ-Basisdienste/Rechnerraeume/Lageplan/Bau2_EG/index.html/de

waiting for better data source...


module 'luci.ucodebridge' not found

Steps to reproduce:

Login to the LuCI

Actual behavior:
Index page crashes (thanks god other pages are working)
module 'luci.ucodebridge' not found:
no field package.preload['luci.ucodebridge']
no file './luci/ucodebridge.lua'
no file '/usr/share/lua/luci/ucodebridge.lua'
no file '/usr/share/lua/luci/ucodebridge/init.lua'
no file '/usr/lib/lua/luci/ucodebridge.lua'
no file '/usr/lib/lua/luci/ucodebridge/init.lua'
no file './luci/ucodebridge.so'
no file '/usr/lib/lua/luci/ucodebridge.so'
no file '/usr/lib/lua/loadall.so'
no file './luci.so'
no file '/usr/lib/lua/luci.so'
no file '/usr/lib/lua/loadall.so'

In [anonymous function](), file [C]
In [anonymous function](), file /usr/share/ucode/luci/runtime.uc, line 133, byte 10:
  called from function [arrow function] (/usr/share/ucode/luci/runtime.uc:141:63)
  called from function render ([C])
  called from function [anonymous function] (/usr/share/ucode/luci/runtime.uc:141:64)
  called from function run_action (/usr/share/ucode/luci/dispatcher.uc:778:34)
  called from function [anonymous function] (/usr/share/ucode/luci/dispatcher.uc:1003:48)
  called from anonymous function (/www/cgi-bin/luci:39:13)

 `            die(ex);`
  Near here --------^

Expected behavior:
It should display index page
Additional Information:
DISTRIB_ID='OpenWrt'
DISTRIB_RELEASE='23.05.4'
DISTRIB_REVISION='r24012-d8dd03c46f'
DISTRIB_TARGET='ramips/mt7621'
DISTRIB_ARCH='mipsel_24kc'
DISTRIB_DESCRIPTION='OpenWrt 23.05.4 r24012-d8dd03c46f'
DISTRIB_TAINTS=''

As I remember, I installed luci-app-openvpn, but as It was no longer needed I removed It. That's it

Did you leave the Automatically remove unused dependencies checkbox checked? This is a known issue that shows up from time to time.
You should be able to access LuCI again if you run opkg install luci-lua-runtime, see https://forum.openwrt.org/t/removed-clamav-package-with-all-dependacies-and-broke-luci/204187/4

Yep, now It's working. Thanks

commenting for better reach
I got this error when I uninstalled luci-app-ddns keeping Automatically remove unused dependencies checked

Did you leave the Automatically remove unused dependencies checkbox checked? This is a known issue that shows up from time to time.
You should be able to access LuCI again if you run opkg install luci-lua-runtime, see https://forum.openwrt.org/t/removed-clamav-package-with-all-dependacies-and-broke-luci/204187/4

It would seem that the problem is modules which perhaps do not properly list all their dependencies.


Remove version restrictions

Lodestar seems compatible with newer version of NodeJS. Versions lower to v12 are currently blocked by libp2p requirements. Should we keep the restriction for lower versions anyway?
Fixes https://github.com/ChainSafe/lodestar/issues/1370

I think its probably a good idea keeping the lower version restriction, not a big deal though.


feat: add optional connection selector

Lightweight plugable connection selector. Added to allow for zonal aware connection selection, to reduce zonal network costs.
Ref CLDX-2564

Still failing :(

:( flakey test, it passed once

It keeps failing :( but it did pass here - https://github.com/sanity-io/elastic/actions/runs/10793073234
weird....


Why is so much memory being consumed?

@Littleweisheit Hi there.
I checked the application using a profiler

It uses about 20MB of RAM
I don't see memory leaks (memory usage goes up to 50MB when there are some active downloads and then reduced to 20MB on idle)

this higher memory consumption that you see in the task manager is related to the JVM Heap allocation and GC stuff. which I need to configure it to reduce its memory allocation


fix gcp to work with new google-guest-agent package in repo

How to categorize this PR?

/kind bug
/area os
/os garden-linux
What this PR does / why we need it:
https://gitlab.com/gardenlinux/gardenlinux-package-build/-/commit/f2b28665 updated repo to mirror debian version of google-guest-agent. This broke gcp/exec.config because it no longer ships with /etc/default/instance_configs.cfg. This PR fixes it by providing a default config in gcp/file.include

/invite @waldiTM

Hi @MrBatschner and @nkraetzschmar,
I have created a Merge Request for the google-guest-agent package in debian/testing, so that the missing configuration /etc/default/instance_configs.cfg is added there as well:

https://salsa.debian.org/cloud-team/google-guest-agent/-/merge_requests/1/diffs

Since we are using the same package in the Garden Linux Repo (we are mirroring it), the problem that is mentioned here should be fixed once the MR got merged and the packaged got rebuilt.

Merging this PR for now to restore a working build process
/lgtm


fleetctl status exit code not consistent with systemd

The fleetctl status $unit_name exit code is not consistent with the exit code of systemctl status $unit_name. The main issue where this comes into play is stopped & failed units. systemctl status on a stopped/failed unit will exit with code 3. fleetctl status exits with code 0.
# cat sleep1.service
[Unit]
[Service]
ExecStart=/usr/bin/sleep 1

# cp sleep1.service /run/systemd/system/systemd-sleep1.service

# systemctl daemon-reload

# systemctl start systemd-sleep1.service

# sleep 2

# systemctl status systemd-sleep1.service; echo $?
● systemd-sleep1.service
   Loaded: loaded (/run/systemd/system/systemd-sleep1.service; static)
   Active: inactive (dead)

Nov 03 16:26:17 i-d24d428c systemd[1]: Starting systemd-sleep1.service...
Nov 03 16:26:17 i-d24d428c systemd[1]: Started systemd-sleep1.service.
3

# fleetctl submit sleep1.service

# fleetctl start sleep1.service
Unit sleep1.service launched on 6cdbfbf8.../<IP_ADDRESS>

# sleep 2

# fleetctl status sleep1.service; echo $?
● sleep1.service
   Loaded: loaded (/run/fleet/units/sleep1.service; linked-runtime)
   Active: inactive (dead)

Nov 03 16:26:45 i-d24d428c systemd[1]: Starting sleep1.service...
Nov 03 16:26:45 i-d24d428c systemd[1]: Started sleep1.service.
0

I'm interested in working on this.

PR: #1093


Node is not defined when running jasmine tests with karma

Environment
Provide version numbers for the following components (information can be retrieved by running tns info in your project folder or by inspecting the package.json of the project):

CLI: 7.0.11
Cross-platform modules:
Android Runtime: 7.0.1
iOS Runtime: 7.0.0
Plugin(s):
NativeScript-Angular: 10.1.0
Angular: 10.1.7

Describe the bug
When running karma tests I get the error "Node is not defined". This is happening in a sandbox project and an existing project that is being upgraded from Angular/Nativescript-angular 8 to 10. I updated the imports in my test-main.ts to what it seems they should be on however the documentation has not been updated so I am not sure if they are correct. My test-main.ts is below. I was unable to only import<EMAIL_ADDRESS>as my tests would fail with the error that "Zone is not defined". I am able to get the error to go away by importing '@nativescript/zone-js/zone-nativescript' as well, but then I get the error that I described above. This is with node version 10.16.0.
import '@nativescript/zone-js/zone-nativescript';
import<EMAIL_ADDRESS>import {nsTestBedInit} from '@nativescript/angular/testing';
nsTestBedInit();

To Reproduce
I created a fresh project using Angular 10 and added nativescript and i get the same issue.
Expected behavior
Tests would run correctly
Sample project
This is my sandbox project where I am getting the same error.
https://github.com/elatus111/nativescript-angular-sandbox
Additional context
Package.json below
{
"name": "angular10project",
"version": "0.0.0",
"scripts": {
"android": "ns run android --no-hmr",
"ios": "ns run ios --no-hmr",
"mobile": "ns run",
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
"private": true,
"dependencies": {
"@angular/animations": "~10.2.3",
"@angular/common": "~10.2.3",
"@angular/compiler": "~10.2.3",
"@angular/core": "~10.2.3",
"@angular/forms": "~10.2.3",
"@angular/platform-browser": "~10.2.3",
"@angular/platform-browser-dynamic": "~10.2.3",
"@angular/router": "~10.0.14",
"@nativescript/angular": "~10.1.0",
"@nativescript/core": "~7.0.13",
"@nativescript/theme": "~2.3.0",
"@nativescript/unit-test-runner": "^1.0.2",
"reflect-metadata": "~0.1.12",
"rxjs": "~6.6.0",
"tslib": "^2.0.0",
"zone.js": "~0.10.2"
},
"devDependencies": {
"@angular-devkit/build-angular": "~0.1001.7",
"@angular/cli": "~10.1.7",
"@angular/compiler-cli": "~10.1.6",
"@nativescript/android": "7.0.1",
"@nativescript/ios": "~7.0.0",
"@nativescript/schematics": "^10.1.0",
"@nativescript/tslint-rules": "~0.0.5",
"@nativescript/types": "~7.0.0",
"@nativescript/webpack": "~3.0.0",
"@ngtools/webpack": "~10.0.0",
"@types/jasmine": "3.5.14",
"@types/jasminewd2": "~2.0.3",
"@types/node": "^13.1.1",
"codelyzer": "^6.0.0",
"jasmine-core": "~3.6.0",
"jasmine-spec-reporter": "~5.0.0",
"karma": "5.2.3",
"karma-chrome-launcher": "~3.1.0",
"karma-coverage-istanbul-reporter": "~3.0.2",
"karma-jasmine": "4.0.1",
"karma-jasmine-html-reporter": "^1.5.0",
"karma-nativescript-launcher": "0.4.0",
"karma-webpack": "3.0.5",
"protractor": "~7.0.0",
"ts-node": "~9.1.1",
"tslint": "~6.1.0",
"typescript": "3.9.7"
},
"main": "main.tns.js"
}

@elatus111 , i got beyond the node is not defined by fixing the webpack dependencies. discovered the webpack dependencies issues when i upgraded to node v15, it told me there was a problem :) here is my package.json dependencies  . still unable to unit test components, but everything services, interceptors, ngrx can all be unit tested.
  "dependencies": {
    "@angular/animations": "~10.2.0",
    "@angular/common": "~10.2.0",
    "@angular/compiler": "~10.2.0",
    "@angular/core": "~10.2.0",
    "@angular/forms": "~10.2.0",
    "@angular/platform-browser": "~10.2.0",
    "@angular/platform-browser-dynamic": "~10.2.0",
    "@angular/router": "~10.2.0",
    "@nativescript/angular": "~10.1.0",
    "@nativescript/core": "~7.1.0",
    "@nativescript/geolocation": "^7.0.0",
    "@nativescript/theme": "~2.3.0",
    "@ngrx/effects": "^10.1.2",
    "@ngrx/store": "^10.1.2",
    "@proplugins/nativescript-masked-text-field": "^6.0.0",
    "nativescript-ui-sidedrawer": "~9.0.0",
    "ngx-mask": "^11.1.4",
    "reflect-metadata": "~0.1.12",
    "rxjs": "^6.6.0",
    "zone.js": "~0.10.3"
  },
  "devDependencies": {
    "@angular-devkit/core": "~10.2.0",
    "@angular-devkit/schematics": "~10.2.0",
    "@angular/cli": "~10.2.0",
    "@angular/compiler-cli": "~10.2.0",
    "@nativescript/unit-test-runner": "1.0.2",
    "@nativescript/webpack": "^4.0.0",
    "@ngtools/webpack": "~10.2.0",
    "@types/jasmine": "3.6.2",
    "@typescript-eslint/eslint-plugin": "^4.14.2",
    "@typescript-eslint/parser": "^4.14.2",
    "codelyzer": "~6.0.0",
    "eslint": "^7.19.0",
    "eslint-import-resolver-typescript": "^2.3.0",
    "eslint-plugin-angular": "^4.0.1",
    "eslint-plugin-import": "^2.22.1",
    "eslint-plugin-ngrx": "^1.13.2",
    "htmlhint": "^0.14.2",
    "karma": "5.2.3",
    "karma-jasmine": "4.0.1",
    "karma-nativescript-launcher": "0.4.0",
    "karma-webpack": "~4.0.0",
    "node-sass": "^5.0.0",
    "sass-loader": "^10.1.1",
    "stylelint": "^13.9.0",
    "stylelint-config-standard": "^20.0.0",
    "tslint": "~6.1.3",
    "typescript": "~4.0.0"
  },

figured how to write unit (component, service, interceptor)  tests using NG10 and NS7. read my blog about my adventures figuring it out.  https://linuxsimba.github.io/nativescript-unit-tests.  i hope in future NS releases unit test becomes easier and works out of the box.

@edusperoni Is there preview release or something that fixes this problem now instead of whenever it's going to be released? What was the last version that didn't have this bug?

@dmrickey you can just put this code somewhere (preferably where you init your tests):
if (typeof Node === 'undefined' && !global.Node) {
	class DummyNode {}
	global.Node = DummyNode as any;
}


Transform initial guess for x to initial guess for dx

Transform initial guess for x to initial guess for dx. Use $f_{\text{diff}}$, the inverse of $f_{\text{int}}$.

Need a good test problem before starting this. Maybe wait until after legged constraints are implemented.

Implemented in PsueodspectralSegment, but not validated.


How to use IME input in blui???

WebBrowser can support this：
ITextInputMethodSystem* const TextInputMethodSystem = FSlateApplication::Get().GetTextInputMethodSystem();
WebBrowserWidget->BindInputMethodSystem(TextInputMethodSystem);
but simage not suppot this。

Maybe I can use OnImeCompositionRangeChanged, but it doesn't seem to work.

What is the end result you're looking for? text input in a particular way?

Is there possible to use osr_ime_handler_win to custom IME input?
In off-screen mode, it seems that 'blu_ue4_process' could not receive windows message.

I finished it by referring to the input mode of official ime encapsulation

I finished it by referring to the input mode of official ime encapsulation

How did you solve this problem please?


DOC: move from sphinx-panel to sphinx-design

WIP
sphinx-panel is deprecated.
Partly resolves #168

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 99.679%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
3108

Relevant Lines:
3118

💛  - Coveralls


C_ChallengeMode.GetCompletionInfo was set to deprecated in 11.0.5

Might as well move over to the new function, right? https://www.townlong-yak.com/framexml/live/Blizzard_Deprecated/Deprecated_11_0_5.lua

I'm currently in the progress of a major refactor. The beta version for that just went up.
As soon as that's out, I'll look at replacing this function.

I'd be fine with merging this now if you reopen it and I can test it for a few runs.


put button into st.contrainer

Can I put it into a st.contrainer?
How should I do this?

Can I put it into a st.contrainer? How should I do this?
Yes, just like every other streamlit component, using a "with" statement:

c=st.container()
with c:
    audio = audiorecorder("Click to record", "Recording...")

Closing for now. If this does not solve your issue, feel free to reopen.


only check things that are expected to have changed

This fixes https://github.com/wellcomecollection/platform/issues/5471


feat: support dtm upgrade

Signed-off-by: hxcGit<EMAIL_ADDRESS>Pre-Checklist
Note: please complete ALL items in the following checklist.

[ ] I have read through the CONTRIBUTING.md documentation.
[ ] My code has the necessary comments and documentation (if needed).
[ ] I have added relevant tests

Description

support dtm upgrade
usage
dtm upgrade

Related Issues

#674
New Behavior (screenshots if needed)

Test in MacOS

Dtm version was manually modified before test

Test in Linux/amd64

Do not support to upgrade in development version

I think the semver pkg can cover more version situations. Can you add a commit to refactor this code? Thanks!
https://github.com/devstream-io/devstream/blob/7edf2749cf3f64c90ccfed626fd58cae6376f043/internal/pkg/version/version.go#L13-L16

@daniel-hutao @IronCore864 @steinliber  PTAL

@iyear  I'll check it out.

@iyear I'll check it out.

Sorry, I just deleted the comment, I think it would be more appropriate to open an new issue to explain the situation.😂