Does STM32CubeIDE support Olimex STM32-E407

Hi there,
Very appreciate if someone able to comment of the above title, please. If not, what IDE platform is recommended. The screen-shot shows, STM32CubeMX is being associated with. However, I couldn't find any communities claim using it. Sincerely, hope someone can shed some lights here, please.
Thank you
Vibwis

Hello @vibnwis, this row in the compatibility table shows that the version of FreeRTOS used for Olimex STM32-E407 in micro-ROS is the lastest used in CubeMX. In that sense, we provide a build system that uses a CubeMX generated project for Make in order to build a FreeRTOS-based system for this platform.
You have all the available information for using this board with micro-ROS and FreeRTOS in our web page: https://micro-ros.github.io/docs/tutorials/core/first_application_rtos/freertos/
Please tell us if this solves your question.

Hi pablogs9  and mRos team, thank you so much for looking into my questions. Your answers truly shed some lights for me. I will use it, the CubeMX generated project, by importing into STM32CubeIDE, next thing in the morning. BTW, in the web page: https://micro-ros.github.io/docs/tutorials/core/first_application_rtos/freertos/, is it correct to say, for the Olimex board, it  has to use JTag, however, for STM32 Nucleo, it would be ST3-Link ? Sorry if this sound ignorant.

You are welcome, this tutorial is for our reference hardware platform, so in this case, you will need to JTAG to flash the Olimex STM32-E407. In the case you have another not-supported board, some scripts may differ a little.
In the case of an STM32 Nucleo maybe you will need to modify flashing files in order to use micro-ROS in it. We can keep this issue open and we can talk about the procedure here. First, let us know if you are able to build the micro-ROS library in your toolchain.

Hi, first and foremost, I managed to compile the micro-ROS firmware without any issue. Proceeded to downloading the freertos Olimex STM32e407 and imported in STM32CubeIDE. The IDE complained that .ico filename should be same as the project filename. Hence, changed that accordingly. After that, the compilation was successful. I have also downloaded the ST Nucleo F446ZE, the same issues with the .ico. Having changed that, everything was sweet.
However, after click the "clean" project, all kind of errors came out. I thought those were due to the include paths have been deleted, and changed the relative paths to absolute path. It did resolve some errors, but, some errors like the following. Can you help, please. However, I think if in worst case, I can re-load the code. However, it would be good to know what the settings are. Can you shed some more lights on that. I was thinking to port it to STM32G431xxx eval board. The board is without Ethernet. I chose that for the reason below.
On a separate issues. Actually, I was interested in micro-ROS and FreeRTOS for my master degree project. However, it was meant to use CAN-bus instead of Ethernet. Would you able to comment if the existing micro-ROS can be easily added the CANopen? Any comments will be appreciated.
Thanks in advance.
In file included from /home/wiki-ros/Downloads/uros_ws/firmware/mcu_ws/uros/rcutils/include/rcutils/macros.h:23:0,
from /home/wiki-ros/Downloads/uros_ws/firmware/mcu_ws/uros/rcutils/include/rcutils/allocator.h:26,
from /home/wiki-ros/Downloads/uros_ws/firmware/mcu_ws/uros/rcl/rcl/include/rcl/allocator.h:23,
from /home/wiki-ros/Downloads/uros_ws/firmware/mcu_ws/uros/rcl/rcl/include/rcl/init.h:23,
from /home/wiki-ros/Downloads/uros_ws/firmware/mcu_ws/uros/rcl/rcl/include/rcl/rcl.h:76,
from ../Src/main.c:32:
/home/wiki-ros/Downloads/uros_ws/firmware/mcu_ws/uros/rcutils/include/rcutils/configuration_flags.h:10:2: error: invalid preprocessing directive #cmakedefine; did you mean #define?
#cmakedefine RCUTILS_NO_FILESYSTEM
^~~~~~~~~~~
define
/home/wiki-ros/Downloads/uros_ws/firmware/mcu_ws/uros/rcutils/include/rcutils/configuration_flags.h:11:2: error: invalid preprocessing directive #cmakedefine; did you mean #define?
#cmakedefine RCUTILS_AVOID_DYNAMIC_ALLOCATION
^~~~~~~~~~~
define
/home/wiki-ros/Downloads/uros_ws/firmware/mcu_ws/uros/rcutils/include/rcutils/configuration_flags.h:12:2: error: invalid preprocessing directive #cmakedefine; did you mean #define?
#cmakedefine RCUTILS_NO_THREAD_SUPPORT
^~~~~~~~~~~
define
In file included from ../Src/main.c:33:0:
/home/wiki-ros/Downloads/uros_ws/firmware/mcu_ws/eProsima/Micro-XRCE-DDS-Client/include/uxr/client/client.h:18:10: fatal error: uxr/client/config.h: No such file or directory
#include <uxr/client/config.h>
^~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make: *** [Src/subdir.mk:50: Src/main.o] Error 1
"make -j8 all" terminated with exit code 2. Build might be incomplete.
20:42:33 Build Failed. 8 errors, 9 warnings. (took 1s.175ms)

