Test config

This PR introduces tests for the ParseFlags(), FromYAMLFile() and TLS.MakeConfig() functions:
ParseFlags

Verifies that command-line flags are correctly parsed into a struct.
Error propagation from defaults.Set().
Nil pointer argument: Tests calling FromYAMLFile with a nil pointer argument.
Nil argument: Tests calling FromYAMLFile with a nil argument.

FromYAMLFile

Simple YAML: Tests parsing a simple YAML file.
Inlined YAML: Tests parsing a YAML file with inlined fields.
Embedded YAML: Tests parsing a YAML file with embedded fields.
Defaults: Tests parsing a YAML file with default values.
Overriding defaults: Tests parsing a YAML file overriding default values.
Empty YAML: Tests parsing an empty YAML file.
Empty YAML with directive separator: Tests parsing an empty YAML file with a directive separator.
Faulty YAML: Tests parsing a faulty YAML file.
Invalid YAML: Tests parsing a YAML file that is expected to fail validation.
Nil pointer argument: Tests calling FromYAMLFile with a nil pointer argument.
Nil argument: Tests calling FromYAMLFile with a nil argument.
Non-existent file: Tests calling FromYAMLFile with a non-existent file.
Permission denied: Tests calling FromYAMLFile with a file that has no read permissions.

TLS.MakeConfig()

Basic Configuration

Verifies that the function returns nil when TLS is disabled.
Ensures the server name is correctly set in the TLS configuration.
Checks that InsecureSkipVerify is set to true when specified.
Ensures an error is returned when the client certificate is missing.
Ensures an error is returned when the private key is missing.

x509 Certificate Handling

Valid certificate and key: Verifies successful configuration with valid certificate and key.
Mismatched certificate and key: Ensures an error is returned for mismatched certificate and key.
Invalid certificate path: Ensures an error is returned for a non-existent certificate file.
Invalid certificate permissions: Ensures an error is returned for a certificate file with no read permissions.
Corrupt certificate: Ensures an error is returned for a corrupt certificate file.
Invalid key path: Ensures an error is returned for a non-existent key file.
Invalid key permissions: Ensures an error is returned for a key file with no read permissions.
Corrupt key: Ensures an error is returned for a corrupt key file.
Valid CA: Verifies successful configuration with a valid CA certificate.
Invalid CA path: Ensures an error is returned for a non-existent CA file.
Invalid CA permissions: Ensures an error is returned for a CA file with no read permissions.
Corrupt CA: Ensures an error is returned for a corrupt CA file.

@oxzi I have adjusted the code based on your preview. Please take another look at it. I have already moved code unfortunately, so the comments are no longer aligned correctly.


Querying missing tag, 7.58.1 , corresponding with same tag in DataDog/datadog-agent repo

While attempting build and install of integrations-core from source I noted that there has been a tag/release of 7.58.1 of DataDog/datadog-agent but no corresponding DataDog/integrations-core tag/release.
Is this intentional? It is not something I have seen before in previous builds/installs.

@philroche we typically only add patch release tags like 7.58.1 if we have any changes to release.
For your convenience I added 7.58.1 and 7.58.2 tags, but to future-proof your build, I'd just grab the latest commit from the 7.58.x branch if you can't find the right tag.

Perfect. Thank you


Usage of Lint may have a wrong command: ai-context-lint <directory_to_lint> should be codebase-context-lint <directory_to_lint>

Describe the bug
When I run the command ai-context-lint . I am prompted with ai-context-lint: command not found.
To Reproduce
Steps to reproduce the behavior:

If not already done so, install lint with  $ npm install -g codebase-context-lint as per the instructions at https://github.com/Agentic-Insights/codebase-context-spec/blob/main/linters/typescript/README.md
In the directory where a context.md files resides, run $ ai-context-lint .
A prompt will state: ai-context-lint: command not found.
The above indicates an error.

Expected behavior
As the npm package that is installed is called codebase-context-lint one would expect to use that name in the command, hence $ codebase-context-lint .
If I do so, a valid linting happens:
========================================================
Codebase Context Specification (CCS) Linter (v1.2.0)
========================================================

Linting directory: .

Linting .contextdocs.md file
  - Checking for similar links in markdown content
  Error: Missing or invalid "contextdocs" array in YAML front matter.

Linting file: .context.md
  - Validating Markdown structure
  - Checking YAML frontmatter
  Warning: Unexpected top-level field 'project-name'.
  Warning: Unexpected top-level field 'main-technologies'.
  Warning: Unexpected top-level field 'ai-prompts'.
  Context coverage: 61.54% (8/13 fields)
  Warning: Unexpected field 'main-components' in 'architecture' section.
  architecture coverage: 66.67% (2/3 fields)
  development coverage: 100.00% (3/3 fields)
  business-requirements coverage: 100.00% (3/3 fields)
  quality-assurance coverage: 100.00% (3/3 fields)
  deployment coverage: 100.00% (4/4 fields)
  ✅ .context.md passed validation

Linting file: node_modules/codebase-context-lint/.context.md
  - Validating Markdown structure
  - Checking YAML frontmatter
  Warning: Unexpected top-level field 'project-type'.
  Context coverage: 100.00% (13/13 fields)
  architecture coverage: 100.00% (3/3 fields)
  development coverage: 100.00% (3/3 fields)
  business-requirements coverage: 100.00% (3/3 fields)
  quality-assurance coverage: 100.00% (3/3 fields)
  deployment coverage: 100.00% (4/4 fields)
  ✅ .context.md passed validation

Linting file: src/.context.yaml
  - Validating YAML structure
  Error parsing YAML file: TypeError: Cannot convert undefined or null to object
  ❌ .context.yaml failed validation

Linting file: src/module1/.context.md
  - Validating Markdown structure
  - Checking YAML frontmatter
  Error: Invalid markdown structure. YAML frontmatter is missing or incomplete.
  ❌ .context.md failed validation

Linting file: src/module2/.context.json
  - Validating JSON structure
  Error parsing JSON file: SyntaxError: Unexpected end of JSON input
  ❌ .context.json failed validation

Linting file: tests/.context.md
  - Validating Markdown structure
  - Checking YAML frontmatter
  Error: Invalid markdown structure. YAML frontmatter is missing or incomplete.
  ❌ .context.md failed validation

Linting completed.

Screenshots
See above output instead of a screenshot.
Desktop (please complete the following information):

OS: GitPod
Browser: Chrome
Version: Version 128.0.6613.113 (Official Build) (64-bit)

Smartphone (please complete the following information):

Device: Not Applicable
OS: Not Applicable
Browser: Not Applicable
Version: Not Applicable

Additional context
If I am right in my conclusions, I would recommend for the documentation to be rectified. https://github.com/Agentic-Insights/codebase-context-spec/blob/main/linters/typescript/README.md where ai-context-lint <directory_to_lint> should instead be codebase-context-lint  <directory_to_lint>

I believe you were a victim of an old page load. I updated the instructions already. I believe you loaded the instructions and I pushed the new release just afterwards that renames it. So if you load the instructions again they are correct now. Please re-open if there is still an issue.


Fix link to the docs

Changes
For some reason the link to docs is not working:

[ ] Appropriate documentation updates in the docs folder

I've updated the template to use the link of the docs page itself, instead of a reference to it.

Weird relative links aren't working just here.
Lgtm


[sched] Alarms not firing and uneditable.

Affected hardware version
Bangle 2
Your firmware version
2v18
The bug
Schedular App not firing alarms. Alarms, timers, and events uneditable in the App loader.
Expected to feel alarms going off. Expecting to be able to edit the alarms in the App loader.
Ways to reproduce:
Unknown.
Installed apps
widbt_notify (0.17), calculator (0.07), waypoints (0.01), info (0.03), hrm (0.11), blackjack (0.03), ptlaunch (0.15), files (0.08), powersave (0.03), magnav (0.06), altimeter (0.03), henkinen (0.01), launch (0.20), gpssetup (0.02), gpsautotime (0.04), clicompleteclk (0.03), widdevst (0.03), gpsmagcourse (0.01), bledetect (0.04), widminbat (0.03), drained (0.03), lightswitch (0.07), rpnsci (0.03), shownearby (0.02), messageicons (0.05), messages (0.60), notify (0.13), mylocation (0.10), compass (0.09), boxclk (0.05), thermom (0.07), messagegui (0.73), folderlaunch (0.03), gpsinfo (0.12), promenu (0.02), runplus (0.21), astrocalc (0.05), rescalc (0.04), gipy (0.20), multitimer (0.07), fastload (0.06), recorder (0.30), clock_info (0.07), kbtouch (0.04), batchart (0.12), speedalt (0.13), qrcode (0.06), health (0.26), fileman (0.03), boot (0.59), poweroff (0.03), setting (0.63), sched (0.22), widalarm (0.01), alarm (0.42), openhaystack (0.01)

What do you mean by "uneditable"? Can you edit the alarms on the watch?

What do you mean by uneditable in the App loader? You mean you don't see an option to edit them from the app loader but there isn't one and you have to edit from the watch itself?

Schedular App not firing alarms

If I create an alarm and go back to the clock, it works fine me here. Or is the issue that you're creating an alarm but then not exiting the scheduler app, and the alarm isn't firing?

By uneditable in the App loader I mean if I try to edit my alarms using the Scheduler app on the App loader, it doesn't load the editing menu. I can try to edit the alarms in the alarms app on the watch, but they never go off.

Can you please download the sched.json with the web ide and attach the file here?

My watch does not have sched.json on it.

By uneditable in the App loader I mean if I try to edit my alarms using the Scheduler app on the App loader, it doesn't load the editing menu. I can try to edit the alarms in the alarms app on the watch, but they never go off.

Is this in the Gadgetbridge itegrated App Loader or via a separate web browser? Which browser and operating system in the latter case?

ok, the interface.html fails when sched.json does not exist, this is a bug.
Now the other problem:
@JAVAHTML1 Can you try to edit an alarm on the watch and after that: Does sched.json exist now?