Hello again @vibnwis, could you clarify which IDE are you using? I guess that you are using a ST proprietary IDE and I'm not sure about how does it works, so I feel that I can't help so much in this IDE-related issues.
When talking about FreeRTOS + micro-ROS + STM32 based targets, we generate the code with STM32CubeMX (the folder that you have seen) and then we build using CMake and Makefiles in a command line. Is compulsory for you to use this ST IDE? Which are the benefits?
Regarding your errors, there are some config.h.in file along the micro-ROS environment that are configured in the CMake configuration time. So for example, in your errors I can see that uxr/client/config.h is not being created. This file should be created using this one in this line.
This "file configuration process" allow us to pass CMake variables to a .h file and build conditionally some features, so for example if rcutils package is configured with the CMake flag RCUTILS_NO_THREAD_SUPPORT in the file include/rcutils/configuration_flags.h you will see a #define RCUTILS_NO_THREAD_SUPPORT. If not, this define will be commented.
In your case it seems that this is not working because your .h files have the same CMake flags (#cmakedefine) as the .h.in.
So maybe you need to investigate further in your IDE build process and understand how it manages the CMake configure/build process.

Regarding the CAN bus integration: the micro-ROS middleware is Micro XRCE-DDS and this middleware allows customizable transports.
Usually, we work with two kinds of transports: stream-oriented and message-oriented. This way you have UDP or TCP transports (message-oriented) or UART (stream-oriented), there are some internal differences but the only thing that you have to know is that you can write a custom transport if you are able to fill functions (uxr_open, uxr_close, uxr_write_ and uxr_read) with your own CAN logic. Here you have an example of a custom transport used in the Crazyflie Drone radio. The external transport can be configured via CMake arguments, so we can talk here about this if you have doubts.

Sure!
The IDE is STM32CubeIDE.
It is not compulsory. The reasons are I am familiar with STM32CubeIDE, and
the STM32 community is large, and their support, especially from ST are
satisfactory so far. I could get a lot of information for their forum. I
have a limited time frame to complete my thesis.  However, I will use another IDE
if I need. For that reason, I have purchased 3 Olimex STM32E407, but I also
investigated the corresponding IDE. However, seeing the forum about the
IDE, it has been no activity for quite some time. I am a bit confused, in
the website, where STM32CubeMX ( is it not the same as STM32CubeIDE? ), if
it is the same, it should be able to compile it even after "clean" up the
project. I will give a try for a few hours. Did you (your IDE) run cmake
and then invoking the IDE to complete the compilation? I will investigate
how STM32CubeIDE does it.
The decision at the moment of time is using Olimex STM32, get the suggested
IDE, and work on the adding CAN onto the Micro-XRCE-DDS. As such, can I ask
what IDE do you use? Eclipse with STM32 plugin? Do you mind sharing?
Thank you.
V
On Tue, 6 Oct 2020 at 22:14, Pablo Garrido<EMAIL_ADDRESS>wrote:

Hello again @vibnwis https://github.com/vibnwis, could you clarify
which IDE are you using? I guess that you are using a ST proprietary IDE
and I'm not sure about how does it works, so I feel that I can't help so
much in this IDE-related issues.
When talking about FreeRTOS + micro-ROS + STM32 based targets, we generate
the code with STM32CubeMX (the folder that you have seen) and then we build
using CMake and Makefiles in a command line. Is compulsory for you to use
this ST IDE? Which are the benefits?
Regarding your errors, there are some config.h.in file along the
micro-ROS environment that are configured in the CMake configuration time.
So for example, in your errors I can see that uxr/client/config.h is not
being created. This file should be created using this one
https://github.com/eProsima/Micro-XRCE-DDS-Client/blob/foxy/include/uxr/client/config.h.in
in this line
https://github.com/eProsima/Micro-XRCE-DDS-Client/blob/356a1e6d6181134f7d45c9ce7fe5bdff27d7c1ec/CMakeLists.txt#L406
.
This "file configuration process" allow us to pass CMake variables to a .h
file and build conditionally some features, so for example if rcutils
package is configured with the CMake flag RCUTILS_NO_THREAD_SUPPORT in
the file include/rcutils/configuration_flags.h you will see a #define
RCUTILS_NO_THREAD_SUPPORT. If not, this define will be commented.
In your case it seems that this is not working because your .h files have
the same CMake flags (#cmakedefine) as the .h.in.
So maybe you need to investigate further in your IDE build process and
understand how it manages the CMake configure/build process.
Regarding the CAN bus integration: the micro-ROS middleware is Micro
XRCE-DDS https://micro-xrce-dds.docs.eprosima.com/en/latest/ and this
middleware allows customizable transports.
Usually, we work with two kinds of transports: stream-oriented and
message-oriented. This way you have UDP or TCP transports
(message-oriented) or UART (stream-oriented), there are some internal
differences but the only thing that you have to know is that you can write
a custom transport if you are able to fill functions (uxr_open, uxr_close,
uxr_write_ and uxr_read) with your own CAN logic. Here
https://github.com/micro-ROS/freertos_apps/blob/foxy/microros_crazyflie21_extensions/src/crazyflie_transport.c
you have an example of a custom transport used in the Crazyflie Drone
radio. The external transport can be configured via CMake arguments, so we
can talk here about this if you have doubts.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/micro-ROS/micro_ros_setup/issues/202#issuecomment-704139729,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADCYQVSA35YUIHAIZBWUZUTSJLNWBANCNFSM4SESHAFQ
.

Okie, found out STM32CuteMX is not the same STM32CubeIDE. I have downloaded that and to be installed tomorrow. However, I can't do anything as I board is using ST-LInk/V3.

I think I was mistaken the code generation as compilation. The compilation does not work in STM32Cube IDE. I will try on STM32CuteMX tomorrow.

Hi pablogs9, I managed to install the STM32CubeMX and generated the code. In the end of that, it jumped to STM32CubeIDE. The same list of errors took place. I am still curious, what IDE you use, do you mind sharing, please? STM32CubeMX is only a code generator. I am thinking I could recreate a STM32CubeIDE project manually for micro-ROS based on STM32-E407 equivalent board. I would then recreate or import the files from  micro-ROS, one by one. I might missed out some of the files, would you lent a helping hand please? I see that micro-ROS uses a few middleware, FreeRTOS, and LwIP, may I ask where are those Micro XRCE-DDS reside, and other files allowing me to compose a project properly. I am open for other suggestion ? If I can setup other IDE, so long it is not commercial version, or too expensive, I think I would it.
Please advise.
Thank you
V!

Hello @vibnwis, let me explain a bit about the micro-ROS build system. micro-ROS build system is mainly based on CMake and it usually takes two steps (which are already integrated in the four step procedure described here):

Cross-compiling libmicroros for a certain hardware platform: this is done using the ROS 2 meta-building tool colcon which analyze the ROS 2 packages interdependencies and compiles (or crosscompile) them in a certain order in order to obtain a set of libraries that finally are merged in a single libmicroros.a. This step need headers of the RTOS and some POSIX compliance given by FreeRTOS+POSIX plugging.
Building your application: the application is linked against the RTOS and the libmicroros.a.

So, in general, we use the tool known as micro_ros_setup. This tool automatically installs all the dependencies and is able to cross-compile micro-ROS apps for a certain set of platforms. To edit the app code you can use your favorite editor (I use Visual Studio Code).
When talking about micro-ROS + FreeRTOS, this micro_ros_setup uses a CubeMX generated project in order to ease the RTOS+hardware integration. So, we have generated a CubeMX project, we have slightly modified the Makefile generated and everything is integrated into the  micro_ros_setup tool.
As we know that users may want to modify the hardware configuration using CubeMX, we provide the CubeMX project in order to let the user modify the project and regenerate the code (always keeping in mind the micro-ROS changes). Once you have modified the configuration the micro_ros_setup will build the project.
Have you followed the getting started tutorial with FreeRTOS?

Very well explained. I am actually reading the Makefile and got stuck in
the lines (libmicroros: colcon_compile) of generating libmicroros.a, trying
to figure out why the make failed to create libmicroros.a.
On Wed, 7 Oct 2020 at 21:20, Pablo Garrido<EMAIL_ADDRESS>wrote:

Hello @vibnwis https://github.com/vibnwis, let me explain a bit about
the micro-ROS build system. micro-ROS build system is mainly based on CMake
and it usually takes two steps (which are already integrated in the four
step procedure described here
https://micro-ros.github.io/docs/tutorials/core/first_application_linux/
):

Cross-compiling libmicroros for a certain hardware platform: this
is done using the ROS 2 meta-building tool colcon which analyze the
ROS 2 packages interdependencies and compiles (or crosscompile) them in a
certain order in order to obtain a set of libraries that finally are merged
in a single libmicroros.a. This step need headers of the RTOS and some
POSIX compliance given by FreeRTOS+POSIX plugging.
Building your application: the application is linked against the
RTOS and the libmicroros.a.

So, in general, we use the tool known as micro_ros_setup. This tool
automatically installs all the dependencies and is able to cross-compile
micro-ROS apps for a certain set of platforms. To edit the app code you can
use your favorite editor (I use Visual Studio Code).
When talking about micro-ROS + FreeRTOS, this micro_ros_setup uses a
CubeMX generated project in order to ease the RTOS+hardware integration.
So, we have generated a CubeMX project, we have slightly modified the
Makefile generated and everything is integrated into the micro_ros_setup
tool.
As we know that users may want to modify the hardware configuration using
CubeMX, we provide the CubeMX project in order to let the user modify the
project and regenerate the code (always keeping in mind the micro-ROS
changes). Once you have modified the configuration the micro_ros_setup
will build the project.
Have you followed the getting started tutorial with FreeRTOS
https://micro-ros.github.io/docs/tutorials/core/first_application_rtos/freertos/
?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/micro-ROS/micro_ros_setup/issues/202#issuecomment-704775630,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADCYQVVNHA7HIOYB67RVHVDSJQQETANCNFSM4SESHAFQ
.


Getting a "sk is not defined" error

I'm getting a couple of errors when I install this extension.
Environment:

MacBook Pro M1
macOS 13.4 beta
Chrome Version 112.0.5615.49 (Official Build) (arm64)

Errors:

I do get the "Convert to query" button, but when I press it nothing happens.

Hi @rnhurt
It sounds a bit like you haven't added quotes around your API key. The OpenAI API keys start with sk- and without quotes it would create an arithemtic expression of two undefined vars.

You were absolutely correct.  My apiKey.js was malformed.  Once I corrected that it started working.
Thanx!


Feature/search delete from index

Search deindexing on node delete and delete event from content mapper

Added loadShallowStructureForNode method to ContentMapper
Send out event for each deleted node and provide a Shallow structure to the listening events (in addition
to the PHPCR node being deleted)

Tasks:

[x] test coverage
[ ] gather feedback for my changes

Depends

https://github.com/massiveart/MassiveSearchBundle/pull/14 (for test adapter fixes)

Informations:

Q
A

Tests pass?
[yes

Fixed tickets
[<WHICH?>

BC Breaks
NO

Doc
NONE

What's the state of this PR?

was ready. needs a rebase.

Rebased.. needs merge @chirimoya

Hmm.. actually there are still a few things to tidy up

Ready for review and merge.

SnippetBundle test failing.

Can you fix them?

@danrot updated


Check creation date for unwatched items

Adds the same check performed in #36 to the unplayed items (added with #41).
In this way, if an item is not played or was played before being added to Jellyfin, it is considered as "not played by anyone".
Solves the case in which alice watched a movie before it was added, and bob did not watch it. Currently, the media cleaner would not consider it watched by anyone (since the only watch is older than the file), but also not unwatched by everyone because it marks it watched by alice. This makes the file undeletable by the plugin.
With my patch, the behavior is consistent between the two filters: both consider files newer than their plays as unwatched.

Thank you for contribution!


Supabase Fixes: Default database name

Set default database name to postgres instead of supabase.
For example pg_cron extension needs database named as postgres by default.
The database on the cloud version of Supabase is named postgres as well.

By default, the pg_cron background worker expects its metadata tables to be created in the “postgres” database.

Maybe this should be hardcoded?

I agree with this.

Hmm, it makes sense. I wonder why it did not come out as an error during my tests. Thanks for the PR


PSD constraint for non-symetric matricies

Describe the bug
PSD constraints for non-symmetric matrices appear to not function properly. For the cvxpy >> operator, the documentation states

The second way is to create a positive semidefinite cone constraint using the >> or << operator. If X and Y are n by n variables, the constraint X >> Y means that zT(X−Y)z≥0, for all z∈Rn. In other words, X+XT is positive semidefinite. The constraint does not require that X and Y be symmetric. Both sides of a postive semidefinite cone constraint must be square matrices and affine.

However, in the example below, adding a >> constraint to a non-symmetric matrix appears to have no effect.
I have tried this with SCS and CVXOPT, and both produce the same bug, so it does not appear to be a solver issue.
Side note: I think the documentation also not quite right. I think it should state: "in otherwords, (X-Y) + (X-Y)^T is positive semidefinite"
To Reproduce
Note here that the min with 10 in the objective is simply to keep the problem from being unbounded, since the >> constraint is not functioning properly.
import numpy as np
import cvxpy as cp

s = cp.Variable((2, 2))
obj= cp.Maximize(cp.minimum(s[0,1],10))

const = [s>>0,cp.diag(s)==np.ones(2)]

prob = cp.Problem(obj, const)
r = prob.solve()
s = s.value
s = (s+s.T)/2
print("value", r)
print("s", s)
print("eigs",np.linalg.eig(s)[0])

Expected behavior
The resulting matrix should be PSD to within numerical precision. To get the expected output, I add PSD=True when declaring s. However, this should not be required.
value 1.0000137273806762
s [[1.00000233 1.00001495]
 [1.00001495 1.00000233]]
eigs [ 2.00001728e+00 -1.26168319e-05]
[Finished in 0.5s]

Output
value 9.999999999973621
s [[1.         5.02056715]
 [5.02056715 1.        ]]
eigs [ 6.02056715 -4.02056715]
[Finished in 0.4s]

Version

OS: Ubuntu 18.04.1
CVXPY Version: 1.0.15

This is fixed on master.


TSV format dataset summary file not downloading

Error emanates from make_download celery task:
[2024-01-11 10:19:56,680: WARNING/ForkPoolWorker-1] make_download() creating download file...
[2024-01-11 10:19:57,635: ERROR/ForkPoolWorker-1] Task make_download[81332ba8-4f10-4641-9f8d-4b8b172d1e6f] raised unexpected: TypeError('sequence item 0: expected str instance, int found')
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/dist-packages/celery/app/trace.py", line 412, in trace_task
    R = retval = fun(*args, **kwargs)
  File "/usr/local/lib/python3.9/dist-packages/sentry_sdk/integrations/celery.py", line 207, in _inner
    reraise(*exc_info)
  File "/usr/local/lib/python3.9/dist-packages/sentry_sdk/_compat.py", line 60, in reraise
    raise value
  File "/usr/local/lib/python3.9/dist-packages/sentry_sdk/integrations/celery.py", line 202, in _inner
    return f(*args, **kwargs)
  File "/usr/local/lib/python3.9/dist-packages/celery/app/trace.py", line 704, in __protected_call__
    return self.run(*args, **kwargs)
  File "/home/macbookpro/whgazetteer-mehdie/datasets/tasks.py", line 221, in make_download
    links = (';').join(
TypeError: sequence item 0: expected str instance, int found


Failing tests for issue danielguillan/modernizr-mixin#24

Tests I have used while testing the issue. They may be useful again one day.

Output will:
  Eyeglass module testing
    ✓ should compile a sass file (322ms)
    - sould not create an extra parent selector
    - sould not create an extra parent selector with modernizr-mixin

  1 passing (338ms)
  2 pending

Hey @sobolevn, current tests already fail when selectors are incorrect. I don't think we need to add this fail cases right now. I hope the Libsass issue gets fixed soon.
Thanks for your help!


Safari doesn't work when using the default export and only works when using the rollup export

Prerequisites

[X] I have written a descriptive issue title
[X] I have searched existing issues to ensure it has not already been reported

Version (i.e. v2.x.x)
1.0.1-alpha.199
Node.js version (i.e. 18.x, or N/A)
v21.5.0
Operating system
macOS
Operating system version (i.e. 20.04, 11.3, 10, or N/A)
14.3
Description
Im bundling this polyfill via webpack.
Problem i found using @virtualstate/navigation/polyfill/rollup as an entrypoint and importing that works under Safari
But @virtualstate/navigation/polyfill doesn not.
This only effects Safari after a reload (When its using its Cache, disabling the Cache works)
Steps to Reproduce
(coming soon)
Expected Behavior
No response

Since you're using webpack, I would imagine it would be leaning towards needing a commonjs compatible module, which /polyfill/rollup is.
I've added the mapping for commonjs for just /polyfill to automatically pick between esm and cjs, let me know if this does the trick. Version 1.0.1-alpha.200 is publishing now with this change.
Let me know if this does the trick or not.


PassCore using Docker always got Invalid Credentials

PassCore Server

OS:  [ Linux ]
Provider: [ Active Directory ]
Settings file (without sensitive information): appsettings.json below
Log file (without sensitive information):

Describe the bug
Hi, thanks for the community free project but i'm still trying to figure out HOW can connect this docker container with Active Directory, I read ALL open issues, to verify the other solutions, I read almost ALL issues closed to implement the combination explained with different versions and appsetings.json. but NOTHING .... not exist any way to can talk with LDAP Active Directory from Docker.
To Reproduce
Steps to reproduce the behavior:

Fresh install from Almalinux (RedHat Enterprise Linux clone)
install docker engine
clone the latest version from master, (i test it even 4.2.4, 4.2.3 with little modifications)
the rest of tags are too old to build now and get more errors

cd /usr/local/src
git clone https://github.com/unosquare/passcore.git passcore
cd passcore
vim Dockerfile

remove this line https://github.com/unosquare/passcore/blob/master/Dockerfile#L15
modify the line https://github.com/unosquare/passcore/blob/master/Dockerfile#L16 without --no-restore otherwise NEVER build an image correctly
vim /usr/local/src/passcore/src/Unosquare.PassCore.Web/appsettings.json
docker build --rm -t passcore .
docker run \
-e AppSettings__LdapUsername='Administrator' \
-e AppSettings__LdapPassword='StrongPassword' \
-it -p 8000:80 passcore:latest

Expected behavior
Change the password of user
Screenshots

Desktop (please complete the following information):

OS: [Windows]
Browser [Chrome]
Version [latest]

Additional context
I want to add this info, I made research about LDAP Novell client to check if some special chars how would be parser to set correctly and then review the code and seems ok. so in theory passcore clean very well the special chars but including changing the administrator password to a simple 123abc just for test, the container NEVER connect... always said. Invalid Credentials.
network communication are fine and can check here in both ports 389, and 636 but still research. the password in Active Directory NEVER change using 389 because require secure port so always have to use 636.

i don't know what other things need to do and verify or check to try use this software, we don't use Windows to install an IIS and deploy this.. we need to use docker as microservices.
any help please!? is very frustrating...
appsettings.json
{
  "Logging": {
    "IncludeScopes": true,
    "LogLevel": {
      "Default": "Debug",
      "System": "Debug",
      "Microsoft": "Debug"
    }
  },
  "WebSettings": {
    "EnableHttpsRedirect": false
  },
  "AppSettings": {
    // The following options for AD Provider (remove if you don't use this Provider)
    "UseAutomaticContext": true, // Set true to allow PassCore to reset password using the same credentials, or false if you will fill the credentials below
    "RestrictedADGroups": [
      "Administrators",
      "Domain Admins",
      "Enterprise Admins"
    ], // Set the AD groups to restrict the use of PassCore
    "AllowedADGroups": [], // Set the AD Groups to allow PassCore, if the array is empty all the groups no-restricted above are allowed
    "IdTypeForUser": "SAM", // Possible values are "DN", "GUID", "Name", "SAM", "SID" and "UPN" (Default UPN)
    "UpdateLastPassword": false, // Set true to allow PassCore to  update the last password timestamp
    // The following options are for LDAP Provider (remove if you don't use this Provider)
    "LdapSearchBase": "DC=domain,DC=local",
    "LdapSecureSocketLayer": true, // Default for AD is true when using LDAPS 636
    "LdapStartTls": true, // Default for AD is true when using LDAP 389
    "LdapChangePasswordWithDelAdd": false,
    "LdapSearchFilter": "(sAMAccountName={Username})", // Another value: "(&(objectClass=person)(cn={Username}))"
    // General options (valid for both providers)
    "LdapHostnames": [ "dc1.domain.local", "dc2.domain.local" ], // Set your hostname(s)
    "LdapPort": 636, // Default for AD is 389, for LDAPS 636
    "LdapUsername": "", // Set the username or distinguish name (DN) to bind the LDAP server
    "LdapPassword": "", // Set the password for the username
    "DefaultDomain": "" // Set your default AD domain here, or non "@" logins will not work! Use empty value to allow user to set the domain. This option is ONLY available with UPN.
  },
  "ClientSettings": {
    "ValidationRegex": {
      "EmailRegex": "^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$",
      "UsernameRegex": "^[a-zA-Z0-9._-]{3,20}$"
    },
    "UsePasswordGeneration": false, //Set true to let PassCore create a new password for the current account. If true the user can not customize its new password.
    "PasswordEntropy": 16, // the number of bytes of entropy to use for generated passwords
    "ShowPasswordMeter": true,
    "MinimumScore": 0, //The minimum acceptable score that the user's new password needs to get at being evaluated by ZXCVBN to be established as the new password.
    "Recaptcha": {
      "SiteKey": "", // ReCAPTCHA public key: replace this! or leave empty if you don't need ReCAPTCHA
      "PrivateKey": "", // ReCAPTCHA private key: replace this! or leave empty if you don't need ReCAPTCHA
      "LanguageCode": "en"
    },
    "UseEmail": "false",
    "ApplicationTitle": "Change Account Password | Self-Service Account Management Tools",
    "ChangePasswordTitle": "Change Account Password",
    "ChangePasswordForm": {
      "HelpText": "If you are having trouble with this tool, please contact IT Support",
      "UsernameLabel": "Username",
      "UsernameHelpblock": "Your organization's email address",
      "UsernameDefaultDomainHelperBlock": "Your organization's username",
      "CurrentPasswordLabel": "Current Password",
      "CurrentPasswordHelpblock": "Enter your current password",
      "NewPasswordLabel": "New Password",
      "NewPasswordHelpblock": "Enter a strong password. You ca
n use this tool to help you create one; use the XKCD (random sep, pad digit), or NTLM, options.",
      "NewPasswordVerifyLabel": "Re-enter New Password",
      "NewPasswordVerifyHelpblock": "Enter your new password again",
      "ChangePasswordButtonLabel": "Change Password"
    },
    "ErrorsPasswordForm": {
      "FieldRequired": "This field is required",
      "UsernamePattern": "Please enter a valid username",
      "UsernameEmailPattern": "Please enter a valid email address",
      "PasswordMatch": "Passwords do not match"
    },
    "Alerts": {
      "SuccessAlertTitle": "You have changed your password successfully.",
      "SuccessAlertBody": "Please note it may take a few hours for your new password to reach all domain controllers.",
      "ErrorPasswordChangeNotAllowed": "You are not allowed to change your password. Please contact your system administrator.",
      "ErrorInvalidCredentials": "You need to provide the correct current password.",
      "ErrorInvalidDomain": "You have supplied an invalid domain to logon to.",
      "ErrorInvalidUser": "We could not find your user account.",
      "ErrorCaptcha": "Could not verify you are not a robot.",
      "ErrorFieldRequired": "Fulfill all the fields.",
      "ErrorFieldMismatch": "The passwords do not match.",
      "ErrorComplexPassword": "Failed due to password complex policies: New password length is shorter than AD minimum password length",
      "ErrorConnectionLdap": "Unhandled error connecting to the LDAP server.",
      "ErrorScorePassowrd": "The password you are trying to set is not secure enough."
    }
  }
}

logs from container passcore
dbug: Microsoft.AspNetCore.Server.Kestrel[26]
      Connection id "0HMKC2ALE5764", Request id "0HMKC2ALE5764:00000002": done reading request body.
dbug: Microsoft.AspNetCore.Mvc.Formatters.SystemTextJsonInputFormatter[2]
      JSON input formatter succeeded, deserializing to type 'Unosquare.PassCore.Web.Models.ChangePasswordModel'
dbug: Microsoft.AspNetCore.Mvc.ModelBinding.Binders.BodyModelBinder[45]
      Done attempting to bind parameter 'model' of type 'Unosquare.PassCore.Web.Models.ChangePasswordModel'.
dbug: Microsoft.AspNetCore.Mvc.ModelBinding.ParameterBinder[23]
      Done attempting to bind parameter 'model' of type 'Unosquare.PassCore.Web.Models.ChangePasswordModel'.
dbug: Microsoft.AspNetCore.Mvc.ModelBinding.ParameterBinder[26]
      Attempting to validate the bound parameter 'model' of type 'Unosquare.PassCore.Web.Models.ChangePasswordModel' ...
dbug: Microsoft.AspNetCore.Mvc.ModelBinding.ParameterBinder[27]
      Done attempting to validate the bound parameter 'model' of type 'Unosquare.PassCore.Web.Models.ChangePasswordModel'.
warn: PassCoreLDAPProvider[0]
      LDAP query: (sAMAccountName=user1)
warn: PassCoreLDAPProvider[0]
      Failed to connect to host [dc1.domain.local] - LdapException: Unable to connect to server dc1.domain.local:636 (91) Connect Error
      System.IO.IOException: Unable to write data to the transport connection: Connection reset by peer.
       ---> System.Net.Sockets.SocketException (104): Connection reset by peer
         at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.CreateException(SocketError error, Boolean forAsyncThrow)
         at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.SendAsyncForNetworkStream(Socket socket, CancellationToken cancellationToken)
         at System.Net.Sockets.Socket.SendAsyncForNetworkStream(ReadOnlyMemory`1 buffer, SocketFlags socketFlags, CancellationToken cancellationToken)
         at System.Net.Sockets.NetworkStream.WriteAsync(ReadOnlyMemory`1 buffer, CancellationToken cancellationToken)
         at System.Net.Security.SslStream.ForceAuthenticationAsync[TIOAdapter](TIOAdapter adapter, Boolean receiveFirst, Byte[] reAuthenticationData, Boolean isApm)
         at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
         at System.Net.Security.SslStream.ForceAuthenticationAsync[TIOAdapter](TIOAdapter adapter, Boolean receiveFirst, Byte[] reAuthenticationData, Boolean isApm)
         at System.Net.Security.SslStream.ProcessAuthenticationAsync(Boolean isAsync, Boolean isApm, CancellationToken cancellationToken)
         at System.Net.Security.SslStream.AuthenticateAsClientAsync(SslClientAuthenticationOptions sslClientAuthenticationOptions, CancellationToken cancellationToken)
         at System.Net.Security.SslStream.AuthenticateAsClientAsync(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCert
ificateRevocation)
         at Novell.Directory.Ldap.Connection.Connect(String host, Int32 port, Int32 semaphoreId)
         at Zyborg.PassCore.PasswordProvider.LDAP.LdapPasswordChangeProvider.BindToLdap() in /src/src/Zyborg.PassCore.PasswordProvider.LDAP/LdapPasswordChangeProvider.cs:line 317
         at Zyborg.PassCore.PasswordProvider.LDAP.LdapPasswordChangeProvider.PerformPasswordChange(String username, String currentPassword, String newPassword) in /src/src/Zyborg.PassC
ore.PasswordProvider.LDAP/LdapPasswordChangeProvider.cs:line 79
         at Unosquare.PassCore.Web.Controllers.PasswordController.Post(ChangePasswordModel model) in /src/src/Unosquare.PassCore.Web/Controllers/PasswordController.cs:line 108
         at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
         at Unosquare.PassCore.Web.Controllers.PasswordController.Post(ChangePasswordModel model)
         at lambda_method3(Closure , Object , Object[] )
         at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfIActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object contr
oller, Object[] arguments)
         at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
         at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfIActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object contr
oller, Object[] arguments)
         at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
         at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
         at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
         at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
         at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
         at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAwaitedAsync()
         at Microsoft.AspNetCore.Mvc.Controller.OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
         at Microsoft.AspNetCore.Mvc.Filters.ControllerActionFilter.OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
         at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
         at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
         at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
         at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
         at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
         at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
         at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
         at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeAsync()
         at Microsoft.AspNetCore.Mvc.Routing.ControllerRequestDelegateFactory.<>c__DisplayClass10_0.<CreateRequestDelegate>b__0(HttpContext context)
         at Microsoft.AspNetCore.Routing.EndpointMiddleware.Invoke(HttpContext httpContext)
         at Microsoft.AspNetCore.Routing.EndpointRoutingMiddleware.Invoke(HttpContext httpContext)
         at Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware.Invoke(HttpContext context)
         at Microsoft.AspNetCore.StaticFiles.DefaultFilesMiddleware.Invoke(HttpContext context)
         at Microsoft.AspNetCore.HostFiltering.HostFilteringMiddleware.Invoke(HttpContext context)
         at Microsoft.AspNetCore.Hosting.HostingApplication.ProcessRequestAsync(Context context)
         at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ProcessRequests[TContext](IHttpApplication`1 application)
         at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
         at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ProcessRequests[TContext](IHttpApplication`1 application)
         at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ProcessRequestsAsync[TContext](IHttpApplication`1 application)
         at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
         at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ProcessRequestsAsync[TContext](IHttpApplication`1 application)
         at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.HttpConnection.ProcessRequestsAsync[TContext](IHttpApplication`1 httpApplication)
         at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
         at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.HttpConnection.ProcessRequestsAsync[TContext](IHttpApplication`1 httpApplication)
         at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.HttpConnectionMiddleware`1.OnConnectionAsync(ConnectionContext connectionContext)
         at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.TransportManager.<>c__DisplayClass9_0.<BindAsync>b__0(ConnectionContext c)
         at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.KestrelConnection`1.ExecuteAsync()
         at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
         at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.KestrelConnection`1.ExecuteAsync()
         at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.KestrelConnection`1.System.Threading.IThreadPoolWorkItem.Execute()
         at System.Threading.ThreadPoolWorkQueue.Dispatch()
         at System.Threading.PortableThreadPool.WorkerThread.WorkerThreadStart()
         at System.Threading.Thread.StartCallback()
      --- End of stack trace from previous location ---

         at Novell.Directory.Ldap.AsyncExtensions.WaitAndUnwrap(Task task, Int32 timeout)
         at Novell.Directory.Ldap.Connection.Connect(String host, Int32 port, Int32 semaphoreId)
warn: PassCoreLDAPProvider[0]
      Failed to connect to host [dc2.domain.local] - LdapException: Unable to connect to server dc2.domain.local:636 (91) Connect Error
      System.IO.IOException: Unable to write data to the transport connection: Connection reset by peer.
       ---> System.Net.Sockets.SocketException (104): Connection reset by peer
         at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.CreateException(SocketError error, Boolean forAsyncThrow)
         at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.SendAsyncForNetworkStream(Socket socket, CancellationToken cancellationToken)
         at System.Net.Sockets.Socket.SendAsyncForNetworkStream(ReadOnlyMemory`1 buffer, SocketFlags socketFlags, CancellationToken cancellationToken)
         at System.Net.Sockets.NetworkStream.WriteAsync(ReadOnlyMemory`1 buffer, CancellationToken cancellationToken)
         at System.Net.Security.SslStream.ForceAuthenticationAsync[TIOAdapter](TIOAdapter adapter, Boolean receiveFirst, Byte[] reAuthenticationData, Boolean isApm)
         at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
         at System.Net.Security.SslStream.ForceAuthenticationAsync[TIOAdapter](TIOAdapter adapter, Boolean receiveFirst, Byte[] reAuthenticationData, Boolean isApm)
         at System.Net.Security.SslStream.ProcessAuthenticationAsync(Boolean isAsync, Boolean isApm, CancellationToken cancellationToken)
         at System.Net.Security.SslStream.AuthenticateAsClientAsync(SslClientAuthenticationOptions sslClientAuthenticationOptions, CancellationToken cancellationToken)
         at System.Net.Security.SslStream.AuthenticateAsClientAsync(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCert
ificateRevocation)
         at Novell.Directory.Ldap.Connection.Connect(String host, Int32 port, Int32 semaphoreId)
         at Zyborg.PassCore.PasswordProvider.LDAP.LdapPasswordChangeProvider.BindToLdap() in /src/src/Zyborg.PassCore.PasswordProvider.LDAP/LdapPasswordChangeProvider.cs:line 317
         at Zyborg.PassCore.PasswordProvider.LDAP.LdapPasswordChangeProvider.PerformPasswordChange(String username, String currentPassword, String newPassword) in /src/src/Zyborg.PassC
ore.PasswordProvider.LDAP/LdapPasswordChangeProvider.cs:line 79
         at Unosquare.PassCore.Web.Controllers.PasswordController.Post(ChangePasswordModel model) in /src/src/Unosquare.PassCore.Web/Controllers/PasswordController.cs:line 108
         at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
         at Unosquare.PassCore.Web.Controllers.PasswordController.Post(ChangePasswordModel model)
         at lambda_method3(Closure , Object , Object[] )
         at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfIActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object contr
oller, Object[] arguments)
         at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
         at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfIActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object contr
oller, Object[] arguments)
         at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
         at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
         at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
         at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
         at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
         at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAwaitedAsync()
         at Microsoft.AspNetCore.Mvc.Controller.OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
         at Microsoft.AspNetCore.Mvc.Filters.ControllerActionFilter.OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
         at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
         at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
         at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
         at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
         at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
         at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
         at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
         at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeAsync()
         at Microsoft.AspNetCore.Mvc.Routing.ControllerRequestDelegateFactory.<>c__DisplayClass10_0.<CreateRequestDelegate>b__0(HttpContext context)
         at Microsoft.AspNetCore.Routing.EndpointMiddleware.Invoke(HttpContext httpContext)
         at Microsoft.AspNetCore.Routing.EndpointRoutingMiddleware.Invoke(HttpContext httpContext)
         at Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware.Invoke(HttpContext context)
         at Microsoft.AspNetCore.StaticFiles.DefaultFilesMiddleware.Invoke(HttpContext context)
         at Microsoft.AspNetCore.HostFiltering.HostFilteringMiddleware.Invoke(HttpContext context)
         at Microsoft.AspNetCore.Hosting.HostingApplication.ProcessRequestAsync(Context context)
         at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ProcessRequests[TContext](IHttpApplication`1 application)
         at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
         at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ProcessRequests[TContext](IHttpApplication`1 application)
         at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ProcessRequestsAsync[TContext](IHttpApplication`1 application)
         at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
         at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ProcessRequestsAsync[TContext](IHttpApplication`1 application)
         at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.HttpConnection.ProcessRequestsAsync[TContext](IHttpApplication`1 httpApplication)
         at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
         at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.HttpConnection.ProcessRequestsAsync[TContext](IHttpApplication`1 httpApplication)
         at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.HttpConnectionMiddleware`1.OnConnectionAsync(ConnectionContext connectionContext)
         at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.TransportManager.<>c__DisplayClass9_0.<BindAsync>b__0(ConnectionContext c)
         at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.KestrelConnection`1.ExecuteAsync()
         at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
         at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.KestrelConnection`1.ExecuteAsync()
         at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.KestrelConnection`1.System.Threading.IThreadPoolWorkItem.Execute()
         at System.Threading.ThreadPoolWorkQueue.Dispatch()
         at System.Threading.PortableThreadPool.WorkerThread.WorkerThreadStart()
         at System.Threading.Thread.StartCallback()
      --- End of stack trace from previous location ---
         --- End of inner exception stack trace ---
         at Novell.Directory.Ldap.AsyncExtensions.WaitAndUnwrap(Task task, Int32 timeout)
         at Novell.Directory.Ldap.Connection.Connect(String host, Int32 port, Int32 semaphoreId)
warn: PassCoreLDAPProvider[0]
      Failed to connect to any configured hostname - Unosquare.PassCore.Common.ApiErrorException: Error Code: InvalidCredentials
      Failed to connect to any configured hostname
         at Zyborg.PassCore.PasswordProvider.LDAP.LdapPasswordChangeProvider.BindToLdap() in /src/src/Zyborg.PassCore.PasswordProvider.LDAP/LdapPasswordChangeProvider.cs:line 329
         at Zyborg.PassCore.PasswordProvider.LDAP.LdapPasswordChangeProvider.PerformPasswordChange(String username, String currentPassword, String newPassword) in /src/src/Zyborg.PassC
ore.PasswordProvider.LDAP/LdapPasswordChangeProvider.cs:line 79
dbug: Microsoft.AspNetCore.Mvc.Infrastructure.DefaultOutputFormatterSelector[11]
      List of registered output formatters, in the following order: Microsoft.AspNetCore.Mvc.Formatters.HttpNoContentOutputFormatter, Microsoft.AspNetCore.Mvc.Formatters.StringOutputFo
rmatter, Microsoft.AspNetCore.Mvc.Formatters.StreamOutputFormatter, Microsoft.AspNetCore.Mvc.Formatters.SystemTextJsonOutputFormatter
dbug: Microsoft.AspNetCore.Mvc.Infrastructure.DefaultOutputFormatterSelector[6]
      Attempting to select an output formatter based on Accept header 'application/json'.

I'm not sure, but if I understand the following passage from the Readme correctly, then this means that MS Active Directory is not supported with Linux (and with that docker):

PassCore was created to use the Microsoft Active Directory Services provided by .NET Framework, but a new Provider using Novell LDAP Client can be used instead. This provider is the default when PassCore is running at Linux or macOS since Microsoft AD Services are NOT available.

Regards

For me it works with MS AD with passcore running in docker container.
According to the container log, passcore cannot connect to the LDAP server. Maybe you don't have SSL configured for AD?

Hi @drbogar yes. in fact after other research i had to installed AD Certificate role to enable this in the AD, and making testing using ldp.exe in the AD and now can see certificate works on MS AD,
After that i exported the certificate and import from .DER converting into .PEM to our server linux as updating root-ca but maybe must be imported inside the container itself ?? but still getting error.
the new one is  certificate is rejected.
can you provide me your the steps after MS AD are the RootCA created it. maybe I'm misssing something in the middle process.
something like,
export certificate, and do this commands on linux... etc.

Yes, you must install the AD RootCA certificate as a trusted CA.
The container is a separate computer in this respect.

export the RootCA certificate in crt extension format.
copy the exported CA certificate into the /usr/local/share/ca-certificates/ folder of the docker container:
Add these two lines (modified as appropriate) to the Dockerfile:

ADD your_ca_root.crt /usr/local/share/ca-certificates/foo.crt
RUN chmod 644 /usr/local/share/ca-certificates/foo.crt && update-ca-certificates

I hope this helps.

Hi @drbogar
thanks for the steps..
I'll did exactly and still getting error from passcore.
my steps was:
connect to MS AD
execute wizard to extract RootCA - copied into Download as dc1.domain.local.der
download and upload into docker engine linux.
run this commands to convert it
openssl x509 -inform der -in dc1.domain.local.der -out dc1.domain.local.crt
cp -v dc1.domain.local.crt /usr/local/src/passcore/

modify the Dockerfile with your instructions and build but still with error below
here is the log
warn: PassCoreLDAPProvider[0]
      LDAP query: (sAMAccountName=user1)
warn: PassCoreLDAPProvider[0]
      Failed to connect to host [dc1.domain.local] - System.Security.Authentication.AuthenticationException: The remote certificate was rejected by the provided RemoteCertificateValidationCallback.
         at Novell.Directory.Ldap.AsyncExtensions.WaitAndUnwrap(Task task, Int32 timeout)
         at Novell.Directory.Ldap.Connection.Connect(String host, Int32 port, Int32 semaphoreId)
         at Zyborg.PassCore.PasswordProvider.LDAP.LdapPasswordChangeProvider.BindToLdap() in /src/src/Zyborg.PassCore.PasswordProvider.LDAP/LdapPasswordChangeProvider.cs:line 317
warn: PassCoreLDAPProvider[0]
      Failed to connect to any configured hostname - Unosquare.PassCore.Common.ApiErrorException: Error Code: InvalidCredentials
      Failed to connect to any configured hostname
         at Zyborg.PassCore.PasswordProvider.LDAP.LdapPasswordChangeProvider.BindToLdap() in /src/src/Zyborg.PassCore.PasswordProvider.LDAP/LdapPasswordChangeProvider.cs:line 329
         at Zyborg.PassCore.PasswordProvider.LDAP.LdapPasswordChangeProvider.PerformPasswordChange(String username, String currentPassword, String newPassword) in /src/src/Zyborg.PassCore.PasswordProvider.LDAP/LdapPasswordChangeProvider.cs:line 79

I see... 🤔
Can you show me how the Dockerfile looks after editing?
What is the result of running the following command on your docker host?:
docker exec -it <name of the passcore container> ls -lta /etc/ssl/certs | grep -i dc1.domain.local.crt

Hi @drbogar sorry by delay, I did that grep and don't show up the certificate... must be appears under /etc/ssl/certs ?
in the dockerfile i set copy to dir /usr/local/share/ca-certificates/ after update-ca-certificates command maybe moved but isn't in that directory were was filter.

Dockerfile after last modifications
FROM node:latest AS node_base

RUN echo "NODE Version:" && node --version
RUN echo "NPM Version:" && npm --version

FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build

COPY --from=node_base . .

WORKDIR /src
COPY ./ ./

COPY . .

ADD dc1.domain.local.crt /usr/local/share/ca-certificates/dc1.domain.local.crt
RUN chmod 644 /usr/local/share/ca-certificates/dc1.domain.local.crt && update-ca-certificates
RUN dotnet publish -c Release -o /app /p:PASSCORE_PROVIDER=LDAP

# final stage/image
FROM mcr.microsoft.com/dotnet/aspnet:6.0
WORKDIR /app
COPY --from=build /app ./
EXPOSE 80
ENTRYPOINT ["dotnet", "Unosquare.PassCore.Web.dll"]

Step 9/16 : COPY dc1.domain.local.crt /usr/local/share/ca-certificates/dc1.domain.local.crt
 ---> aa7ee7e4b0fb
Step 10/16 : RUN chmod 644 /usr/local/share/ca-certificates/dc1.domain.local.crt && update-ca-certificates
 ---> Running in 486aa8689cd1
Updating certificates in /etc/ssl/certs...
0 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...
done.

i guess must be add 1 not 0...
after docker build when i start the container passcore inside not exist the certificate file inside.

Step 9/16 : COPY dc1.domain.local.crt /usr/local/share/ca-certificates/dc1.domain.local.crt
 ---> aa7ee7e4b0fb
Step 10/16 : RUN chmod 644 /usr/local/share/ca-certificates/dc1.domain.local.crt && update-ca-certificates
 ---> Running in 486aa8689cd1
Updating certificates in /etc/ssl/certs...
0 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...
done.

i guess must be add 1 not 0...
after docker build when i start the container passcore inside not exist the certificate file inside.

can you try to copy to /etc/ssl/certs instead of /usr/local... ?

Hi @drbogar sorry by delay, I did that grep and don't show up the certificate... must be appears under /etc/ssl/certs ? in the dockerfile i set copy to dir /usr/local/share/ca-certificates/ after update-ca-certificates command maybe moved but isn't in that directory were was filter.

The certificate should be placed in /usr/local/share/ca-certificates/. The update-ca-certificates command copies it to /etc/ssl/cert.
Extract from the update-ca-certificates command man page:

update-ca-certificates is a program that updates the directory [/etc/ssl/certs](file://etc/ssl/certs) to hold SSL
certificates and generates ca-certificates.crt, a concatenated single-file list of
certificates.

Dockerfile after last modifications
FROM node:latest AS node_base

RUN echo "NODE Version:" && node --version
RUN echo "NPM Version:" && npm --version

FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build

COPY --from=node_base . .

WORKDIR /src
COPY ./ ./

COPY . .

ADD dc1.domain.local.crt /usr/local/share/ca-certificates/dc1.domain.local.crt
RUN chmod 644 /usr/local/share/ca-certificates/dc1.domain.local.crt && update-ca-certificates
RUN dotnet publish -c Release -o /app /p:PASSCORE_PROVIDER=LDAP

# final stage/image
FROM mcr.microsoft.com/dotnet/aspnet:6.0
WORKDIR /app
COPY --from=build /app ./
EXPOSE 80
ENTRYPOINT ["dotnet", "Unosquare.PassCore.Web.dll"]

Passcore's Dockerfile creates several temporary images during the build. Each FROM is the start of a new image. To install the RootCA certificate on the final container, you need to insert the two lines I wrote earlier after the last FROM.
I hope this helps.

Hi @drbogar
I set the line after last FROM, now the certificate was added, but have to set absolute path for the command /usr/sbin/update-ca-certificates
 ---> Running in d9d2899d03e8
Updating certificates in /etc/ssl/certs...
1 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...
done.

in fact now with grep I can see it inside the container, but still getting error rejecting certificate this is weird.
I test the certificate with other software  and the test show "LDAPS certificates looks good"
this is the output certificate

openssl x509 -text -noout -in dc1.crt
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            14:7e:c0:e6:92:19:26:aa:4b:40:c2:1b:f3:77:76:f5
        Signature Algorithm: sha256WithRSAEncryption
        Issuer: DC = local, DC = domain, CN = dcaws1
        Validity
            Not Before: Sep  2 12:05:14 2022 GMT
            Not After : Sep  2 12:15:13 2027 GMT
        Subject: DC = local, DC = domain, CN = dcaws1
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                RSA Public-Key: (4096 bit)
                Modulus:
                    ...
                    ...
                    ...
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            <IP_ADDRESS>.4.1.311.20.2:
                ...C.A
            X509v3 Key Usage: critical
                Digital Signature, Certificate Sign, CRL Sign
            X509v3 Basic Constraints: critical
                CA:TRUE

any other idea?
can you share appsetttings hidding only sensitive data.??
are you using the last code here from master branch?
here is the actual log

dbug: Microsoft.AspNetCore.Mvc.Formatters.SystemTextJsonInputFormatter[2]
      JSON input formatter succeeded, deserializing to type 'Unosquare.PassCore.Web.Models.ChangePasswordModel'
dbug: Microsoft.AspNetCore.Mvc.ModelBinding.Binders.BodyModelBinder[45]
      Done attempting to bind parameter 'model' of type 'Unosquare.PassCore.Web.Models.ChangePasswordModel'.
dbug: Microsoft.AspNetCore.Mvc.ModelBinding.ParameterBinder[23]
      Done attempting to bind parameter 'model' of type 'Unosquare.PassCore.Web.Models.ChangePasswordModel'.
dbug: Microsoft.AspNetCore.Mvc.ModelBinding.ParameterBinder[26]
      Attempting to validate the bound parameter 'model' of type 'Unosquare.PassCore.Web.Models.ChangePasswordModel' ...
dbug: Microsoft.AspNetCore.Mvc.ModelBinding.ParameterBinder[27]
      Done attempting to validate the bound parameter 'model' of type 'Unosquare.PassCore.Web.Models.ChangePasswordModel'.
warn: PassCoreLDAPProvider[0]

      LDAP query: (sAMAccountName=user1)
warn: PassCoreLDAPProvider[0]

      Failed to connect to host [dc1.domain.local] - System.Security.Authentication.AuthenticationException: The remote certificate was rejected by the provided

 RemoteCertificateValidationCallback.
         at Novell.Directory.Ldap.AsyncExtensions.WaitAndUnwrap(Task task, Int32 timeout)
         at Novell.Directory.Ldap.Connection.Connect(String host, Int32 port, Int32 semaphoreId)
         at Zyborg.PassCore.PasswordProvider.LDAP.LdapPasswordChangeProvider.BindToLdap() in /src/src/Zyborg.PassCore.PasswordProvider.LDAP/LdapPasswordChangeProvider.cs:line
 317
warn: PassCoreLDAPProvider[0]

      Failed to connect to any configured hostname - Unosquare.PassCore.Common.ApiErrorException: Error Code: InvalidCredentials

      Failed to connect to any configured hostname
         at Zyborg.PassCore.PasswordProvider.LDAP.LdapPasswordChangeProvider.BindToLdap() in /src/src/Zyborg.PassCore.PasswordProvider.LDAP/LdapPasswordChangeProvider.cs:line
 329
         at Zyborg.PassCore.PasswordProvider.LDAP.LdapPasswordChangeProvider.PerformPasswordChange(String username, String currentPassword, String newPassword) in /src/src/Zy
borg.PassCore.PasswordProvider.LDAP/LdapPasswordChangeProvider.cs:line 79
dbug: Microsoft.AspNetCore.Mvc.Infrastructure.DefaultOutputFormatterSelector[11]
      List of registered output formatters, in the following order: Microsoft.AspNetCore.Mvc.Formatters.HttpNoContentOutputFormatter, Microsoft.AspNetCore.Mvc.Formatters.Stri
ngOutputFormatter, Microsoft.AspNetCore.Mvc.Formatters.StreamOutputFormatter, Microsoft.AspNetCore.Mvc.Formatters.SystemTextJsonOutputFormatter

if I add this option
-e AppSettings__LdapIgnoreTlsErrors='true'
seems to works but i see in the logs never connect so I assume this is only for test purpose for validate only form not the change it self because with false try to connect with that certificate error reject again.

any update?


Error: Error response from daemon: ps: ps: invalid option -- 'e'

Steps to reproduce the issue:

run balena top abcdef123456 against a running container

Describe the results you received:
balena top abcdef123456
Error response from daemon: ps: ps: invalid option -- 'e'
Describe the results you expected:
$ baena top abcdef123456
PID                 USER                TIME                COMMAND
25637               root                0:00                sh

Additional information you deem important (e.g. issue happens only occasionally):
Output of balena-engine version:
# balena version
Client:
 Version:           19.03.13-dev
 API version:       1.40
 Go version:        go1.12.17
 Git commit:        074a481789174b4b6fd2d706086e8ffceb72e924
 Built:             Sun Aug 16 19:28:03 2020
 OS/Arch:           linux/amd64
 Experimental:      false

Server:
 Engine:
  Version:          19.03.13-dev
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.12.17
  Git commit:       074a481789174b4b6fd2d706086e8ffceb72e924
  Built:            Sun Aug 16 19:28:03 2020
  OS/Arch:          linux/amd64
  Experimental:     true
 containerd:
  Version:          1.2.0+unknown
  GitCommit:
 runc:
  Version:
  GitCommit:        dc9208a3303feef5b3839f4323d9beb36df0a9dd
 balena-engine-init:
  Version:          0.13.0
  GitCommit:        949e6fa-dirty

Output of balena-engine info:
# balena info
Client:
 Debug Mode: false

Server:
 Containers: 8
  Running: 5
  Paused: 0
  Stopped: 3
 Images: 17
 Server Version: 19.03.13-dev
 Storage Driver: overlay2
  Backing Filesystem: <unknown>
  Supports d_type: true
  Native Overlay Diff: true
 Logging Driver: journald
 Cgroup Driver: systemd
 Plugins:
  Volume: local
  Network: bridge host null
  Log: journald json-file local
 Swarm:
  NodeID:
  Is Manager: false
  Node Address:
 Runtimes: bare runc
 Default Runtime: runc
 Init Binary: balena-engine-init
 containerd version:
 runc version: dc9208a3303feef5b3839f4323d9beb36df0a9dd
 init version: 949e6fa-dirty (expected: fec3683b971d9)
 Kernel Version: 5.2.10-yocto-standard
 Operating System: balenaOS 2.58.6+rev1
 OSType: linux
 Architecture: x86_64
 CPUs: 16
 Total Memory: 62.9GiB
 Name: c678c51
 ID: K3TL:2X5P:MCPB:ZDKU:KCQA:6ABL:DJU4:YKXF:T7ZE:Y35M:ZESN:5R2D
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: true
 Insecure Registries:
  <IP_ADDRESS>/8
 Live Restore Enabled: false

WARNING: No swap limit support

Additional environment details (device type, OS, etc.):
N/A

The balena top command is implemented by shelling out to the ps command on the system: https://github.com/balena-os/balena-engine/blob/19.03-balena/daemon/top_unix.go#L167
This is because balenaOS is using busybox's ps, which doesn't support the '-e' flag.
It would be interesting to see if the windows behavior can be leveraged for busybox systems: https://github.com/balena-os/balena-engine/blob/19.03-balena/daemon/top_windows.go#L27

The balena top command is implemented by shelling out to the ps command on the system: https://github.com/balena-os/balena-engine/blob/19.03-balena/daemon/top_unix.go#L167
This is because balenaOS is using busybox's ps, which doesn't support the '-e' flag.
It would be interesting to see if the windows behavior can be leveraged for busybox systems: https://github.com/balena-os/balena-engine/blob/19.03-balena/daemon/top_windows.go#L27

Oddly, according to the busybox source for 1.30.1, the -e flag and others should be supported (and ignored). So I'm not sure why we see the error on balenaOS but not on docker.io/busybox:1.30.1.
https://git.busybox.net/busybox/tree/procps/ps.c?h=1_30_1#n577
I suspect it's related to our busybox build config, but it's not obvious which option we would be missing as this looks like core functionality. (@alexgg?)
We have a few options to approach this:

change meta-balena busybox defconfig to behave more like procps
change balena-machine top command to be more platform agnostic by trying multiple variations
change balena-machine top command to be more platform agnostic by supporting the lowest common flags/fields

Oddly, according to the busybox source for 1.30.1, the -e flag and others should be supported (and ignored). So I'm not sure why we see the error on balenaOS but not on docker.io/busybox:1.30.1.
https://git.busybox.net/busybox/tree/procps/ps.c?h=1_30_1#n577
I suspect it's related to our busybox build config, but it's not obvious which option we would be missing as this looks like core functionality. (@alexgg?)
We have a few options to approach this:

change meta-balena busybox defconfig to behave more like procps
change balena-machine top command to be more platform agnostic by trying multiple variations
change balena-machine top command to be more platform agnostic by supporting the lowest common flags/fields

Leaning on option 3, if we assume that the local ps command supports no args at all (including specifying pids) we can try to call ps with no args and filter the pids we want via ParsePSOutput. In this case we also wouldn't make any assumptions about headers, columns, etc. and just print WYSIWYG. This is a slightly bigger change but offers the maximum compatibility.

Leaning on option 3, if we assume that the local ps command supports no args at all (including specifying pids) we can try to call ps with no args and filter the pids we want via ParsePSOutput. In this case we also wouldn't make any assumptions about headers, columns, etc. and just print WYSIWYG. This is a slightly bigger change but offers the maximum compatibility.

Fix for this is in v19.03.15


I cannot log out

I cannot find anywhere to log out so that I can log in with the correct address

Fixed by https://codereview.chromium.org/904273002


Sand Casino Probability

Could someone use maths/statistics to code an external plugin and display the probability of winning the current stake? Apparently its 50/50 but there are ways to get a few % edge
You could display trends, winning streaks/loses. recommended risk (GP) per stake
Avg. Stake Length duration etc etc

Could be a cool tool

no-one would use such a tool.


Scroll up to page start on run for mobile views

Currently the page scrolls down to the bottom, quite annoying for users.

This issue was moved to dlang-tour/english#44


[BUILD] Bump cmake requirement to >= 3.20 and format CMakeLists.txt

cc @malfet

To be frank, it'll be better to guard the policy check with cmake version check rather than force everythign to newer cmake

To be frank, it'll be better to guard the policy check with cmake version check rather than force everythign to newer cmake

Like this?
if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.20")
  cmake_policy(...)
endif()

@Jokeren
You can also do it like this:
if(POLICY CMP0116)
  cmake_policy(SET CMP0116 OLD)
endif()

I see. Good to know. Thanks!


Add hub and inbox links

See e.g. https://test.skohub.io/literarymachine/skos/w3id.org/class/hochschulfaecher/F17.html and https://test.skohub.io/literarymachine/skos/w3id.org/class/hochschulfaecher/F17.json
Fixes #10

I get an error on npm run build and npm run develop in 10-addHubAndInboxLinks:
ERROR

UNHANDLED REJECTION Cannot read property 'replace' of undefined

  TypeError: Cannot read property 'replace' of undefined

  - url-template.js:156 Object.expand
    [skohub-ssg]/[url-template]/lib/url-template.js:156:25

  - gatsby-node.js:58<EMAIL_ADDRESS>    /home/fsteeg/git/skohub-ssg/gatsby-node.js:58:29

  - Array.forEach

  - gatsby-node.js:41 writer.end
    /home/fsteeg/git/skohub-ssg/gatsby-node.js:41:25

Local build on master works fine.

The devil is in the detail, you need to update your .env with the INBOX and HUB URL templates as described in the .env.example.

you need to update your .env with the INBOX and HUB URL templates

OK, this works now. I updated the README in https://github.com/hbz/skohub-ssg/pull/22/commits/63a36bec5b7a995367366a499aaf25b28216dbcb.
I have then tried to set it up with a local hub (and updated README in https://github.com/hbz/skohub-ssg/pull/22/commits/532ed5badb0eaceacbeb116974bf1de9fe18d560):
INBOX=http://localhost:3000/inbox?target={id}
HUB=http://localhost:3000/hub

But I get 'Invalid link headers for target URL' for the Inbox link.
And 'Invalid topic or hub URL' for the Subscribe button.

But I get 'Invalid link headers for target URL' for the Inbox link.
And 'Invalid topic or hub URL' for the Subscribe button.

The Concepts from the Hochschulfaecher Systematik are currently linking to the hub and inboxes of test.skohub.io:
curl -iL https://w3id.org/class/hochschulfaecher/F17
...
Link: <https://test.skohub.io/inbox?target=http://w3id.org/class/hochschulfaecher/F17#>; rel="http://www.w3.org/ns/ldp#inbox", <https://test.skohub.io/hub>; rel="hub", <http://w3id.org/class/hochschulfaecher/F17#>; rel="self"
...

So basically your local hub tries to validate the requests and rightly identifies that it is not being pointed at. This is expected behavior. I know this can be quite mind bending to grasp, it at least is for me. Perhaps @acka47 can elaborate over a coffee locally in Cologne.

As we agreed that it's sufficient to have one approved review, I am an unassigning me. So, this is ready to be merged then.

Ah, @literarymachine merged it already :)


No longer request username in Request.register

Ref https://developers.meethue.com/documentation/configuration-api the Philips Hue API has deprecated username in the configuration API.
This should help new users adopt the lib more quickly and encounter their own yak shaving 👍
This PR moves to remove username from the Huey::Request.register method.

https://github.com/Veraticus/huey/pull/24 already addresses this, should have looked first ;)


Creates .htaccess & Fixes #14

Fixes #14 and removes .html from file names.

Not entirely sure this method works until I test in on production so need it pushed to evaluate.

Currently solution not working, am testing code on server now to find way and will commit solution.

Solution is working now with the above code.


Improve support for CAdd

This is a followup PR to https://github.com/quantumlib/Qualtran/pull/864 that

adds a notebook for CAdd
fixes classical action and adds classical action tests
replaces the decomposition. The old decomposition is buggy and failed classical tests. Instead I use a simple decomposition that uses $n$ ancillas.
adds tests for decomposition and symbolic costs

PS: we should probably replace this decomposition with the old one when we fix the bug in the old one.

Let's track somewhere the task that Add().controlled() returns this bloq

I created https://github.com/quantumlib/Qualtran/issues/1278 to track making Add.controlled() return CAdd


Change default dims.point to the centroid of the world extents.

🚀 Feature
When a new layer is added, we could set Dims.point to the centroid of the new world extents. I think this default behavior is more likely to show an "interesting" slice.
Motivation

Currently, when a layer is added, the Dims.point is set to the minimum of the world extents. As @Czaki pointed out in #2104, this often leads to the default view being blank when loading data (e.g., an out of focus or empty slice in a z stack).
Pitch

Update the behavior so that when a layer is added the Dims.point is set to the centroid of the new world extent (I can't find where that's done at the moment).
Alternatives

Additional context

Love it! Supportive

me too

@grlee77 can you give this a go in a new PR - then we can revisit #2104 - thanks!!

I was thinking about this more. While I think it makes sense for Points, I wonder if it will be annoying for people looking at timeseries data, you now get a middle timepoint. Maybe for Z-stack data it's ok?
Also, if we go with #2104 then if someone has points + a 3D image layer will the sliders now go out of bounds of the image to show black slices with parts of points. That might be a bit funny.
What does @jni think here? I just worry this might have some unintended consequences and be less desirable in those cases

Also, if we go with #2104 then if someone has points + a 3D image layer will the sliders now go out of bounds of the image to show black slices with parts of points. That might be a bit funny.

Hmmm... yeah, I had not thought of this, but it does seem like that could happen for points that are more than twice the slider step size. I am not sure if excluding the point's radius from the extent is actually annoying users in practice? I noticed it caused a poor initial zoom when doing some tests on a layer with a single point, but that isn't a typical real-world use case.

Also, if we go with #2104 then if someone has points + a 3D image layer will the sliders now go out of bounds of the image to show black slices with parts of points. That might be a bit funny.

currently, when you load data with an empty first slice you will get also an empty slice. The question is which case is more often.

Also, if we go with #2104 then if someone has points + a 3D image layer will the sliders now go out of bounds of the image to show black slices with parts of points. That might be a bit funny.

@sofroniewn doesn't this assume that the points centroid is outside of the image space? I don't think that would be a common scenario?

While I think it makes sense for Points, I wonder if it will be annoying for people looking at timeseries data, you now get a middle timepoint. Maybe for Z-stack data it's ok?

Having worked with a lot of time series recently, I think this is actually ok. Typically at the start of the time series, nothing much is going on, and the middle/end really differentiates between the different treatment samples. So I think in this context it would be good. Ditto for z-stacks.

Ok, all good - thanks for weighing in @jni let's press on with #3718 then


Added autoSignin and support for navigating with states via (uiRouter)

Hi James,
I found your directive very useful. Thank you for putting this together. I wanted to contribute a few minor additions.

Added a new parameter autoSignin to the directive that will force a signin for all routes/states.
Added support for navigation via states using ui-router (https://github.com/angular-ui/ui-router)

Regards,
Daudi

Sorry about that last commit. I opened the file in Visual Studio and voila.. auto format.

They look like useful additions - thanks for the pull request!
Do you know what you changed in that last commit? I should be able to figure it out but don't want to miss anything!
In any case I'll try and get this merged this weekend - thank you!

The last commit is really about allowing the user to request user info after the 'oauth2:authSuccess' event has fired.
Added/modified lines:
line 336: userInfoUrl<EMAIL_ADDRESS>lines 413-420:  if (scope.userInfoUrl && scope.userInfoUrl.length > 0) .....

BTW. Have you looked at these repositories written by @dominickbaier and @brockallen?https://github.com/IdentityModel/oidc-token-manager, https://github.com/IdentityModel/IdentityModel.OidcClient
I'm thinking about refactoring this into AngularJs. Your work here has inspired me in the right direction.

Thanks for the help - I'll get that included, and thanks again for the pull request - really appreciated.
I'm a big fan of those guys work - it's superb stuff and I use IdentityServer extensively. If you're looking at doing work in this space there stuff, along with the surprisingly readable, OpenID Connect spec are excellent references.

I'm happy to help on this front -- I have my own TODO item to wrap the oidc-client library into something usable by NG or NG2. Also, on a side note, I've been rewriting the oidc-client and token-manager libraries in es6. You can see the progress here: https://github.com/IdentityModel/oidc-client-js/tree/dev

I would be willing to help. I wrote a wrapper Angular service to oidc -- nothing great but its a start.

I have one as well here: https://github.com/IdentityManager/IdentityManager/blob/master/source/Core/Assets/Scripts/App/ttIdm.js#L80

Also, just an update on the rewrite I'm doing... I'm about 95% done -- just a bit more then I will release the rewritten library. Any work on this front I'd encourage to be done on the rewritten oidc-client library.

This is very encouraging. I also started my efforts to port to NG. Shall we converge our efforts under a single umbrella? Maybe @brockallen work can be that starting point. Seems like he won't need us after all :)

Update on my end: https://github.com/IdentityModel/oidc-client-js/issues/2#issuecomment-214891289


Showing NSG is not showing error when given wrong options

Description
update
Typing a RG or a NSG that doesn't exist will not show any error. As a user I think this is confusing.
az network nsg show --resource-group myResourceGroupxxxxx --name myNetworkSecurityGroupxxxx

Probably adding an message would be more helpful.

Environment summary
Install Method: CLI / Linux
CLI Version: What version of the CLI and modules are installed? (Use az --version)  :
azure-cli (2.0.13)

acr (2.0.10)
acs (2.0.12)
appservice (0.1.12)
batch (3.1.1)
billing (0.1.3)
cdn (0.0.6)
cloud (2.0.7)
cognitiveservices (0.1.6)
command-modules-nspkg (2.0.1)
component (2.0.7)
configure (2.0.10)
consumption (0.1.3)
container (0.1.8)
core (2.0.13)
cosmosdb (0.1.11)
dla (0.0.10)
dls (0.0.12)
eventgrid (0.1.1)
feedback (2.0.6)
find (0.2.6)
interactive (0.3.7)
iot (0.1.10)
keyvault (2.0.8)
lab (0.0.9)
monitor (0.0.8)
network (2.0.12)
nspkg (3.0.1)
profile (2.0.10)
rdbms (0.0.5)
redis (0.2.7)
resource (2.0.12)
role (2.0.10)
sf (1.0.6)
sql (2.0.9)
storage (2.0.12)
vm (2.0.12)

Python (Linux) 2.7.12 (default, Nov 19 2016, 06:48:10)
[GCC 5.4.0 20160609]

OS Version: What OS and version are you using?
cat /etc/lsb-release

DISTRIB_ID=LinuxMint
DISTRIB_RELEASE=18.1
DISTRIB_CODENAME=serena
DISTRIB_DESCRIPTION="Linux Mint 18.1 Serena"

Shell Type: What shell are you using? (e.g. bash, cmd.exe, Bash on Windows) :
echo $SHELL
/bin/bash

Hi @eon01 we appreciate the feedback. The main reason we don't error out when the resource doesn't exist is because it simplifies scripting scenarios. As the CLI tries to be quiet, when you run a show command, if nothing is printed then there was nothing there to print. Thus, by implication the resource did not exist. If that isn't clear then the interactive scenario isn't being given enough consideration and we can look at striking the right balance between scripting and interactivity.  @johanste can offer further comment on this.

Hi @tjprescott Thank you for your comment, I appreciate it. In this case it's not a bug but a way of designing the CLI.
For users in my case using --debug could be helpful:
az network nsg show --resource-group xxx --name xxx --debug

Another way of thinking instead of showing nothing when there is nothing to show is printing something like:
{
    "SecurityGroups": []
}

This is the case for other CLIs like AWS CLI:
aws ec2 describe-security-groups --filters Name=group-name,Values="*DoesntExist*"

{
    "SecurityGroups": []
}

But as I said, --debug is what I should have used :+1:
Cheers,
Aymen

This has been fixed. An error will be displayed and the command will return error code 3.


[Bug] fix UT test

Purpose of the pull request
fix UT test false becase different locale.
Brief change log
ResourcesServiceTest
Verify this pull request

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 38.96%.  Consider uploading reports for the commit cb91ff2 to get more accurate results

Additional details and impacted files
@@             Coverage Diff              @@
##                dev   #15684      +/-   ##
============================================
- Coverage     38.97%   38.96%   -0.01%
  Complexity     4839     4839
============================================
  Files          1316     1316
  Lines         45000    44964      -36
  Branches       4817     4793      -24
============================================
- Hits          17539    17521      -18
+ Misses        25565    25547      -18
  Partials       1896     1896

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Getting 404 HTTP error code whenever nuxt-i18n is used

Version
v5.4.3
Reproduction link
https://github.com/begueradj/nuxti18n-404
Steps to reproduce
Clone my repo and follow the steps described in README file.
What is expected ?
I expect to launch the server and not get a 404 error page
What is actually happening?
The server launches but I am landing all the time on a 404 error page even if I have a simple and clean /pages/index.vue file.
Additional comments?

It is good if you read this issue first and see the workaround for it: https://github.com/nuxt-community/nuxt-i18n/issues/137

This problem remains the same even when I downgrade nuxt-i18n version to 5.3.0

This bug report is available on Nuxt community (#c150)

Hi @begueradj
Does the latest release solve the issue for you?

@paulgv The new release fixed the bug I linked to (#137 ), so congratulations for the good job ! However, I am still getting a 404 error page whenever I declare  nuxt-i18n plugin in nuxt.config.js as the official documentation suggests.

Hi @begueradj
THe problem is you're using nuxt-i18n without any locale, you should configure at least one locale for it to work.
// nuxt.config.js
modules: [
  ['nuxt-i18n', {
    locales: ['en']
  }]
],

@paulgv Yes, I know, actually I did 2 projects using this plugin during the last weeks (sorry for not including that in my present settings), however I keep having the same issue after I did what suggested (anyway my 2 previous projects did not work with this version ... and strangely even when I downgrade to 5.3.0 version)

@begueradj when running your updated setup, the app behaves as expected on my end: a /en route is created and accessible at http://localhost:3000/en.
Maybe the confusion here comes from the fact that you don't have a default locale set? If you'd like the EN language to be accessible at http://localhost:3000/, you'd have to set defaultLocale to en too:
['nuxt-i18n', {
  locales: ['en'],
  defaultLocale: 'en',
}]

Oh ... I think I am drunk ... I totally forget about the strategy option !!! I am VERY sorry to disturb you with this .... it should not be a bug in this case, I guess ... Thank you so much for your patience and help, have a nice weekend and thank you for this great tool

No worries @begueradj !


API changes break existing installations

i just updated smoothstate in a project from 0.6.0 to 0.7.0 and wondered why my content was not visible anymore after injection. then i discovered, that you changed the the onEnd hook to onReady and the callback to onAfter.
after changing these i got it working again. but now my animations are gone (hard in and out) and i don't have the url param in the hooks anymore, which i used to trigger an analytics pageview.
do you have any plans on reintroducing the url param?
and ist there a working example with animations?
thanks!

@tobaco, the url param should be available to you a few different ways, see the following console.logs:
$(function(){
  'use strict';
  var $page = $('#main'),
      options = {
        alterRequest: function(request) {
          console.log(request.url);
          return request;
        },
        onBefore: function($currentTarget, $container) {
          console.log($currentTarget.prop('href'), $currentTarget.prop('action'));
        },
        onAfter: function($container, $newContent) {
          console.log(smoothState.href);
        }
      },
      smoothState = $page.smoothState(options).data('smoothState');
});

Also, in the demo folder there is a csstricks demo that uses animations.

CLosing this out, let me know if you have any questions.

thanks!
i will try your approach.


Fix for Swarm issue #2027

NewEngine() call contains pointer to http.Client structure, which contains
pointer to http.Transport, which in turn contains TLSClientConfig *tls.Config
That way, its very possible that the same TLS config can be used to communicate
with different Docker engines. And explicitly setting ServerName really hurts.
And we can see such situation with current master Swarm build (https://github.com/docker/swarm/issues/2027)
Signed-off-by: Eugene Chupriyanov<EMAIL_ADDRESS>

This is not a proper fix, sorry. That code is valid to work with the engine.

@calavera  Can you, please, give some more details? Is it essential to explicitly set ServerName in caller's TLSClientConfig. That means Docker Swarm needs to have separate TLS configs for each engine.

client hijacking needs the ServerName to validate the connection, afaik. But that could also be there for historic reasons, that code is very very old.
https://github.com/docker/engine-api/commit/9eec4dc67b13ace4c3c34496089122b9f1f7c28e
Removing the code, without making sure the old hijacking behavior still works as expected is not the proper solution.

@calavera Aha, I see now. What do I need to do to make sure hijacking behavior still works?

I'm reverting my commit in #177 to fix this issue for now. That way we preserve the original behavior until we double check that the server name is necessary, and swarm works again with only one configuration.


added data-testid for integration testing

Describe your changes :

Added data-testid attribute for integration testing

Type of change :

[x] New feature

Checklist:

[x] I have read the CONTRIBUTING document.
[x] I have performed a self-review of my own.
[x] I have tagged my reviewers below.
[ ] I have commented on my code, particularly in hard-to-understand areas.
[x] My changes generate no new warnings.
[ ] I have added tests that prove my fix is effective or that my feature works.
[x] All new and existing tests passed.

@parthp2107 I see a couple of places where you have updated the existing data-testid. Can you please double-check if those changes don't break existing unit tests and are all passing using npm run test command in ui directory. Except that, all changes lgtm.

@shahsank3t addressed it in latest commit


Links opening to wrong file

I have a few projects managed through carthage, one of which has an AppDelegate, and a ViewController in it. When I click on a link to a log that I have placed in my project AppDelegate, it will link to and open the other AppDelegate file. Is this something that can be mitigated?
Sometimes it will open the correct file in a tab, but it always will open the duplicate file in another window

I can see that happening if there are multiple files with same name in the project folder,
the way it works is: it's running a search for the logged file name inside the project directory, since it's going to find both files which one might differ.
In your scenario, is the wrong AppDelegate under some common folder, like Carthage? if so we might be able to implement some kind of ignore list so it skips specific sub-path

An ignore list would be perfect, in my case I would just need to ignore everything in the Carthage folder.

Happening here as well. And yes, the wrong AppDelegate is in a Carthage folder.


Example app crashes when metrics not found in configuration

Expected Behavior
If I add in my own mobile-services.json file to the example app it should still function. Even if I don't have every service provisioned.
This has only been confirmed when metrics is missing, other services may also cause this.
Actual Behavior
If I add a mobile-services.json without metrics configured then the app will crash.
Steps to Reproduce the Problem

Remove metrics from mobile-services.json
Run the app

From looking at the code it looks like this line is breaking the application:
https://github.com/aerogear/aerogear-android-sdk/blob/master/core/src/main/java/org/aerogear/mobile/core/metrics/MetricsService.java#L53-L56
I'm not sure if it needs to be set as required all the time. If it doesn't then by the user providing the metrics in the json this line of code will never be triggered:
https://github.com/aerogear/aerogear-android-sdk/blob/master/core/src/main/java/org/aerogear/mobile/core/MobileCore.java#L163
and so the serviceCfg will always be set. If it does need to be set as required then this isn't a bug and the mobile-services.json needs to have metrics included. What do you think @aidenkeating?

If a services requiresConfiguration() returns true, but its configuration isn't defined in mobile-services.json they'll need to handle the error. To me, this isn't a bug then, but something the end user should be aware they may need to handle in development.
IMO, the error should be handled in the example app. The example app should catch the ConfigurationNotFoundException and provide some feedback to the user that metrics/auth services are currently disabled because they're not defined in the configuration file.
That'll act as an example to the end user on how to handle this type of scenario (Which is probably only a development-time issue).
@secondsun @danielpassos Any opinion on this?

It's going be fixed when I finish AGDROID-802


execute flutter doctor always failed on macOS

Flutter crash report; please file at https://github.com/flutter/flutter/issues.
command
flutter doctor
exception
SocketException: SocketException: OS Error: Operation timed out, errno = 60, address = storage.googleapis.com, port = 50754
#0      _attempt (package:flutter_tools/src/base/net.dart:40)
<asynchronous suspension>
#1      fetchUrl (package:flutter_tools/src/base/net.dart:22)
<asynchronous suspension>
#2      _downloadFile (package:flutter_tools/src/cache.dart:405)
<asynchronous suspension>
#3      _downloadZipArchive.<anonymous closure> (package:flutter_tools/src/cache.dart:412)
<asynchronous suspension>
#4      _withTemporaryFile (package:flutter_tools/src/cache.dart:433)
<asynchronous suspension>
#5      _downloadZipArchive (package:flutter_tools/src/cache.dart:411)
#6      FlutterEngine._downloadItem (package:flutter_tools/src/cache.dart:378)
#7      FlutterEngine.updateInner (package:flutter_tools/src/cache.dart:346)
<asynchronous suspension>
#8      CachedArtifact.update (package:flutter_tools/src/cache.dart:223)
<asynchronous suspension>
#9      Cache.updateAll (package:flutter_tools/src/cache.dart:196)
<asynchronous suspension>
#10     FlutterCommand.verifyThenRunCommand (package:flutter_tools/src/runner/flutter_command.dart:239)
<asynchronous suspension>
#11     FlutterCommand.run (package:flutter_tools/src/runner/flutter_command.dart:193)
<asynchronous suspension>
#12     CommandRunner.runCommand (package:args/command_runner.dart:194)
<asynchronous suspension>
#13     FlutterCommandRunner.runCommand (package:flutter_tools/src/runner/flutter_command_runner.dart:279)
<asynchronous suspension>
#14     CommandRunner.run.<anonymous closure> (package:args/command_runner.dart:109)
#15     new Future.sync (dart:async/future.dart:222)
#16     CommandRunner.run (package:args/command_runner.dart:109)
#17     FlutterCommandRunner.run (package:flutter_tools/src/runner/flutter_command_runner.dart:162)
#18     run.<anonymous closure> (package:flutter_tools/executable.dart:143)
<asynchronous suspension>
#19     AppContext._run (package:flutter_tools/src/base/context.dart:76)
<asynchronous suspension>
#20     AppContext.runInZone.<anonymous closure> (package:flutter_tools/src/base/context.dart:66)
#21     _rootRun (dart:async/zone.dart:1120)
#22     _CustomZone.run (dart:async/zone.dart:1001)
#23     runZoned (dart:async/zone.dart:1467)
#24     AppContext.runInZone (package:flutter_tools/src/base/context.dart:65)
#25     run (package:flutter_tools/executable.dart:114)
<asynchronous suspension>
#26     main (package:flutter_tools/executable.dart:67)
<asynchronous suspension>
#27     main (file:///Users/lulei/Develop/flutter/packages/flutter_tools/bin/flutter_tools.dart:16)
#28     _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:263)
#29     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:151)

flutter doctor
[-] Flutter (on Mac OS X 10.12.1 16B2657, locale zh-Hans-CN, channel alpha)
    • Flutter at /Users/lulei/Develop/flutter
    • Framework revision e8aa40eddd (2 weeks ago), 2017-10-17 15:42:40 -0700
    • Engine revision 7c4142808c
    • Tools Dart version 1.25.0-dev.11.0
    ✗ Downloaded executables cannot execute on host (see https://github.com/flutter/flutter/issues/6207 for more information)

[✓] Android toolchain - develop for Android devices (Android SDK 25.0.2)
    • Android SDK at /Users/lulei/Develop/Android/sdk
    • Platform android-25, build-tools 25.0.2
    • ANDROID_HOME = /Users/lulei/Develop/Android/sdk
    • Java binary at: /Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home/bin/java
    • Java version Java(TM) SE Runtime Environment (build 1.8.0_111-b14)

[-] iOS toolchain - develop for iOS devices (Xcode 7.3.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 7.3.1, Build version 7D1014
    ✗ Flutter requires a minimum Xcode version of 8.0.0.
      Download the latest version or update via the Mac App Store.
    ✗ libimobiledevice and ideviceinstaller are not installed. To install, run:
        brew install --HEAD libimobiledevice
        brew install ideviceinstaller
    ✗ ios-deploy not installed. To install:
        brew install ios-deploy
    • CocoaPods version 1.2.0

[-] Android Studio (version 2.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    ✗ Unable to find bundled Java version.
    • Try updating or re-installing Android Studio.

[✓] IntelliJ IDEA Community Edition (version 2017.2.5)
    • Flutter plugin version 18.3
    • Dart plugin version 172.4343.25

[✓] Connected devices
    • SM A3009 • 614bdcd7 • android-arm • Android 5.0.2 (API 21)

Quick question: are you installing Flutter in China? Were you using a VPN?
The Flutter tool downloads some dependencies that are not accessible from China. Please watch #11681 as we continue investigating this issue.

Fixed now https://github.com/flutter/flutter/wiki/Using-Flutter-in-China


chore(main): release 0.11.0

:robot: I have created a release beep boop
0.11.0 (2024-08-01)
Features

support luarocks/rocks.nvim (#154) (d040988)

This PR was generated with Release Please. See documentation.

@mrcjkb I'm just waiting for #155 to be merged before releasing this and we should have the adapter released on luarocks.

:robot: Created releases:

v0.11.0
:sunflower:

@mrcjkb I think it might take some time until that PR gets merged, so I just released now which should publish to luarocks.

I guess it worked: https://luarocks.org/modules/fredrikaverpil/neotest-golang

Awesome! 😊
Hm. I feel like I would like to include in the README how to install using this method. I currently only have Lazy as an installation example.
@mrcjkb would you be up for contributing with an example in the README?


Add Broker takeover configuration

Add Broker takeover configuration
In cases where takeover of platform brokers needs to be centrally disabled there needs to be a configuration property to do that.

Coverage increased (+0.02%) to 89.96% when pulling 1385bd1efb09a9f89fc5567080c41e051d031ed7 on takeover_config into d7f78472a8da1af4ae2deb94008104d6ef56cbe1 on master.

Blacklist and takeover should be taken into account in notifications too !

@KirilKabakchiev please re-review.


passing values with TrackMe

I 'm using matomo to log the events in my android app.I use the below codes when I have one string and one float to pass and it works well :
TrackHelper.track()
.event("category_name"," event_name")
.name("user_name")
.value(user_Id)
.with(tracker);
and I can see the log in Visitors>visits log as below:
category_name - event_name - user_name [100]
Now my question is here : when I want to pass more values as I get from documentation I can use TrackMe .
so I change my code to this :
TrackHelper.track(new TrackMe()
.set("itemName", "item_name")
.set("itemId", itemId))
.event("category_name", "event_name")
.name("user_name")
.value(user_Id)
.with(tracker);
but as a result nothing changes in the event that I see in my matomo panel . there is nothing about the values I pass with TrackMe.
Am I doing something wrong? could you please guide me that how can I pass more values to matomo?

You can find the code for the TrackHelper.EventBuilder here:
https://github.com/matomo-org/matomo-sdk-android/blob/9c3ccd2ac5070a3147f75bc4c461510f356bacf6/tracker/src/main/java/org/matomo/sdk/extra/TrackHelper.java#L215-L220
an event can only have one name, and one value.
Maybe you are looking for Custom Dimensions


Does not work with ApexChart (Manualmode)

When trying to use  component, it does not work with ApexCharts. When registering the page as not SSR in nuxt.config it works, but DelayHydration did not work, which I would have preferred.

I don't think there's anything I can do to solve this within the scope of this module so I'm going to close this.