No. The file does not exist
Boot0:
boot0.txt
I am using the Bangle.js Developer App Loader on Chrome Browser with MacOS Ventura.

ok, so I assume the alarm also does not exist when you reopen the alarm app.
Can you please go to the IDE and connect to the Bangle. Then create an alarm, what appears in the IDE console?

The output is: "Uncaught Error: Cannot read property 'unlockSide' of undefined
at line 2 col 244 in lightswitch.js
...ocked();if(locked&&data.dir===w.unlockSide)Bangle.setLocked();if(...
^
in function called from system

|  |_ ___ ___ _ ||___ ___
|  | -| . |  | | | |   | . |
|||  || |||||_|
|| espruino.com
2v18 (c) 2021 G.Williams
Uncaught Error: Cannot read property 'tapSide' of undefined
at line 2 col 287 in lightswitch.js
...le.setLocked();if(data.dir===w.tapSide&&(w.tapOn==="always"||locked...
^
in function called from system
Uncaught Error: Cannot read property 'unlockSide' of undefined
at line 2 col 244 in lightswitch.js
...ocked();if(locked&&data.dir===w.unlockSide)Bangle.setLocked();if(...
^
in function called from system

"

I wonder if doing a settings rewrite would fix your problem: Settings->Utils->Rewrite settings

That error comes from the lightswitch app by the look of it, and the error is probably stopping the rest of the code from running.
Please can you try uninstalling the lightswitch app and see if that fixes it? I'm not sure in this case settings rewrite (which just updates .boot0) would help - boot0 looks fine to me

I believe the issue is that lightswitch registers a tap listener in its boot code, and the tap listener accesses the widget's unlockSide and tapSide properties, from the two errors above.

Errors
Uncaught Error: Cannot read property 'tapSide' of undefined
at line 2 col 287 in lightswitch.js
...le.setLocked();if(data.dir===w.tapSide&&(w.tapOn==="always"||locked...
^
in function called from system

Uncaught Error: Cannot read property 'unlockSide' of undefined
at line 2 col 244 in lightswitch.js
...ocked();if(locked&&data.dir===w.unlockSide)Bangle.setLocked();if(...
^
in function called from system

The first error (tapSide) is reachable if locked is false, since the first if shortcircuits

There's one odd thing though:

lightswitch initialises w, so it can't be undefined


Nested opacitiy not themable

Describe the bug
When an opacity token references another opacity token changing the color of this element with theming is not working.
To Reproduce
Steps to reproduce the behavior:

Create token $opacity.90 with 90% opacity
Create token $emphasis.xy.high which references the token $opacity.90
Apply a color token to an element,
Apply the $emphasis.xy.high token to this element
Add a theme with these tokens and a different color token

Expected behavior
When changing themes the color of the element should switch

Could you provide a screen recording and/or a file to reproduce the issue? Works just fine for me if I reproduce the steps you outlined.

It was my mistake, because the token was in the same json object :)


[CODABOT via GitLab] Dockerfile is BAD/INVALID and MUST NOT BE USED

ISSUE DETECTED: Dockerfile status BAD/INVALID
CURRENT STATUS: Dockerfile MUST NOT BE USED
REMEDY/SOLUTION: 2 ERRORS NEED TO BE RESOLVED

ERROR: contrib/docker/Dockerfile

Using latest will cause errors if the image will ever update; latest should never be used. Always use a version explicit to a release tag.

(FROM golang:latest)

ERROR: contrib/docker/build.sh

DOCKER_FILE_LOCATION appears unused. Verify use or export if used externally.

(DOCKER_FILE_LOCATION=./contrib/docker/Dockerfile)

GVisor to the rescue.


How get mac address of client machine using Angular js

otherwise any program support for get mac address of client machine Id

Hi, your issue reads like a support question. This github repo is only for bug reports and feature requests. Your question is also very general and has nothing to do with Angular specifically.


Skip ssl tests if certs are not available or ssl port is not open

These are a few possibilities for implementing https://www.notion.so/Skip-RabbitMQ-SSL-tests-if-secure-port-not-available-73a50e2111704b50b01fabfb27683879

Check for the cert files and skip if they are not found
Check the configured host and check if ssl port is available and skip if it is not

I would say the first is probably simpler and might be enough (considering that if you went through the trouble of copying over the ssl certs you probably also have the correct docker container running), but I thought I'd put all the ideas in here (maybe there's also something completely different I didn't think of).

like with the toxiproxy tests we probably want to prevent the skip if we detect travis

As suggested, I removed the port checking and added the on_travis check


Support for JSDoc default values

It would be awesome if one could annotate a field with JSDoc @default like this:
export type Config = BaseConfig & {
  sparkplug: {
    groupIds: string[]
    systemTopic: string
  }
  advanced?: {
    /**
     *  @default true
     */
    disableSomeFeature?: boolean
  }
}

And have the resulting validator JSON Schema include the default value. In this way, the validator could be also used to apply default values to user-provided JSON inputs.
Has this been considered? Would you consider this in scope for this library? If so, would you consider a PR with this feature?

https://github.com/azu/create-validator-ts/releases/tag/v6.0.0 support useDefault by default.


publish for facebook is dead

they're turning it off in the API altogether. RSVPs today, posts 8/1/2018. https://developers.facebook.com/blog/post/2018/04/24/new-facebook-platform-product-changes-policy-updates/
it's a brave new world.

sad to see that :/ I'm leaving facebook anyway :)

i used this remote_api_shell snippet to send FB notifications to all bridgy publish users:
$ setenv FACEBOOK_APP_ID `cat facebook_app_id`
$ setenv FACEBOOK_APP_SECRET `cat facebook_app_secret`
$ remote_api_shell.py brid-gy

import traceback
from facebook import FacebookPage

for src in FacebookPage.query(
    FacebookPage.status == 'enabled',
    FacebookPage.features == 'publish',
  ).iter(offset=5):
  if src.auth_entity.get().type == 'user':
    print(src.label(), src.silo_url())
    try:
      src.gr_source.create_notification(
      src.key.id(),
      'Publish for Facebook will shut down in August. (Backfeed will still work.) So long, and thanks for all the fish!',
      'https://brid.gy/about#facebook-publish')
    except Exception as e:
      traceback.print_exc()

F8 announcements today and Graph API v3.0 changes may mean facebook backfeed is dead too. not sure yet. details in https://github.com/snarfed/bridgy/issues/814#issuecomment-385749430.

yup, backfeed is dead too. #826

82d0b0cc9f9b6c3c30d0b04255636b9b0326a0b4

facebook publish attempts now 400. closing.


Method not found: 'System.String RazorEngine.Templating.ITemplate.Run

I'm getting following error Azure Mobile App template. Created the instance in Azure, and then downloaded the Visual Studio package. It works in RazorEngine v 3.4.2. But breaks in 3.5.0 and above.
An error has occurred.Method not found: 'System.String RazorEngine.Templating.ITemplate.Run(RazorEngine.Templating.ExecuteContext)'.System.MissingMethodException   at Microsoft.Azure.Mobile.Server.Content.HtmlActionResult.ExecuteAsync(CancellationToken cancellationToken)
at System.Web.Http.Controllers.ApiControllerActionInvoker.d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Controllers.ActionFilterResult.d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.AuthorizationFilterAttribute.d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Controllers.AuthenticationFilterResult.d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Controllers.ExceptionFilterResult.d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Web.Http.Controllers.ExceptionFilterResult.d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Dispatcher.HttpControllerDispatcher.d__1.MoveNext()

Yes this was a breaking change from 3.4.
You have only a limited number of options at this point:

Stay at 3.4.
Drop the WindowsAzure.MobileServices.Backend dependency
Tell them to update to 3.5 or higher
Compile RazorEngine yourself with another name and use both versions (3.4 and 3.5 side-by-side)

I don't plan to fix this here at RazorEngine. In fact I thought about adding compatibility for this, but I'm not sure if this is possible without breaking something else.

Thanks matthid. I have created corresponding ticket for azure.mobileservices thread.


Add trap expression support to the parser

Description:
https://ballerina.io/spec/lang/2020R1/#trap-expr
Suggested Labels (optional):
Component/Parser; Type/NewFeature
Add this to sprint 9 as well

Added with #22834


Consider using the absolute path to the assets.json as the local cache key instead of the relative path

With the changes to optimize the restore path to minimize disk reads/writes a cache was added where we're using the AssetsJsonRelativeLocation as the key. I'm not 100% if the relative path is unique enough. As I found out while trying to write a testcase for a scenario I'd fixed. As it turns out, the relative path doesn't have to be unique in spite of the assets.json files living in completely different directories. This shouldn't be something that'll happen with the test-proxy running and the CLI commands won't persist the cache past a single command but it's still something we should consider as the absolute path will guarantee uniqueness.

I don't think I'm going to take this one. Here's my thinking:
We find the assets store by the following algo.

PROXY_ASSETS_FOLDER if set.
<reporoot> + .assets if override not set.

<reporoot> is calculated by ascending from the assets.json location to the first git root. My belief is that if we're aiming the test-proxy at an assets.json without explicitly overriding the assets store folder, they intended to re-use the same assets clone.
Now, given that, the test-proxy runs in both local as well as docker mode. When running in local mode, the absolute path to the assets json will be:
C:/repo/sdk-for-python/sdk/tables/assets.json

But when running in docker mode, the absolute path to that SAME ASSETS.JSON will be:
/srv/test-proxy/sdk/tables/assets.json

This has the effects of using a different assets repo clone depending on whether you're running tests through docker or the local tool. This goes against my expectations of the tool.


Add example NHSR workforce statistics datasets

Would be nice to add workforce statistics
Could make a nice time series dataset

Example of wrangling which might be needed
library("tidyverse")
library("glue")
library("readxl")

ics_name = "Lancashire and South Cumbria"

filename = glue("NHS Workforce Statistics, May 2023 England and Organisation.xlsx")
staff_group = read_xlsx(path = filename, sheet = "3. NHSE, Org & SG - FTE", skip = 5)
time_series = read_xlsx(path = filename, sheet = "5. All Staff, NHSE & Org - FTE",
                        range = "A5:FO766")

  staff_group |>
  janitor::clean_names() |>
  dplyr::filter(is.na(nhs_england_region_name)) |> # Remove region aggregates
  dplyr::mutate(organisation_name = if_else(!is.na(ics_name), "Total", organisation_name)) |>
  dplyr::filter(!is.na(organisation_name))|>  # Remove dud rows
  tidyr::fill(ics_name) |>
  dplyr::select(ics_name, organisation_name, total,
                hchs_doctors, `nurses_health_visitors`,
                `midwives`, `ambulance_staff`) |>
    dplyr::mutate(dplyr::across(total:ambulance_staff, round)) |>
  saveRDS(file = "workforce_staff_group.rds")

  read_xlsx(path = filename, sheet = "5. All Staff, NHSE & Org - FTE",
            range = "A5:FO766") |>
    janitor::clean_names() |>
    dplyr::filter(is.na(nhs_england_region_name)) |> # Remove region aggregates
    dplyr::mutate(organisation_name = if_else(!is.na(ics_name), "Total", organisation_name)) |>
    dplyr::filter(!is.na(organisation_name))|>
    tidyr::fill(ics_name) |>
    dplyr::select(-c(nhs_england_region_code, nhs_england_region_name, ics_code, organisation_code)) |>
    pivot_longer(-c(ics_name, organisation_name), names_to = "date", values_to = "count") |>
    mutate(date = as.Date(as.numeric(stringr::str_remove(date, "x")), origin = "1899-12-30"))|>
    dplyr::mutate(count = round(count)) |>
    saveRDS(file = "workforce_timeseries.rds")


Scaffolder Workflow Automation Engine

Just wanted to throw out a crazy idea! Thinking years down the road when you have hundreds of Software Templates with a wide range of hooks and triggers... it could start to get messy to manage as use cases become more complex.
I started playing around with a node based open-source workflow automation tool, built in TypeScript called n8n that has over 200 integrations that would be extremely useful to use once you drop that shinny boilerplate repo into your target storePath such as invoking a lambda function or even looking at it from an operational view where Site Reliability Engineers have the ability to drag in a PagerDuty node to automatically trigger an incident when a component goes offline.

Could be interesting. What kind of integration do you have in mind? Something like being able to trigger a n8n workflow from a scaffolder templating run?

Yep! one use case that we have right now is having the ability to trigger a lambda function once a repo is generated successfully to create a Jenkins job that maps to that generated repo and register that app in our central PostgreSQL CI/CD database, if a database was selected in the template, we would create that database in RDS, get that app setup in Datadog for monitoring and lastly, if it was a "Golden Path" template we would create a namespace/role binding in OpenShift!
This could be defined as a re-usable baseline workflow that could be built on for new software templates. Engineers from other teams can contribute to building there own event based "nodes" where you are now able to integrate with other endpoints on an event basis, which is pretty powerful in my option!

@regicsolutions Alright, linking this to #2771, as I think it will address this at a lower level. The intention is that it will add the building blocks needed for this to be implemented on top of


nodeIcon is not used / ignored

I saw that the usage of the provided nodeIcon is ignored (cf. node-icon-image in your code).
Why is it like that? I would love to use a custom icon for collapsing nodes.

@sidyes nodeIcon was used for different functionality (to display icons inside nodes), theoretically, you can use node icons already inside nodes, it's just you won't be able to attach  expand&collapse actions to them.
This is the relevant code piece which is responsible for expand & collapse note icon settings, for now, it's just +, - symbols.
https://github.com/bumbeishvili/d3-organization-chart/blob/master/index.js#L893
I am thinking about changing this functionality in v2  version

Ah good to know. Is it somehow possible to inject an Angular component as a template?
I need to implement some additional functionality within a node.

Is it somehow possible to inject an Angular component as a template

No, it's not possible

I need to implement some additional functionality within a node.

I think in that case you will need to make changes to the chart itself
Please follow how onNodeClick action is implemented, it may help you
https://github.com/bumbeishvili/d3-organization-chart/blob/master/index.js#L25

Thanks for your help, I solved it by adding a document event listener that listens to clicks on certain elements within a node.

Great to hear, I was not sure that would work and I did not suggest it


🐛 [BUG]: If two nodes point to each other the labels of the edges overlapping

Is there an existing issue for this?

[X] I have searched the existing issues and this is a new bug.

Current Behavior
When connecting node A with node B and node B with node A (needed for some flows) the edges crossing and the labels overlapping. Not able to get the labels "disconnected" by edge properties.

Expected Behavior
Overlapping labels on edges would rearrange to not overlap each other and always be readable.
Steps To Reproduce
Create two nodes A and B. Add two edges: first source A and target B; second source B and target A.
Relevant log output
No response
Anything else?
No response

Alas, this is not a bug but expected to happen since both labels use the same position.
You’ll have to either use different edges with non overlapping paths or offer labels if they overlap.
There’s not a built in solution for this sorry

Alas, this is not a bug but expected to happen since both labels use the same position. You’ll have to either use different edges with non overlapping paths or offer labels if they overlap. There’s not a built in solution for this sorry

Understood. Thanks.

Sorry I have to disappoint you about a built-in helper or sth and sorry that my response was a little short; I responded from my phone 😅.
To expand a bit on this - the default edge labels (meaning `edge.label) will always be rendered at the center position.
So if two edges follow the same path or a path that would make their centers cross, the labels will, by default, inadvertently overlap. There's really no way around it unless you modify your handles in a way that edges don't overlap/cross.
If you're using a custom edge, you can use the EdgeLabelRenderer to place a label as a div on an edge.
This EdgeLabelRenderer needs you to apply some styles for the label to be centered, like transform.
The transformation is given an X and Y position so that the label gets centered, these positions are (usually) taken from the utils like getBezierPath -> const [path, centerX, centerY] = getBezierPath(params).
But in this case you have the option of just offsetting these center positions by whatever you deem adequate so that the labels do not overlap anymore.
Again, there's no built-in mechanism that would catch this overlap and reposition edges but you can build this sort of logic yourself.

You can find an example of how to use the EdgeLabelRenderer here.
Just open up the file CustomEdge.vue and check the template :)

@bcakmakoglu Many thanks for explanation. That helps a lot. Will dive in there again and play with the positioning =)


fcos3d visualization result

Solved the fcos3d visualization problem by referring to pr, and the resulting image file is saved. However, there is no problem with the result of SMOKE, but the resulting image of fcos3d has a problem with one object having multiple bboxes. If you know whether it is a visualization problem or a problem with incorrect prediction in fcos3d, please comment.

@isco-a Hi, it's normal. You could set score threshold to filter out redundant boxes.


Add event emitters for C*UD failures

Currently the CRUDActionCreator (emitter?) only sends out successful notifications. Ideally we could tie into SQLAlchemy's custom event system to distinguish the reason it failed (insert, update, delete)

closed with b6ea905


Add rudimentary LDAP group support

Continuation of https://github.com/go-gitea/gitea/pull/7349, which was closed after the commits were moved to a different branch and the master branch was reset to the original master branch.
Targeting https://github.com/go-gitea/gitea/issues/2212.
Features:

Restrict automatic registration with a group filter
Allow admin access based on a group filter
Arbitrary kinds of LDAP groups are supported (custom filter with custom user attribute)

Sub-tasks

[x] Add configuration options for the admin backend
[x] Extend login code with new group options
[x] Tests for new options suitable for the test OpenLDAP server
[x] Test with another LDAP setup (not using dn as user attribute in group)
[x] Refactor LDAP code to remove duplication (esp. SearchEntry and SearchEntries)
[x] Add CLI options (see https://github.com/go-gitea/gitea/pull/6681)
[x] Test CLI options

Codecov Report

Merging #8814 into master will increase coverage by 0.14%.
The diff coverage is 62.38%.

@@            Coverage Diff             @@
##           master    #8814      +/-   ##
==========================================
+ Coverage   41.27%   41.41%   +0.14%
==========================================
  Files         542      542
  Lines       69715    69814      +99
==========================================
+ Hits        28774    28916     +142
+ Misses      37258    37212      -46
- Partials     3683     3686       +3

Impacted Files
Coverage Δ

modules/auth/auth_form.go
100% <ø> (ø)
:arrow_up:

routers/admin/auths.go
33.6% <100%> (+1.37%)
:arrow_up:

cmd/admin_auth_ldap.go
82.19% <100%> (+1.51%)
:arrow_up:

modules/auth/ldap/ldap.go
55% <53.93%> (+0.59%)
:arrow_up:

modules/sync/unique_queue.go
78.57% <0%> (-10.72%)
:arrow_down:

modules/indexer/indexer.go
44.73% <0%> (-10.53%)
:arrow_down:

modules/process/manager.go
78.37% <0%> (-4.06%)
:arrow_down:

modules/task/migrate.go
24.35% <0%> (-3.85%)
:arrow_down:

models/error.go
31.75% <0%> (-1.24%)
:arrow_down:

models/repo.go
48.99% <0%> (+0.41%)
:arrow_up:

... and 7 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 7971b05...3f631c0. Read the comment docs.

All subtasks done for now. Have I missed something?

I don't see point in these attributes:
"--member-group-filter", "(cn=user-group)",
"--admin-group-filter", "(cn=admin-group)",

member-group-filter - can be already set using user filter
admin-group-filter - can be already set using admin filter

I don't see point in these attributes:
"--member-group-filter", "(cn=user-group)",
"--admin-group-filter", "(cn=admin-group)",

member-group-filter - can be already set using user filter
admin-group-filter - can be already set using admin filter

No, it cannot. On some LDAP servers it's not possible to determine the user's group by a user query, the only way to know wether a user is in a group is by a group query.
In my case, I want to restrict access to members of a group.

Just a heads-up from me. I am happy to see this feature being worked on. Looking forward to see this in one of the next releases.

Another reason this is needed is not only missing or flaky (i.e. openldap) memberOf support but also to be able to find (only) users that are member of specific groups by pattern to integrate it into an existing LDAP structure (it is not possible to do a wildcard search on the DNs in memberOf and if we have to introduce attributes for access to specific ressources these shall be at group level and not at user level, this also cannot be done with only memberOf filter).

Agreed that's why I updated it. I'll prod the maintainers channel again about it.

Let me put blocking points here about this implementation in my perspective :

the current implementation is making 4 additional LDAP queries per user which might be costly  in large user list. Which could be ok if there were no other solution, but there are solutions allowing way less LDAP queries : do up to 3 LDAP queries for membership, admin, restricted groups, only once, then check uid membership in these groups locally with Go for each user.
relations between Group/NonGroup and Member/Admin/Restricted are not explicited nor tested, nor used to remove useless LDAP queries
Documentation is missing

I'll be happy to move forward by addressing these points. Not sure when though.

@vaab I made some improvements regarding the relations of the six different user/group filters.

The user filter and the group filter are now always ANDed
Notes on that behavior are added to CLI help and to the configuration backend.

What is the Status?

Codecov Report

Merging #8814 into master will increase coverage by 0.14%.
The diff coverage is 81.20%.

@@            Coverage Diff             @@
##           master    #8814      +/-   ##
==========================================
+ Coverage   43.79%   43.94%   +0.14%
==========================================
  Files         607      607
  Lines       86876    86968      +92
==========================================
+ Hits        38045    38215     +170
+ Misses      44133    44051      -82
- Partials     4698     4702       +4

Impacted Files
Coverage Δ

modules/auth/auth_form.go
100.00% <ø> (ø)

modules/auth/ldap/ldap.go
58.72% <77.06%> (+4.45%)
:arrow_up:

cmd/admin_auth_ldap.go
81.50% <100.00%> (+1.82%)
:arrow_up:

routers/admin/auths.go
32.55% <100.00%> (+1.37%)
:arrow_up:

services/pull/update.go
52.54% <0.00%> (-6.78%)
:arrow_down:

modules/process/manager.go
74.69% <0.00%> (-3.62%)
:arrow_down:

services/pull/temp_repo.go
31.62% <0.00%> (-2.57%)
:arrow_down:

modules/git/repo.go
51.88% <0.00%> (ø)

models/repo.go
52.59% <0.00%> (+0.44%)
:arrow_up:

models/issue.go
52.41% <0.00%> (+0.46%)
:arrow_up:

... and 9 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 28f8308...f3fe882. Read the comment docs.

What is the Status?

As our LDAP infrastructure changed (supporting the MemberOf attribute), this PR is no longer needed for us and I won't do any work on this for now. (I wonder what was missing because it did not get merged for some reason.)
So, if there's interest in working on that feature, you may submit a new PR or merge this one.

Closing in favour of other PR


sap.m.Input: maxLength not working with some languages/Input Methods

OpenUI5 version: latest
Browser/version (+device/version): Chrome, Firefox (latest)
Any other tested browsers/devices(OK/FAIL): IE 10 (latest) is OK
URL (minimal example if possible): http://jsbin.com/vucef/6/edit
User/password (if required and possible - do not post any confidential information here):
Steps to reproduce the problem:

Enter abc into input field
Try entering d into input field and note it properly restricts a fourth character
Switch to an alternate language and IME that contains composed characters. I used Japanese (Hiragana).
Click in input field at beginning position and press a character (e.g. 'a')

What is the expected result? Expected the 4th character input to be ignored/rejected since the string is already at maximum length.
What happens instead? In Chrome, the new Japanese character is inserted at the beginning of the string, and the 'c' is removed. In Firefox, the entire string is removed.
Any other information? (attach screenshot if possible)

Hi cmastandreas,
here's the reply, I received from the colleague who locks after input:
'the problem is in my eyes a browser bug. If you have a native HTML
input field with maxlength set you can only type in the set number of
latin characters.
http://www.w3schools.com/tags/tryit.asp?filename=tryhtml_input_maxlength
But if you now type in a chineese cahracter it is insetered at the
cursor position and the last character is moved 1 forward. So now
one character too much is inside the input. But if you leave the input
field the new character is deleted.
But the problem is that for entering the chineese character 2 oninput
events are fires. In the event handler we have a logic implemented to
delete the characters after the maxlength. (We need this for some
other issues.)
So the strange behaviour comes up.
I informed the browser competence center about this issue because in my
eyes the browser behaves not correct.
There is nothing we can do in the moment to solve this issue.'
I would like to close this issue, if it's ok with you. If you do not agree with this, please reopen it
Best Regards,
Martin


[ENH] add Edinburgh handedness inventory

Still work progress.
@mwmaclean might be inerested in adding a few more items.
TODO

[x] create an activity with the list of items from the original EHI and a short form version
[x] add extra items
[x] check all the translations in French

thanks @Remi-Gau
Here are the 5 extra items I would be interested in adding:
11. Holding a computer mouse
12. Using a key to unlock a door
13. Holding a hammer
14. Holding a brush or comb
15. Holding a cup while drinking

going from memory and checking what is in there...

the main activities should correspond the ones listed in the citation field
there are extra items (some of them should be more appropriate for blind participants)
I have not added the ones @mwmaclean mentioned

want me to move those extra items to a different folder?

there are extra items (some of them should be more appropriate for blind participants)

if these are from the citation they should be added to the same items folder. also multiple activity schemas, if from the same source, (e.g., a separate one for blind individuals) can be created if that is relevant to this assessment.
also the citation refers to the 4 item short form rather than the original edinburgh handedness inventory. so we may indeed want multiple schemas:

edi-orig
edi-sf
edi-blind (i don't know how this is delivered).

Note to self would be nice to finish this one along with refactoring of the doc on the main reproschema repo

@Remi-Gau helloooo, how's everything going with this PR? :))

@Remi-Gau my bad... i renamed the branch to main and deleted master. you can change the PR to main


Gamepad or controller input remaping

Description of the new feature / enhancement
just like the kayboard manager but for controller input
Scenario when this would be used?
I can make the joystick move the mouse cursor or use specific combionation or macro to launch apps
Supporting information
u can take an idea from xpadder

/dup #5263


Sync and edit transcripts from early math in-person workshop

In the Early Math folder (see @catherinecarter if link is needed), the transcripts for the videos need to be created and edited.
Things to look for:

correct words (e.g., "same" in transcript might actually be, "sim")
edits have smooth transitions
teachers/facilitator are not talking too long or are inaudible
make suggestions for shortening the length of videos

How to start

Open the video
Click on "Edit"
Choose "Video Settings" on right
Transcript
Generate
Refresh

Videos

[x] video 1
[x] video 2
[ ] video 3
[ ] video 4
[ ] video 5
[ ] video 6
[ ] video 7
[ ] video 8
[ ] video 9
[ ] video 10 (missing)
[x] video 11
[x] video 12
[x] video 13
[x] video 14

@catherinecarter asked us to put this on hold for now.

Thanks for both of your help on this! The transcripts are complete. Closing.


Every time Refreshing

Every time when I on my tv and open the Kodi App it always take time to collect the channels once again. It should be better if this process is done once forever. It's annoying to wait everytime.

@impurnendu  this is the expected behavior of PVR IPTV SImple client. You can tweak the settings to cache your channels and guide information. Please report PVR addon related issues here https://github.com/kodi-pvr/pvr.iptvsimple


(BOLT-745) Include boltlib in system loader

Makes the intention clearer.

CLA signed by all contributors.


Upgrade uglify

To fix #581.
I have included a commit with the results of my running npm run build. I know this will want removing before merging, but given what this PR does the built files seemed very relevant.

Will this be merged soon @bevacqua ?


is there a way to bind keyboard shortcuts for the TreeMenu

I'd like to be able to browse the menu with arrow up/down, left/right keys.  Up/down would go up & down in the menu items, left/right would close/open the current item if it has children.
Would it work to hook keyboard events and then synthesize click events based on what keys were pressed?

Nice feature request! I have this idea in mind but don’t have time to implement it yet. But it’s totally possible to wrap this component with your own logic. I would just use onKeyDown prop instead of synthesizing onClick though since you can define your own MenuItem component.
I don’t have access to my computer at the moment. I’ll look into in the coming month.

Cool! Yeah so what I had in mind was to capture the onKeyDown event in my MenuItem (which I already render with render props) and then call the onClick callback. What I meant with synthesizing the event was to stick something that looks like enough of an event for your onClick handling code to do the right thing with it. :)
This might be a great thingto have as a built-in feature tho. I use this not for menus but for browsing a pretty large tree with some extra information stored in each node. So far this is working well, but I’m sure the users of my app will be asking for keyboard support.

@nurpax I just merged a PR and made a pre-release 1.1.0-rc.2. Could you try it out and give feedback? Please note the behavior change: I separate the states 'focused' and 'active', and ENTER is equivalent to onClick. I'll release 1.1.0 later if you don't have further issues.

Thanks a lot for caring about my feature request. I ended up writing my own treeview component from scratch as I needed some other features too that I couldn’t find from this library. However, I’m happy to offer some feedback now that I read your code.

I modeled the left/right keys such that left works so that:

first left: if current node is leaf or closed, set parent node as active. if at an open node, close the node.

Not sure I described the logic completely but if you try how VSCode’s folder tree menu in the left pane works, you’ll get what I mean. IMO this feels really natural and it ”clicked” with my teammates expectations too.

scroll into view. If the item selected by keyboard is out of view (eg. long list and the div has a scrollbar), the selected item should be scrolled into view. I did this with the non-standard scrollIntoViewIfNeeded (standard is scrollIntoView but this doesn’t feel very good, at least in my code). So I had to plug refs into my rendered tree items and call the corresponding DOM method via the item refs.

not related to your PR but was one motivation for rolling my own component. Not sure if this is possible in your code. I needed the open status for the subtree starting from the selected item. So I added a tree pruning step that computes the currently opened nodes and sends this back via ”on item selected” callback. I needed this because I needed a copy&pasteable plain text version of the selected tree.

Thanks for the feedback! I like your suggestion and it's actually a very easy change (so I did it 😄). Regarding the 3rd point, every MenuItem knows almost everything about the tree, such as openNodes and even searchTerm. By some simple filter function, you can get the open nodes of the sub-tree.
The scroll to view is indeed tricky. Thanks for sharing!


Symbolic link on build_devtoolset.sh

Commit that aims at bettering the overall symbolic link connection for python versions. I also included some error handling and it prints "No suitable Python version found" in case it doesn't find the correct Python version.

I am unsure of what problem this is really solving.  This only executes in a docker container where these things are not changing. This seemingly complicates the script for little benefit.   Do you have an issue describing the problem this is causing?

Sorry, we're not looking for "generally better" changes for this script right now. If there's a very specific bug that you have encountered, please explicitly state and fix it.

This commit right here was made with the intent of bettering the structure and build of the code. Here's are some key differences between the original version and my proposed one:

The first code does not check for the existence of the Python interpreter or the symbolic link, while the second code does.
The first code does not execute any Python code or handle any errors, while the second code does.
The first code creates the directory unconditionally, while the second code creates it only if the Python interpreter is found.
The first code uses a hard-coded array of Python versions, while the second code uses a variable that can be changed easily.

As you can see, my main objective wasn't trying to fix a bug, rather to increase the robustness of the code.


Cross Spawn 7.0.3 has a high sev CVE

Describe what should be investigated or refactored
Cross Spawn has a high severity CVE associated with 7.0.3, it is used in KFC as a dependency of a dependency. We may need to act on this to override the dependency is there is not a dependabot update for semantic-release.
https://www.geeksforgeeks.org/how-to-override-nested-npm-dependency-versions/
> npm ls cross-spawn
<EMAIL_ADDRESS>/Users/cmwylie19/kubernetes-fluent-client
├─┬<EMAIL_ADDRESS>│ └─┬<EMAIL_ADDRESS>│   └─┬<EMAIL_ADDRESS>│     └─┬<EMAIL_ADDRESS>│       └─┬<EMAIL_ADDRESS>│         └─┬<EMAIL_ADDRESS>│           └──<EMAIL_ADDRESS>deduped
├─┬<EMAIL_ADDRESS>│ └─┬<EMAIL_ADDRESS>│   └──<EMAIL_ADDRESS>├─┬<EMAIL_ADDRESS>│ └─┬<EMAIL_ADDRESS>│   └─┬<EMAIL_ADDRESS>│     └─┬<EMAIL_ADDRESS>│       └──<EMAIL_ADDRESS>deduped
├─┬<EMAIL_ADDRESS>│ └─┬<EMAIL_ADDRESS>│   └──<EMAIL_ADDRESS>deduped
└─┬<EMAIL_ADDRESS>  ├─┬<EMAIL_ADDRESS>  │ ├─┬<EMAIL_ADDRESS>  │ │ └──<EMAIL_ADDRESS>deduped
  │ └─┬<EMAIL_ADDRESS>  │   └─┬<EMAIL_ADDRESS>  │     └─┬<EMAIL_ADDRESS>  │       └──<EMAIL_ADDRESS>  ├─┬<EMAIL_ADDRESS>  │ └─┬<EMAIL_ADDRESS>  │   └──<EMAIL_ADDRESS>deduped
  └─┬<EMAIL_ADDRESS>    └──<EMAIL_ADDRESS>deduped

Links to any relevant code
(optional) i.e. - https://github.com/defenseunicorns/pepr/blob/24f1f253b1db4c9d97717c0282b8f39c74d3ace1/README.md?plain=1#L3
Additional context
Add any other context or screenshots about the technical debt here.

fixed in https://github.com/defenseunicorns/pepr/pull/1496


Custom Paging

Hi and thanks for the great job on this grid. I have some issues that I would like some help with if possible?
Does the grid support custom paging?  I have looked under the tests but didn't find any example.
My paging is done using stored procedures and not IQueryable.
Is it possible to change the query string when paging from Grid-Page to Grid_Page or customise it's name? I can't use Grid-Page as incoming parameter in the controller method unless I write a custom attribute or pick up the name from the Request.
Is it possible to generate the paging with links instead of relying on javascript?
Thank you very much and looking forward to your reply.

You can add your own post processor to apply your own paging or override grid pager's process method.
Pager argument naming can only be changed by overriding apply paging and cancel filter methods, I'm thinking of changing them to something that can be consumed by action arguments in the next release.
Custom paging urls can be generated by using different grid pager partial. You would set it like this:
Html
    .Grid(Model)
    .Pageable(pager =>
    {
        pager.PartialViewName = "_MyPager";
    })


Fix generator description returning undefined

Fixes https://github.com/yeoman/yo/issues/586.

Purpose of this pull request?

[X] Bug fix

Is there anything you'd like reviewers to focus on?
Performance implications of retrieving unnecessary metadata for each request.

Thanks! I'll push a new version later today.


Unexpected place for "Document settings" menu

Hi again :)
User feedback: I've not been able to find by myself the "Document Settings" menu, which is now under the "User" icon:

I'd have expected a classic cogwheel directly visible on the document page.
My 2 cents :)

More evidence that "Document Settings" dialog is hard to find: https://github.com/gristlabs/grist-core/issues/271#issuecomment-1253433978

Should we add a needs_design tag ? Seem like this issue is very much a UX/I one

Actually, I think this task is done: there is now a ⚙ Settings page under Tools in the left-side panel, which opens document settings. This was added in January.


xmlsec seems abandonded

xmlsec is a dependency which seems to be abandoned. The last commit is from November of last year (2019). However the last release is from 2018. Recent releases of openssl have been causing deployment issues with xmlsec. In particular
  File "/Users/jon/rescale/gits/rescale-platform-web/venv/lib/python3.7/site-packages/onelogin/saml2/auth.py", line 14, in <module>
    import xmlsec
ImportError: dlopen(/Users/jon/rescale/gits/rescale-platform-web/venv/lib/python3.7/site-packages/xmlsec.cpython-37m-darwin.so, 2): Library not loaded: /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib
  Referenced from: /Users/jon/rescale/gits/rescale-platform-web/venv/lib/python3.7/site-packages/xmlsec.cpython-37m-darwin.so
  Reason: image not found

has become a point of pain for my team. The fix at the moment is to switch to the 1.0.2 branch of openssl, but this isn't tenable long term.
I'm not sure how feasible it is for python3-saml to move away from xmlsec, but I wanted to report this issue in hope that removing the dependency is at least a conversation topic.
Repo:

Related to #191

An alternative could be to use dm.xmlsec.binding that was used on python-saml which last version 2.0 was python3 compatible. But it last release also reference 2018.
Are you aware of an alternative?

Are you aware of an alternative?

I am not. :(

@pitbulk It seems that xmlsec has a new maintainer. This issue may be resolved.

A new version 1.3.7 of xmlsec was released today. One of the notable changes includes pushing prebuilt wheels for Windows on PyPI, so the issue with building Windows wheels locally should be resolved. Install as usual:
pip install xmlsec

Should you experience any issues with prebuilt wheels on Windows, please don't hesitate to open a new issue.

Thanks @hoefling. Nice that you can continue the work at xmlsec.


Add a "Run" filter in the filter combo in the html report

The filter combo contains "All results", "Succeded", "Failling", "Skipped", "Not run"
An entry "Run" would be usefull

fixed by #103


Fix Now Playing Page.

Currently the Now Playing Page is displaying this:

Fix it!

Created 03445ea5d695bdfe4c445fb51048bafde8959811 branch


Multiprocessing with start-method "fork" results in hang on shutdown

Can be reproduced with the multiprocessing demo.
Current workaround is to always force "spawn":
multiprocessing.set_start_method("spawn")

However, needing to do this will definitely bite Linux users since "fork" is the default.
See: https://docs.python.org/3/library/multiprocessing.html#contexts-and-start-methods

We have a user that is affected by this; they can't use spawn, so they can't update Rerun right now.


Add group tags to datadog conf

Make it easier to query groups of hosts (such as "group:riakcs") in datadog.
Tested locally with vagrant to make sure it works as expected. Not deployed yet. Will deploy once reviewed/merged.
@esoergel

nice

✅

Deployed on prod


EnliteMonolog is vulnerable to handlers order

There is no information regarding peculiarity of handlers order in the documentation.
Consider this example:
return [
    'EnliteMonolog' => array(
        'log'       => array(
            'name'     => 'log',
            'handlers' => array(
                'default' => array(
                    'name'      => 'Monolog\Handler\SyslogHandler',
                    'args'      => array(
                        'ident'    => SYSLOG_IDENT,
                        'facility' => LOG_LOCAL2,
                    ),
                    'formatter' => array(
                        'name' => 'Monolog\Formatter\LineFormatter',
                    ),
                ),
                'hipchat' => array(
                    'name' => 'Monolog\Handler\NullHandler',
                ),
            ),
        ),

First handler is using syslog, the latter is null (just a placeholder for other app environments).
\EnliteMonolog\Service\MonologServiceFactory::createLogger reverses the handlers array, so for Monolog, handlers look like:
array(
  0 => 'NullHandler',
  1 => 'SyslogHandler',
);

what, with conjuction with below code in \Monolog\Logger::addRecord
        foreach ($this->handlers as $key => $handler) {
            if ($handler->isHandling(array('level' => $level))) {
                $handlerKey = $key;
                break;
            }
        }

results with NullHandler being chosen and no log message being logged at all.
The ultimate solution would be not to pushHandler in MonologServiceFactory but to setHandlers.
If that change is not possible, please at least write about in the docs.

I think is already fixed @Sysaninster


Facebook rebuild not working event when using --no-ress --no-src

Information

Apktool Version (apktool -version) - 2.4.0
Operating System (Mac, Linux, Windows) - Linux
APK From? (Playstore, ROM, Other) - apkmirror.com

Stacktrace/Logcat
Decode:
I: Using Apktool 2.4.0 on com.facebook.katana_<IP_ADDRESS>.119-176141837.apk
I: Copying raw resources...
I: Copying raw classes.dex file...
I: Copying assets and libs...
I: Copying unknown files...
I: Copying original files...

Rebuild:
I: Using Apktool 2.4.0
I: Copying com.facebook.katana_<IP_ADDRESS>.119-176141837 classes.dex file...
I: Checking whether resources has changed...
I: Copying raw resources...
I: Copying libs... (/lib)
I: Copying libs... (/kotlin)
I: Building apk file...
I: Copying unknown files/dir...
I: Built apk...

Steps to Reproduce

apktool d --no-res --no-src --frame-path framework com.facebook.katana_<IP_ADDRESS>.119-176141837.apk
apktool b --frame-path framework com.facebook.katana_<IP_ADDRESS>.119-176141837 -o facebook-unsigned.apk
Try to install the app. I tried and it is not working.

Frameworks
If this APK is from an OEM ROM (Samsung, HTC, LG). Please attach framework files
(.apks that live in /system/framework or /system/priv-app)
APK
If this APK can be freely shared, please upload/attach a link to it.
Questions to ask before submission

Have you tried apktool d, apktool b without changing anything? Yes
If you are trying to install a modified apk, did you resign it? No changes made, just decode and rebuild with --no-res and --no-src .
Are you using the latest apktool version? Yes

It seems it happens on applications that are using AndResGuard. The weird thing is that it happens even when using --no-res --no-src options.

Those stacktraces have no errors. If something is happening on the device, you'll need a logcat (adb logcat) of the crash to investigate further.

The problem is that it have not errors on stacktraces! Try to install the app. I tried and it is not working.

@iBotPeaches Same here, this is the error when launching the apk
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.app/com.example.home.splash.SplashActivity}: android.content.res.Resources$NotFoundException: Drawable com.gojek.app:drawable/2131231058 with resource ID #0x7f080152

I'm using --no-res but it still shows
I: Copying raw resources...

when I decode the apk.

@mhashim6 - This thread is 3 years old and is about Facebook. I don't see how your response is all related to this. I'm going to lock this to prevent further replies and notifications to others about an unrelated problem.


reach out us section

Description

the row of social links are divided in 3 columns which is not looking good
Expected Behavior

it should be divided in 4 columns to cover the whole page
Screenshots

Enviroment:

OS: Mac Linux Windows
Browser: Chrome Safari Firefox
Version:
Device: Desktop Mobile

Hey @leesha19 , thanks for stepping up!
Yea it would be nice if it was divided into 4 columns, but what should we add so that it covers the space. I think these many social media's are enough. If there is anything else u would like to work on, pls go ahead!

Hey @leesha19 , thanks for stepping up! Yea it would be nice if it was divided into 4 columns, but what should we add so that it covers the space. I think these many social media's are enough. If there is anything else u would like to work on, pls go ahead!

OKAY !! SO WHAT WE CAN DO HERE IS : we can add space between them or center them so it would look good and hence it will cover up the space


[Bug]: Report contains wrong value for a region field when running for the Chinese AWS accounts

What happened?
Hi all, just noticed in the report for Chinese AWS accounts that a value for the region field is set to us-east-1 for some checks, I think it’s made by mistake in the code (e.g. here https://github.com/prowler-cloud/prowler/blob/master/prowler/providers/aws/service[…]ilter_and_alarm_for_cloudtrail_configuration_changes_enabled.py). us-east-1 is set as the default value and it’s not changed to the cn-north-1 for some reason later
How to reproduce it
Steps to reproduce the behavior:

What command are you running?

for accountId in $ACCOUNTS_IN_ORG; do
    echo $accountId
    test "$(jobs | wc -l)" -ge $PARALLEL_ACCOUNTS && wait || true
    {
        ./prowler.py aws --role arn:aws-cn:iam::$accountId:role/$ROLE_TO_ASSUME \
        --organizations-role arn:aws-cn:iam::$MGMT_ACCOUNT_ID:role/$ROLE_TO_ASSUME \
	-M html csv -F prowler-output-2023-01-11
    } &
done

Cloud provider you are launching - aws
Environment you have like single account, multi-account, organizations, multi or single subsctiption, etc. - multi-account within the organization
See error

Expected behavior
Region for the finding is set to Chinese one (actual one).
Screenshots or Logs
I have filtered logs to show you which of the checks have this issue. Please see below (only CHECK_ID, STATUS, SEVERITY and REGION fields are shown):
🌱 > cat prowler-output-2023-01-11.csv | grep ';us-east-1;' | awk -F ';' '{ if (!seen[$4]++) print $4", "$7", "$11", "$35}'

cloudwatch_changes_to_network_acls_alarm_configured, FAIL, medium, us-east-1
cloudwatch_changes_to_network_gateways_alarm_configured, FAIL, medium, us-east-1
cloudwatch_changes_to_network_route_tables_alarm_configured, FAIL, medium, us-east-1
cloudwatch_changes_to_vpcs_alarm_configured, FAIL, medium, us-east-1
cloudwatch_log_metric_filter_and_alarm_for_aws_config_configuration_changes_enabled, FAIL, medium, us-east-1
cloudwatch_log_metric_filter_and_alarm_for_cloudtrail_configuration_changes_enabled, FAIL, medium, us-east-1
cloudwatch_log_metric_filter_authentication_failures, FAIL, medium, us-east-1
cloudwatch_log_metric_filter_aws_organizations_changes, FAIL, medium, us-east-1
cloudwatch_log_metric_filter_disable_or_scheduled_deletion_of_kms_cmk, FAIL, medium, us-east-1
cloudwatch_log_metric_filter_for_s3_bucket_policy_changes, FAIL, medium, us-east-1
cloudwatch_log_metric_filter_policy_changes, FAIL, medium, us-east-1
cloudwatch_log_metric_filter_root_usage, FAIL, medium, us-east-1
cloudwatch_log_metric_filter_security_group_changes, FAIL, medium, us-east-1
cloudwatch_log_metric_filter_sign_in_without_mfa, FAIL, medium, us-east-1
cloudwatch_log_metric_filter_unauthorized_api_calls, FAIL, medium, us-east-1

From where are you running Prowler?
Please, complete the following information:

Resource: (e.g. EC2 instance, Fargate task, Docker container manually, EKS, Cloud9, CodeBuild, workstation, etc.) - workstation
OS: [e.g. Amazon Linux 2, Mac, Alpine, Windows, etc. ] - MacOS
Prowler Version [./prowler --version]: Prowler 3.0.1
Python version [python --version]: Python 3.9.12
Pip version [pip --version]: pip 22.3.1 from /usr/local/lib/python3.9/site-packages/pip (python 3.9)
Installation method (Are you running it from pip package or cloning the github repo?): running from the master branch in the cloned repo
Others:

Additional context
Add any other context about the problem here.

Hi @daftkid we are going to review it and let you know.
Thank you for all the details of the issue, this helps us a lot to trace it and solve it.

@daftkid you have above the PR solving this issue, pls try it out and let us know if that works for you.


Refactor Apache Airflow github functions to the utility module

Moved to make testing easier
Developer's Certificate of Origin 1.1
   By making a contribution to this project, I certify that:

   (a) The contribution was created in whole or in part by me and I
       have the right to submit it under the Apache License 2.0; or

   (b) The contribution is based upon previous work that, to the best
       of my knowledge, is covered under an appropriate open source
       license and I have the right under that license to submit that
       work with modifications, whether created in whole or in part
       by me, under the same open source license (unless I am
       permitted to submit under a different license), as indicated
       in the file; or

   (c) The contribution was provided directly to me by some other
       person who certified (a), (b) or (c) and I have not modified
       it.

   (d) I understand and agree that this project and the contribution
       are public and that a record of the contribution (including all
       personal information I submit with it, including my sign-off) is
       maintained indefinitely and may be redistributed consistent with
       this project or the open source license(s) involved.

Changes touch #1312

not ready yet, found a bug

Just re-request review please

@lresende, lets get #1296 in before this one since they both touch the airflow schema. Ill apply the fix you mentioned there in that PR

Will review tomorrow

Test fails when the user enters an invalid git server URL, e.g. http://nobody.is.home:9837. Note that the actual issue ConnectionRefusedError: [Errno 61] Connection refused is masked by to another exception (JSON error). Also note that the failure has a cascading effect, which we can avoid by guarding each call of the git api.
Log Output

[E 2021-02-24 09:22:45.950 ServerApp] Uncaught exception POST /elyra/pipeline/schedule?1614187363755 (::1)
    HTTPServerRequest(protocol='http', host='localhost:8888', method='POST', uri='/elyra/pipeline/schedule?1614187363755', version='HTTP/1.1', remote_ip='::1')
    Traceback (most recent call last):
      File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/urllib3/connection.py", line 170, in _new_conn
        (self._dns_host, self.port), self.timeout, **extra_kw
      File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/urllib3/util/connection.py", line 96, in create_connection
        raise err
      File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/urllib3/util/connection.py", line 86, in create_connection
        sock.connect(sa)
    ConnectionRefusedError: [Errno 61] Connection refused
During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/urllib3/connectionpool.py", line 706, in urlopen
    chunked=chunked,
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/urllib3/connectionpool.py", line 394, in _make_request
    conn.request(method, url, **httplib_request_kw)
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/urllib3/connection.py", line 234, in request
    super(HTTPConnection, self).request(method, url, body=body, headers=headers)
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/http/client.py", line 1277, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/http/client.py", line 1323, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/http/client.py", line 1272, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/http/client.py", line 1032, in _send_output
    self.send(msg)
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/http/client.py", line 972, in send
    self.connect()
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/urllib3/connection.py", line 200, in connect
    conn = self._new_conn()
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/urllib3/connection.py", line 182, in _new_conn
    self, "Failed to establish a new connection: %s" % e
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x7fd7a9af7510>: Failed to establish a new connection: [Errno 61] Connection refused

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/requests/adapters.py", line 449, in send
    timeout=timeout
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/urllib3/connectionpool.py", line 756, in urlopen
    method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/urllib3/util/retry.py", line 573, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='teacloth1.fyre.ibm.com', port=31737): Max retries exceeded with url: /repos/akchinstc/test-repo (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fd7a9af7510>: Failed to establish a new connection: [Errno 61] Connection refused'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/tornado/web.py", line 1704, in _execute
    result = await result
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/elyra/pipeline/handlers.py", line 89, in post
    response = await PipelineProcessorManager.instance().process(pipeline)
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/elyra/pipeline/processor.py", line 75, in process
    res = await asyncio.get_event_loop().run_in_executor(None, processor.process, pipeline)
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/elyra/pipeline/processor_airflow.py", line 79, in process
    branch=github_branch)
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/elyra/util/git.py", line 50, in __init__
    self.repo = self.client.get_repo(repo)
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/github/MainClass.py", line 346, in get_repo
    "GET", f"{url_base}{full_name_or_id}"
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/github/Requester.py", line 317, in requestJsonAndCheck
    verb, url, parameters, headers, input, self.__customConnection(url)
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/github/Requester.py", line 408, in requestJson
    return self.__requestEncode(cnx, verb, url, parameters, headers, input, encode)
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/github/Requester.py", line 485, in __requestEncode
    cnx, verb, url, requestHeaders, encoded_input
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/github/Requester.py", line 511, in __requestRaw
    response = cnx.getresponse()
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/github/Requester.py", line 154, in getresponse
    allow_redirects=False,
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/requests/sessions.py", line 555, in get
    return self.request('GET', url, **kwargs)
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/requests/sessions.py", line 542, in request
    resp = self.send(prep, **send_kwargs)
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/requests/sessions.py", line 655, in send
    r = adapter.send(request, **kwargs)
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/requests/adapters.py", line 516, in send
    raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='teacloth1.fyre.ibm.com', port=31737): Max retries exceeded with url: /repos/akchinstc/test-repo (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fd7a9af7510>: Failed to establish a new connection: [Errno 61] Connection refused'))

[E 2021-02-24 09:22:45.971 ServerApp] Uncaught exception in write_error
Traceback (most recent call last):
File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/urllib3/connection.py", line 170, in _new_conn
(self._dns_host, self.port), self.timeout, **extra_kw
File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/urllib3/util/connection.py", line 96, in create_connection
raise err
File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/urllib3/util/connection.py", line 86, in create_connection
sock.connect(sa)
ConnectionRefusedError: [Errno 61] Connection refused
During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/urllib3/connectionpool.py", line 706, in urlopen
    chunked=chunked,
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/urllib3/connectionpool.py", line 394, in _make_request
    conn.request(method, url, **httplib_request_kw)
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/urllib3/connection.py", line 234, in request
    super(HTTPConnection, self).request(method, url, body=body, headers=headers)
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/http/client.py", line 1277, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/http/client.py", line 1323, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/http/client.py", line 1272, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/http/client.py", line 1032, in _send_output
    self.send(msg)
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/http/client.py", line 972, in send
    self.connect()
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/urllib3/connection.py", line 200, in connect
    conn = self._new_conn()
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/urllib3/connection.py", line 182, in _new_conn
    self, "Failed to establish a new connection: %s" % e
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x7fd7a9af7510>: Failed to establish a new connection: [Errno 61] Connection refused

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/requests/adapters.py", line 449, in send
    timeout=timeout
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/urllib3/connectionpool.py", line 756, in urlopen
    method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/urllib3/util/retry.py", line 573, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='teacloth1.fyre.ibm.com', port=31737): Max retries exceeded with url: /repos/akchinstc/test-repo (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fd7a9af7510>: Failed to establish a new connection: [Errno 61] Connection refused'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/tornado/web.py", line 1704, in _execute
    result = await result
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/elyra/pipeline/handlers.py", line 89, in post
    response = await PipelineProcessorManager.instance().process(pipeline)
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/elyra/pipeline/processor.py", line 75, in process
    res = await asyncio.get_event_loop().run_in_executor(None, processor.process, pipeline)
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/elyra/pipeline/processor_airflow.py", line 79, in process
    branch=github_branch)
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/elyra/util/git.py", line 50, in __init__
    self.repo = self.client.get_repo(repo)
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/github/MainClass.py", line 346, in get_repo
    "GET", f"{url_base}{full_name_or_id}"
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/github/Requester.py", line 317, in requestJsonAndCheck
    verb, url, parameters, headers, input, self.__customConnection(url)
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/github/Requester.py", line 408, in requestJson
    return self.__requestEncode(cnx, verb, url, parameters, headers, input, encode)
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/github/Requester.py", line 485, in __requestEncode
    cnx, verb, url, requestHeaders, encoded_input
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/github/Requester.py", line 511, in __requestRaw
    response = cnx.getresponse()
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/github/Requester.py", line 154, in getresponse
    allow_redirects=False,
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/requests/sessions.py", line 555, in get
    return self.request('GET', url, **kwargs)
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/requests/sessions.py", line 542, in request
    resp = self.send(prep, **send_kwargs)
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/requests/sessions.py", line 655, in send
    r = adapter.send(request, **kwargs)
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/requests/adapters.py", line 516, in send
    raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='teacloth1.fyre.ibm.com', port=31737): Max retries exceeded with url: /repos/akchinstc/test-repo (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fd7a9af7510>: Failed to establish a new connection: [Errno 61] Connection refused'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/tornado/web.py", line 1217, in send_error
    self.write_error(status_code, **kwargs)
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/elyra/util/http.py", line 76, in write_error
    self.finish(json.dumps(reply))
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/json/__init__.py", line 231, in dumps
    return _default_encoder.encode(obj)
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/json/encoder.py", line 199, in encode
    chunks = self.iterencode(o, _one_shot=True)
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/json/encoder.py", line 257, in iterencode
    return _iterencode(o, 0)
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/json/encoder.py", line 179, in default
    raise TypeError(f'Object of type {o.__class__.__name__} '
TypeError: Object of type MaxRetryError is not JSON serializable

[E 2021-02-24 09:22:45.975 ServerApp] {
"Host": "localhost:8888",
"Connection": "keep-alive",
"Content-Length": "1527",
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.192 Safari/537.36",
"X-Xsrftoken": "2|2a09a523|19e13bf32d823c14594123d3efc6f84a|1614010443",
"Authorization": "token 8abce3aa9521887afa39ca57f130edaedf0140cb1f4a8063",
"Content-Type": "text/plain;charset=UTF-8",
"Accept": "/",
"Origin": "http://localhost:8888",
"Sec-Fetch-Site": "same-origin",
"Sec-Fetch-Mode": "cors",
"Sec-Fetch-Dest": "empty",
"Referer": "http://localhost:8888/lab/tree/review_ptitzler.pipeline",
"Accept-Encoding": "gzip, deflate, br",
"Accept-Language": "en-US,en;q=0.9,de;q=0.8",
"Cookie": "_xsrf=2|2a09a523|19e13bf32d823c14594123d3efc6f84a|1614010443; username-localhost-8888="2|1:0|10:1614187363|23:username-localhost-8888|44:ZmUwODc0YjUyNDdiNDYwMjg1ZWI5ZDkzMmNmNjE3MjA=|51124210dda76659f8432f626cf0fa94977018c3a864bd15ed3fac6194057135""
}
[E 2021-02-24 09:22:45.975 ServerApp] 500 POST /elyra/pipeline/schedule?1614187363755 (::1) 2218.13ms referer=http://localhost:8888/lab/tree/review_ptitzler.pipeline
[E 2021-02-24 09:22:49.370 ServerApp] Uncaught exception GET /api/metrics/v1?1614187369357 (::1)
HTTPServerRequest(protocol='http', host='localhost:8888', method='GET', uri='/api/metrics/v1?1614187369357', version='HTTP/1.1', remote_ip='::1')
Traceback (most recent call last):
File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/psutil/_common.py", line 447, in wrapper
ret = self._cache[fun]
AttributeError: 'Process' object has no attribute '_cache'
During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/psutil/_common.py", line 447, in wrapper
    ret = self._cache[fun]
AttributeError: _cache

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/psutil/_psosx.py", line 365, in catch_zombie
    yield
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/psutil/_psosx.py", line 406, in _get_pidtaskinfo
    ret = cext.proc_pidtaskinfo_oneshot(self.pid)
ProcessLookupError: [Errno 3] No such process (originated from proc_pidinfo())

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/tornado/web.py", line 1704, in _execute
    result = await result
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/jupyter_resource_usage/api.py", line 31, in get
    rss = sum([p.memory_info().rss for p in all_processes])
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/jupyter_resource_usage/api.py", line 31, in <listcomp>
    rss = sum([p.memory_info().rss for p in all_processes])
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/psutil/_common.py", line 450, in wrapper
    return fun(self)
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/psutil/__init__.py", line 1054, in memory_info
    return self._proc.memory_info()
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/psutil/_psosx.py", line 344, in wrapper
    return fun(self, *args, **kwargs)
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/psutil/_psosx.py", line 475, in memory_info
    rawtuple = self._get_pidtaskinfo()
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/psutil/_psosx.py", line 344, in wrapper
    return fun(self, *args, **kwargs)
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/psutil/_common.py", line 450, in wrapper
    return fun(self)
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/psutil/_psosx.py", line 406, in _get_pidtaskinfo
    ret = cext.proc_pidtaskinfo_oneshot(self.pid)
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/contextlib.py", line 130, in __exit__
    self.gen.throw(type, value, traceback)
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/psutil/_psosx.py", line 376, in catch_zombie
    raise ZombieProcess(proc.pid, proc._name, proc._ppid)
psutil.ZombieProcess: psutil.ZombieProcess process still exists but it's a zombie (pid=7056)

[E 2021-02-24 09:22:49.372 ServerApp] {
"Host": "localhost:8888",
"Connection": "keep-alive",
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.192 Safari/537.36",
"X-Xsrftoken": "2|2a09a523|19e13bf32d823c14594123d3efc6f84a|1614010443",
"Authorization": "token 8abce3aa9521887afa39ca57f130edaedf0140cb1f4a8063",
"Content-Type": "application/json",
"Accept": "/",
"Sec-Fetch-Site": "same-origin",
"Sec-Fetch-Mode": "cors",
"Sec-Fetch-Dest": "empty",
"Referer": "http://localhost:8888/lab/tree/review_ptitzler.pipeline",
"Accept-Encoding": "gzip, deflate, br",
"Accept-Language": "en-US,en;q=0.9,de;q=0.8",
"Cookie": "_xsrf=2|2a09a523|19e13bf32d823c14594123d3efc6f84a|1614010443; username-localhost-8888="2|1:0|10:1614187369|23:username-localhost-8888|44:N2RjYmRlMmQ3ODM5NGIyMjllNGJkY2I3ZjJhMzM3MmU=|4c6c8e448c3a7fbc2134362ccc7a5a7b136a702c6ec22d619d7de12659b64377""
}
[E 2021-02-24 09:22:49.372 ServerApp] 500 GET /api/metrics/v1?1614187369357 (::1) 11.84ms referer=http://localhost:8888/lab/tree/review_ptitzler.pipeline
[E 2021-02-24 09:24:37.569 ServerApp] Uncaught exception GET /api/metrics/v1?1614187477558 (::1)
HTTPServerRequest(protocol='http', host='localhost:8888', method='GET', uri='/api/metrics/v1?1614187477558', version='HTTP/1.1', remote_ip='::1')
Traceback (most recent call last):
File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/psutil/_common.py", line 447, in wrapper
ret = self._cache[fun]
AttributeError: 'Process' object has no attribute '_cache'
During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/psutil/_common.py", line 447, in wrapper
    ret = self._cache[fun]
AttributeError: _cache

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/psutil/_psosx.py", line 365, in catch_zombie
    yield
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/psutil/_psosx.py", line 406, in _get_pidtaskinfo
    ret = cext.proc_pidtaskinfo_oneshot(self.pid)
ProcessLookupError: [Errno 3] No such process (originated from proc_pidinfo())

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/tornado/web.py", line 1704, in _execute
    result = await result
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/jupyter_resource_usage/api.py", line 31, in get
    rss = sum([p.memory_info().rss for p in all_processes])
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/jupyter_resource_usage/api.py", line 31, in <listcomp>
    rss = sum([p.memory_info().rss for p in all_processes])
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/psutil/_common.py", line 450, in wrapper
    return fun(self)
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/psutil/__init__.py", line 1054, in memory_info
    return self._proc.memory_info()
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/psutil/_psosx.py", line 344, in wrapper
    return fun(self, *args, **kwargs)
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/psutil/_psosx.py", line 475, in memory_info
    rawtuple = self._get_pidtaskinfo()
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/psutil/_psosx.py", line 344, in wrapper
    return fun(self, *args, **kwargs)
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/psutil/_common.py", line 450, in wrapper
    return fun(self)
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/psutil/_psosx.py", line 406, in _get_pidtaskinfo
    ret = cext.proc_pidtaskinfo_oneshot(self.pid)
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/contextlib.py", line 130, in __exit__
    self.gen.throw(type, value, traceback)
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/psutil/_psosx.py", line 376, in catch_zombie
    raise ZombieProcess(proc.pid, proc._name, proc._ppid)
psutil.ZombieProcess: psutil.ZombieProcess process still exists but it's a zombie (pid=7056)

[E 2021-02-24 09:24:37.571 ServerApp] {
"Host": "localhost:8888",
"Connection": "keep-alive",
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.192 Safari/537.36",
"X-Xsrftoken": "2|2a09a523|19e13bf32d823c14594123d3efc6f84a|1614010443",
"Authorization": "token 8abce3aa9521887afa39ca57f130edaedf0140cb1f4a8063",
"Content-Type": "application/json",
"Accept": "/",
"Sec-Fetch-Site": "same-origin",
"Sec-Fetch-Mode": "cors",
"Sec-Fetch-Dest": "empty",
"Referer": "http://localhost:8888/lab/tree/review_ptitzler.pipeline",
"Accept-Encoding": "gzip, deflate, br",
"Accept-Language": "en-US,en;q=0.9,de;q=0.8",
"Cookie": "_xsrf=2|2a09a523|19e13bf32d823c14594123d3efc6f84a|1614010443; username-localhost-8888="2|1:0|10:1614187477|23:username-localhost-8888|44:ZDQ1Yjk0ZjJmYThjNGYyZGE4MzM3ZjBmNGI2MWQyZWM=|bd8d0ca5972ceb1d42463cb0719aaa108139685e839d17af401e30d6c3e6e56a""
}
[E 2021-02-24 09:24:37.571 ServerApp] 500 GET /api/metrics/v1?1614187477558 (::1) 10.56ms referer=http://localhost:8888/lab/tree/review_ptitzler.pipeline
[E 2021-02-24 09:24:42.584 ServerApp] Uncaught exception GET /api/metrics/v1?1614187482572 (::1)
HTTPServerRequest(protocol='http', host='localhost:8888', method='GET', uri='/api/metrics/v1?1614187482572', version='HTTP/1.1', remote_ip='::1')
Traceback (most recent call last):
File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/psutil/_common.py", line 447, in wrapper
ret = self._cache[fun]
AttributeError: 'Process' object has no attribute '_cache'
During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/psutil/_common.py", line 447, in wrapper
    ret = self._cache[fun]
AttributeError: _cache

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/psutil/_psosx.py", line 365, in catch_zombie
    yield
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/psutil/_psosx.py", line 406, in _get_pidtaskinfo
    ret = cext.proc_pidtaskinfo_oneshot(self.pid)
ProcessLookupError: [Errno 3] No such process (originated from proc_pidinfo())

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/tornado/web.py", line 1704, in _execute
    result = await result
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/jupyter_resource_usage/api.py", line 31, in get
    rss = sum([p.memory_info().rss for p in all_processes])
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/jupyter_resource_usage/api.py", line 31, in <listcomp>
    rss = sum([p.memory_info().rss for p in all_processes])
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/psutil/_common.py", line 450, in wrapper
    return fun(self)
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/psutil/__init__.py", line 1054, in memory_info
    return self._proc.memory_info()
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/psutil/_psosx.py", line 344, in wrapper
    return fun(self, *args, **kwargs)
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/psutil/_psosx.py", line 475, in memory_info
    rawtuple = self._get_pidtaskinfo()
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/psutil/_psosx.py", line 344, in wrapper
    return fun(self, *args, **kwargs)
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/psutil/_common.py", line 450, in wrapper
    return fun(self)
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/psutil/_psosx.py", line 406, in _get_pidtaskinfo
    ret = cext.proc_pidtaskinfo_oneshot(self.pid)
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/contextlib.py", line 130, in __exit__
    self.gen.throw(type, value, traceback)
  File "/opt/anaconda3/envs/elyra_test/lib/python3.7/site-packages/psutil/_psosx.py", line 376, in catch_zombie
    raise ZombieProcess(proc.pid, proc._name, proc._ppid)
psutil.ZombieProcess: psutil.ZombieProcess process still exists but it's a zombie (pid=7056)

[E 2021-02-24 09:24:42.586 ServerApp] {
"Host": "localhost:8888",
"Connection": "keep-alive",
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.192 Safari/537.36",
"X-Xsrftoken": "2|2a09a523|19e13bf32d823c14594123d3efc6f84a|1614010443",
"Authorization": "token 8abce3aa9521887afa39ca57f130edaedf0140cb1f4a8063",
"Content-Type": "application/json",
"Accept": "/",
"Sec-Fetch-Site": "same-origin",
"Sec-Fetch-Mode": "cors",
"Sec-Fetch-Dest": "empty",
"Referer": "http://localhost:8888/lab/tree/review_ptitzler.pipeline",
"Accept-Encoding": "gzip, deflate, br",
"Accept-Language": "en-US,en;q=0.9,de;q=0.8",
"Cookie": "_xsrf=2|2a09a523|19e13bf32d823c14594123d3efc6f84a|1614010443; username-localhost-8888="2|1:0|10:1614187477|23:username-localhost-8888|44:YzVjNjEyNTE2ZTA4NDc4ZGFlMWFlNTUyZTljMTU4MDQ=|1bf67ac1f747f6ff6ac0014d42e1edf04da7baa9af3c737900631dad972396fe""
}
[E 2021-02-24 09:24:42.586 ServerApp] 500 GET /api/metrics/v1?1614187482572 (::1) 11.00ms referer=http://localhost:8888/lab/tree/review_ptitzler.pipeline

Test fails when the user enters invalid COS information. (similar issue to the one mentioned above in terms of what's in the console log etc)
Error making request
Unexpected end of JSON input
Check the JupyterLab log for more details:

Similar issue : https://github.com/elyra-ai/elyra/issues/1322

Finished testing. Aside from the issues reported earlier about error scenarios things appear to work as expected when the runtime configuration is valid.

The PR requires an update to https://elyra.readthedocs.io/en/latest/user_guide/runtime-conf.html because it introduces a new metadata property github_api_endpoint, which isn't documented yet.