[$500] Email addresses and Timezones are exposed to anonymous users when they open the user's profile avatar

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Email addresses and Timezones are exposed to anonymous users when they open the user's profile avatarVersion Number:
Reproducible in staging?: v1.4.39-0
Reproducible in production?: Yes
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: @fedirjh
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1707432052448279
Action Performed:
1.Log out and navigate to a public room. eg https://staging.new.expensify.com/r/8292963527436014 or https://staging.new.expensify.com/r/2376199970894587
2.Click on the user avatar to open the profile view for the user.
3.Click on the avatar to open the attachment modal for the avatar.
4.Close the avatar and verify that the email address and timezone is exposed.
Expected Result:
Email addresses and Timezones should be hidden to anonymous
Actual Result:
Email addresses and Timezones are exposed to anonymous users
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence
https://github.com/Expensify/App/assets/38435837/7ff5f47b-b434-47b6-91d7-6639e5480c5d
https://github.com/Expensify/App/assets/38435837/5639b2f5-e6b5-499b-b19d-09b179cebec0
https://github.com/Expensify/App/assets/38435837/1484af0d-0a72-4147-8472-9941c0cb2a94

View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01e6bac91f22797a08
Upwork Job ID:<PHONE_NUMBER>735597056
Last Price Increase: 2024-02-09

Proposal
Please re-state the problem that we are trying to solve in this issue.
Email addresses and Timezones are exposed to anonymous users when they open the user's profile avatar
What is the root cause of that problem?
We miss the check as in here
https://github.com/Expensify/App/blob/b9aada861c4e740a422a44c4c13c245382b1f082/src/pages/ProfilePage.js#L191-L192
What changes do you think we should make in order to solve the problem?

We miss the check as in here
https://github.com/Expensify/App/blob/b9aada861c4e740a422a44c4c13c245382b1f082/src/pages/ProfilePage.js#L228-L229
What alternative solutions did you explore? (Optional)

https://dev.new.expensify.com:8082/api?command=OpenPublicProfilePage
Backend API issue, but right now, it's fixed on dev ENV.
And it couldn't reproduce.

Proposal
Please re-state the problem that we are trying to solve in this issue.
Email addresses and Timezones are exposed to anonymous users when they open the user's profile avatar
What is the root cause of that problem?
need to add isAnonymousUser condition
What changes do you think we should make in order to solve the problem?
Add Condition for below lines {Session.isAnonymousUser() ? (
[App/src/pages/ProfilePage.js](https://github.com/Expensify/App/blob/287613ea925964f66753892daaa3a779d61d0e2d/src/pages/ProfilePage.js#L191C1-L217C92)
What alternative solutions did you explore? (Optional)

I can reproduce - this seems like something we should address soon, @eVoloshchak can you review the proposals above?

I do agree with @missbond2017's conclusion on this one, this should be handled on the back end.
If this is a security concern, then simply hiding (not displaying) this data on the front end doesn't resolve it. This data is still passed from back end to front end, you could monitor network requests and still access it, even if it isn't displayed.
I think the correct way is to make changes to the back end, it should filter the response based on the current user (so if it's an anonymous user, BE doesn't return user details such as email, timezone, etc)
@adelekennedy, could you make this internal please?

@m-natarajan I'm unable to reproduce this - I can see yuwen's information when I go to the announce room (which is expected) but can't see any any anonymous users info any more. Are you able to reproduce?

Okay! So this expected behavior for any Expensify employee but not other anonymous users - I can't reproduce it with anonymous users anymore so added retest weekly as this might have been resolved, @m-natarajan if you can still reproduce let us know!

Coming from here, I've added this to #vip-vsb. @fedirjh mentioned they were able to reproduce .  I think the issue might have to do with caching or cookies.  i logged out from a test account this morn and when I logged back in to view a public room https://new.expensify.com/r/6776919265133947 , I had existing chats in LHN when I shouldn't have (not intending to conflate bugs, it might be related though).
Tag me if you need me to try to retest @adelekennedy (who I think is off today)

@fedirjh mentioned they were able to reproduce

@fedirjh can you confirm the email address of the account you clicked as an anon to reproduce this? From the OP of the issue that shows Yuwen's account being clicked, that's expected because he's an expensify.com user, and our details are available publicly to everyone -- same goes for team.expensify.com users.
As for the example with someone on the applause.expensifail.com domain though, that user should not have been. But neither @puneetlath nor I could reproduce that where it was raised in Slack.

@trjExpensify I retested, and it seems that the bug was addressed for non expensify.com users. I still observe Yuwen's account as anonymous, but this seems to be the expected behavior.

Yes, that's expected that as an anon you can see expensify.com and team.expensify.com details in profile. 👍

It sounds like we can close this then, yeah?


[Event Request] Codeunit 64 - OnCreateInvLinesOnBeforeSalesShptLineFindset

Please add a new integration event OnCreateInvLinesOnBeforeSalesShptLineFindset in Codeunit 64.
[Integration]
 LOCAL PROCEDURE OnCreateInvLinesOnBeforeSalesShptLineFindset @1000(VAR SalesShptLine@1000: Record 111;VAR SalesHeader@1001 : Record 36);
 BEGIN
 END;

Call for function:
    [External]
    PROCEDURE CreateInvLines@1(VAR SalesShptLine2@1000 : Record 111);
    VAR
    [...]
    BEGIN
      WITH SalesShptLine2 DO BEGIN
        SETFILTER("Qty. Shipped Not Invoiced",'<>0');
+	OnCreateInvLinesOnBeforeSalesShptLineFindset(SalesShptLine2,SalesHeader);
        IF FINDSET THEN BEGIN
          SalesLine.LOCKTABLE;
          SalesLine.SETRANGE("Document Type",SalesHeader."Document Type");
          SalesLine.SETRANGE("Document No.",SalesHeader."No.");
          SalesLine."Document Type" := SalesHeader."Document Type";
          SalesLine."Document No." := SalesHeader."No.";
          Window.OPEN(Text002 + Text003);
          OnBeforeInsertLines(SalesHeader);
         [...]
    END;

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability.

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability.


Stackoverflow in IE8

When running index.html in IE8 on XP SP3, I get a stackoverflow error on line 16 of jquery.min.js
If I run with the un-minified version of jquery https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.js
In debugging mode it breaks at the finally statement on line 1011.
Looking into the call stack it seems to die on jQuery.ready() which is interesting, but I'm guessing this is just jquery handling it's own error gracefully.
Out of debugging mode, it breaks on line 520 with a stack overflow error.
Which is
if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) {
Hope it helps, keep up the good work.
-thanks
Alex.

Hello Alex,
thanks for your report.
I'll work on this asap.
Regards,
Valerio

Cool, that was a quick response!

Hi all on IE 8 win 7 i have the same problem .

It seems it's your function _treecollapseInitizeNodes(li) which produces a undeined loop on ie cause you use eval .
_initializeNode: function(li) {
li.children('span:last').addClass(this.options.core.widgetBaseClass + '-label');
    // call each active component initialize method
    for (var i in this.options.components) {
        var componentInitializeNode = 'this._tree' + this.options.components[i] + 'InitializeNode(li)';
        eval(componentInitializeNode);
    }
}


feat: handle empty paths

I needed this so that I can compose routers, something like:
Router(
  {
    "/users": Router(
      {
        "": users_endpoint,
        "/:name": user_endpoint,
       }
    )
)

Basically the "value" can be an endpoint or another router, but currently the router assumes/forces the path to start with "/" which in this example means it's impossible to match "/users".
I did this in a TDD style because I'm unfamiliar with the codebase and barely know Rust: I wrote the test and then hacked until I got it to work. I'm still pretty new to rust so please feel free to rip my work apart and apologies if this is missing some obvious edge case that I didn't pick up from the code.

Thank you for reviewing and merging! Do you plan to cut a release with this change?

Bumped in v0.3.1.

@adriangb hi, I opened viz-v0.2.0-alpha. If you are interested, you can take a look at the router implementation.
Currently, I am currently writing docs.

@fundon this seems to have been regressed when you did the rewrite. Do you think the new version could also support this behavior?

@fundon this seems to have been regressed when you did the rewrite. Do you think the new version could also support this behavior?

Currently, not accept empty string, I thing we can remove the limit.

Yeah that would be great! I gave it a bit of try and couldn't immediately figure out how to get it working without breaking other things, but that's probably just because of how bad my Rust is 😅


Map inside Clerk table displays wierdly (:mvn/version "0.12.707")

Hi!
When I render a map in a Clerk table, the viewer seems to choke. Strings look like symbols, and a closing } is missing.
Let me know if you want more details!
Teodor
(clerk/table
 [{"password" "abc"
   "hash(password)" {:rainbowtable/password "6fee74066d6f9452b311669272b91809504534c5"}}
  {"password" "cat"
   "hash(password)" {:rainbowtable/password "9d989e8d27dc9e0ec3389fc855f142c3d40f0c50"}}])

Our parens rewriting is probably to blame for this. @zampino can you take a look here when you're back?

@teodorlu see the attached fix, thanks for the report!

Perfect, thanks!


BUG:  Hourly tasks are being run on server restarts

Describe the bug
I want to only execute tasks once in every hour during the start of the hour but, every periodic task is being executed at server restart as well. Is there a way to disable this behaviour?
To Reproduce
Restart the server and watch periodic tasks
Expected behavior
Periodic hourly task should only get executed at the start of the hour and not during server restarts
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: Mac OS M1
Python version python3.10

Additional context
Add any other context about the problem here.

Found the fix:
def run_scheduler(rocketry_app: Rocketry):
    for task in rocketry_app.session.tasks:
        # log a non-action to stop bug where hourly, daily, weekly, monthly tasks are run immediately
        task.log_inaction()

    rocketry_app.run()


Crash

Fatal error: Uncaught Error: Call to undefined method muqsit\deathinventorylog\libs\pog
git\libasynql\sqlite3\Sqlite3Thread::registerClassLoader() in phar:///root/aiptu/Pocket
Mine-MP/master/server/plugins/DeathInventoryLog_dev-9.phar/src/muqsit/deathinventorylog
/libs/poggit/libasynql/base/SqlSlaveThread.php:68
Stack trace:
#0 phar:///root/aiptu/PocketMine-MP/master/server/PocketMine-MP.phar/src/thread/CommonT
hreadPartsTrait.php(93): muqsit\deathinventorylog\libs\poggit\libasynql\base\SqlSlaveTh
read->onRun()
#1 [internal function]: pocketmine\thread\Thread->run()
#2 {main}
thrown in phar:///root/aiptu/PocketMine-MP/master/server/plugins/DeathInventoryLog_de
v-9.phar/src/muqsit/deathinventorylog/libs/poggit/libasynql/base/SqlSlaveThread.php on line 68

This is an issue with devirion (https://github.com/poggit/libasynql/issues/62, https://github.com/poggit/devirion/issues/15)

how to solve this issue?

poggit/libasynql just pushed a fix for this issue, the DeathInventoryLog_dev-10.phar file generated by the latest commit 26d3d908ec8c0501a8f4955568c57294a9b1fa3a shouldn't throw the above error.


Track kuviz events

Related to https://github.com/CartoDB/product/issues/501

retest this please

:heavy_check_mark: Acceptance OK


Add an example of implementing custom Message component

Is your feature request related to a problem? Please describe.
I'm trying to create a custom Message React component that accepts message prop. (And optionally scope and params).
It would simplify the translation process for some of my static declarations / default FC values, were you don't have direct access to useI18n hook.
But I have problems with linking proper TS types to it.
international-types README page contains some examples on how to create type-safe scopes with keys and Type-safe params.
However, for me it's unclear how to use provided international-types to implement Message React component.
This code gives me some TS errors that I have no idea how to fix:
import type { LocaleKeys, Scopes, ScopedValue, CreateParams } from "international-types";
import type { Locale } from "@/locales/en";
import { useScopedI18n } from "@/locales/client";

export const Message = <
  Scope extends Scopes<Locale> | undefined,
  Key extends LocaleKeys<Locale, Scope>,
>({
  scope,
  message,
  params,
}: {
  scope?: Scope;
  message: Key;
  params?: CreateParams<any, Locale, Scope, Key, ScopedValue<Locale, Scope, Key>>;
}) => {
  const t = useScopedI18n(scope);
  return t(message, ...(params || []))
};

Describe the solution you'd like
Add an example of how to implement something like this to international-types README.
Or return "Message" component when calling createI18nClient function

Sorry for the delay, I started a new job. Could you share your code so we can try to fix the type errors?

@QuiiBz
"use client";

import type {
  LocaleKeys,
  Scopes,
  ScopedValue,
  CreateParams,
  ParamsObject,
} from "international-types";
import type { Locale } from "@/locales/en";
import { useScopedI18n } from "@/locales/client";

/** A wrapper around `useScopedI18n` that takes a message key and params and returns a translated string */
export const Message = <
  Scope extends Scopes<Locale> | undefined,
  Key extends LocaleKeys<Locale, Scope>,
  Value extends ScopedValue<Locale, Scope, Key>,
>({
  scope,
  message,
  params,
}: {
  scope?: Scope;
  message: Key;
  // @ts-expect-error: Can't figure out how to type this properly
  params?: CreateParams<ParamsObject<Value>, Locale, Scope, Key, Value>;
}) => {
  const t = useScopedI18n(scope);
  // @ts-expect-error: Can't figure out how to type this properly
  return t(message, ...(params || []));
};


order of json dicts not preserved in jupyter notebooks save files

Environment data

VS Code version: Version: 1.58.2
Commit: c3f126316369cd610563c75b1b1725e0679adfb3
Date: 2021-07-14T22:30:16.440Z
Electron: 12.0.13
Chrome: 89.0.4389.128
Node.js: 14.16.0
V8: <IP_ADDRESS>-electron.0
OS: Linux x64 5.4.0-80-generic snap
Jupyter Extension version (available under the Extensions sidebar): v2021.8.1054968649
Type of virtual environment used N/A
Jupyter server running: Local

Expected behaviour
Make a small change, see only the change in git
Actual behaviour
Make a small change, the whole file is changed according to git (order of json dict entries is suddenly changed)
Steps to reproduce:

change something to a notebook in git
see this for every cell in the notebook:

Logs

Output for Jupyter in the Output panel (View→Output, change the drop-down the upper-right of the Output panel to Jupyter)

XXX

note: if anyone else has this issue, these lines give a workaround:
import sys
import json

fname = sys.argv[1]
with open(fname) as f:
    s = f.read()
    j = json.loads(s)

with open(fname, "w") as f:
    f.write(json.dumps(j, sort_keys=True, indent=1))

use it like this (maybe make a backup first to be sure):
python sortnotebook.py notebookthatsruined.ipynb

@DonJayamanne  IIRC we used to sort the keys in the notebook JSON to avoid creating noise like this (at least for the webview implementation). We should probably continue to do that moving forward


ImageActor should be opaque for the HardwareSelector to work

The PropPicker (HardwareSelector) does not work for the automatically generate noise image.
Adding imageActor->ForceOpaqueOn() solves the issue.

@cvandijck
There have been changes to the original code for this example, so please check it out again.
It would be better to do this:
  if (argc != 2)
  {
    // Image should be opaque for the HardwareSelector to work
    imageActor->ForceOpaqueOn();
  }

Since the picking already works Ok if the image ColorCells.tif is used.

Thanks for noticing this. This site is no longer maintained, please use the new site: vtk-examples. Please see the MR 154.

Thanks for noticing this. This site is no longer maintained, please use the new site: vtk-examples. Please see the MR 154.


A liitle suggestions for README

Hello, first thanks for ur open resource of the OpenDVC. My master project benifits a lot from ur contributions. But there is a tiny error in the README.md and hope u could modify it.
The examples in the README.md
for examples:
python OpenDVC_test_video_decoder.py --path_bin BasketballPass_bin_PSNR_1024 --path_com BasketballPass_dec_PSNR_1024 --model PSNR --l 1024 --Height 240 --Width 416 --GOP 10 --frame 100

should be modified as
python OpenDVC_test_video_decoder.py --path_bin BasketballPass_bin_PSNR_1024 --path_com BasketballPass_dec_PSNR_1024 --mode PSNR --l 1024 --Height 240 --Width 416 --GOP 10 --frame 100

because --model can't match the arguments.
besides, I hope u could update the Dependency because Tensorflow 1.12 may be too old for most of users to get access to.
Thanks, RenYang.

Thanks for your suggestions! I have corrected the README. The pre-trained models are trained on an early version of bottleneck, i.e., tensorflow-compression 1.0, please refer to https://github.com/tensorflow/compression/releases. The version 1.0 is only compatible with Tensorflow 1.12. Therefore, our pre-trained models can only be used on Tensorflow 1.12
However, we released the training codes yesterday. In theory, if installing a higher version of bottleneck, "import tensorflow_compression as tfc" will import that higher version of bottleneck, which is compatible with the later versions of tensorflow. I will try if my training codes are working that way. After trying, I will update the README, and you can train your own models on the later versions of Tensorflow.


Windows msvc support

Hi choco 👋,
this week I have set up the ccache for all my Windows msvc toolchains, it has 100% cache hits and now I want to also set up the ccache for my Windows msvc related GitHub actions.
The following doesn't work, it quits with the Warning: "windows_compile_environment=" is not supported. No operation...:
    - name: ccache install 🥳
      run: |
        choco install ccache -y

    - name: ccache setup 🕺
      uses: Chocobo1/setup-ccache-action@v1
      with:
        prepend_symlinks_to_path: false
        install_ccache: false
        update_packager_index: false
        ccache_options: |
          compression = false
          max_size = 1G

I don't ask for full msvc support, even the install_ccache may not work.
Would be good to normally continue if the windows_compile_environment is empty or windows_compile_environment=msvc.
I have tried following inside the Windows-2019 GitHub action's image, I'm posting here notes to make it easier for you:

The ccache --set-config xx=yy works out of the box if the ccache is already installed.
it creates ccache.conf file at $env:APPDATA/ccache/ccache.conf (~/AppData/Roaming/ccache)
choco installs ccache.exe at C:\ProgramData\chocolatey\bin\ccache.exe and it's on the system path

I think it would be enough to make it work inside the Windows-2019/2022 images.
Here is my cmake code that fixes/allows 100% ccache hits, it simply disables precompiled headers and replaces /Zi compiler option with the /Z7 in CMAKE_<C|CXX>_FLAGS_<CONFIG> flags.
The Cmake defaults to /Zi so it has 100% ccache misses because ccache doesn't support /Zi but it works great with the /Z7 compiler option. And also ccache doesn't support precompiled headers on Windows msvc.

Currently, I have workarounded it using (for inspiration 👀):
- name: Ccache restore cache 🕺
  id: cache-ccache-msvc2022-qt63
  uses: actions/cache@v3
  env:
    cache-name: msvc2022-qt63
  with:
    path: ~/AppData/Roaming/ccache
    key: ${{ runner.os }}-ccache-${{ env.cache-name }}-${{ github.run_id }}
    restore-keys: |
      ${{ runner.os }}-ccache-${{ env.cache-name }}-

- name: Ccache setup 🥳
  run: |
    echo "::group::Install ccache"
    choco install ccache -y
    echo "::endgroup::"

    echo "::group::Prepare ccache config"
    ccache --set-config max_size=600M
    ccache --set-config sloppiness=pch_defines,time_macros
    ccache --show-config
    echo "::endgroup::"

    echo "::group::Clear ccache statistics"
    ccache --zero-stats
    echo "::endgroup::"

- name: TinyORM cmake configure (msvc-cmake-debug)
  run: >-
    cmake
    -S .
    -B ../TinyORM-builds-cmake/build-msvc-cmake-debug
    -G Ninja
    -D CMAKE_CXX_COMPILER_LAUNCHER:FILEPATH="C:/ProgramData/chocolatey/bin/ccache.exe"
    -D CMAKE_TOOLCHAIN_FILE:FILEPATH="${env:VCPKG_INSTALLATION_ROOT}/scripts/buildsystems/vcpkg.cmake"
    -D CMAKE_DISABLE_PRECOMPILE_HEADERS:BOOL=ON
    -D CMAKE_BUILD_TYPE:BOOL=Debug
    ...

- name: TinyORM cmake build ✨ (msvc-cmake-debug)
  run: |
    cmake --build ../TinyORM-builds-cmake/build-msvc-cmake-debug --target all --parallel 2

- name: Ccache statistics
  run: |
    ccache.exe --show-stats -vv

Hi, sorry for the late reply. I've just released v1.2.11 which should add some support to MSVC.
Also thanks for your instructions, it helps immensely when coding this feature.


What is the meaning of the message "TODO: Wait protobuf to be fixed" in the xviz/python/xviz_avs/v2/ folder?

Hey there, hope you are fine. I am considering implementing a cpp version of xviz using the python version as an skeleton (btw do you think this is a good idea?). In the README from the folder  xviz/python/xviz_avs/v2/ there is a comment saying "TODO: Wait protobuf to be fixed". Does it mean that the current version of proto files in v2 have problems? What are these problems? The problems affect the python version? What are impacts of the problems? Would it affect the cpp version?
Hope to hear from you soon.

@filipemtz we have a C++ PR pending already.  See https://github.com/uber/xviz/pull/592
That comment was from the original committer for that Python code so I'm not sure what it refers too.

About that comment, I remember it was because a problem of compiling protobuf files at that time, which seems to be fixed by https://github.com/uber/xviz/pull/561. So that TODO can be removed now

I didn't check the compilation when answering https://github.com/cmpute/xviz.py/issues/2, but I tried compilation today and it works fine


cli: Allow partial container IDs.

Support the specification of partial container IDs. Now, the runtime
will expand a partial container ID as long as The container ID specified:

is a valid container ID prefix.
expands to a unique matching container ID.

Signed-off-by: James O. D. Hunt<EMAIL_ADDRESS>

Coverage decreased (-1.2%) to 34.558% when pulling 9628249c7e545695dcb297ce7dbe452f678481e3 on jodh-intel:allow-partial-containerIDs into f0609685c94f4377ef2b8c4ec0f0877fbd9feb33 on clearcontainers:master.

Coverage decreased (-1.2%) to 34.558% when pulling 9628249c7e545695dcb297ce7dbe452f678481e3 on jodh-intel:allow-partial-containerIDs into f0609685c94f4377ef2b8c4ec0f0877fbd9feb33 on clearcontainers:master.

LGTM

lgtm


translucent property on ion-header has no visible effect

Bug Report
Adding translucent to ion-header have no visible effect.
Ionic Info
Ionic:

   ionic (Ionic CLI)             : 4.3.1 (/Users/kim/.npm-global/lib/node_modules/ionic)
   Ionic Framework               : @ionic/angular 4.0.0-beta.15-0
   @angular-devkit/build-angular : 0.7.5
   @angular-devkit/schematics    : 0.7.5
   @angular/cli                  : 6.2.7
   @ionic/angular-toolkit        : 1.1.0

Cordova:

   cordova (Cordova CLI) : 8.0.0
   Cordova Platforms     : android 7.0.0, browser 5.0.4, ios 4.5.5
   Cordova Plugins       : cordova-plugin-ionic-keyboard 2.1.2, cordova-plugin-ionic-webview 2.0.3, (and 12 other plugins)

System:

   ios-deploy : 1.9.4
   ios-sim    : 7.0.0
   NodeJS     : v8.11.4 (/usr/local/bin/node)
   npm        : 6.4.1
   OS         : macOS
   Xcode      : Xcode 10.1 Build version 10B61

Describe the Bug
header-translucent and header-translucent-ios is added to ion-header, but it doesn't change the appearance.
Related Code
<ion-header translucent>
	<ion-toolbar>
		<ion-buttons slot="start">
			<ion-back-button></ion-back-button>
		</ion-buttons>
		<ion-title>Log In</ion-title>
	</ion-toolbar>
</ion-header>

Expected Behavior
I expect the background color, border and shadows to be removed.

This seems to remove background color and border/shadow, but according to the header docs the translucent property should be added to the ion-header element and I don't think the no-border property is documented at all?


JSON Schema containing array with item reference gives Typescript error: Type '"object"' is not assignable to type '"array" | undefined'.

What version of Ajv are you using? Does the issue happen if you use the latest version?
Libraries declared in package.json:
  "dependencies": {
    "ajv": "^8.6.0"
  },
  "devDependencies": {
    "@types/node": "^15.12.2",
    "@typescript-eslint/eslint-plugin": "^4.27.0",
    "@typescript-eslint/parser": "^4.27.0",
    "eslint": "^7.28.0",
    "eslint-config-prettier": "^8.3.0",
    "eslint-plugin-node": "^11.1.0",
    "eslint-plugin-prettier": "^3.4.0",
    "prettier": "^2.3.1",
    "ts-node": "^10.0.0",
    "typescript": "^4.3.2"
  }

Your typescript code
Based on the Recursion example here: https://json-schema.org/understanding-json-schema/structuring.html
/* eslint-disable no-console */
// eslint-disable-next-line node/no-missing-import
import Ajv, { JSONSchemaType } from 'ajv/dist/2020';
import draft7MetaSchema from 'ajv/dist/refs/json-schema-draft-07.json';
const ajv = new Ajv();
ajv.addMetaSchema(draft7MetaSchema);

const schema: JSONSchemaType<any> = {
  $schema: 'http://json-schema.org/draft-07/schema#',

  definitions: {
    person: {
      type: 'object',
      properties: {
        name: { type: 'string', nullable: false },
        children: {
          type: 'array',
          minItems: 0,
          items: { $ref: '#/definitions/person' },
          nullable: false
        }
      },
      required: ['name']
    }
  },

  type: 'object',

  properties: {
    person: { $ref: '#/definitions/person' }
  }
};

const validator = ajv.compile(schema);

const validData = {
  person: {
    name: 'Elizabeth',
    children: [
      {
        name: 'Charles',
        children: [
          {
            name: 'William',
            children: [{ name: 'George' }, { name: 'Charlotte' }]
          },
          {
            name: 'Harry'
          }
        ]
      }
    ]
  }
};

if (validator(validData)) {
  console.log(validData);
} else {
  console.log(validator.errors);
}

Typescript compiler error messages
    return new TSError(diagnosticText, diagnosticCodes);
           ^
TSError: ⨯ Unable to compile TypeScript:
src/issue.ts:13:7 - error TS2322: Type '"object"' is not assignable to type '"array" | undefined'.

13       type: 'object',
         ~~~~

    at createTSError (/Users/anjum/Documents/workspace/resilient/playground/json-schema-validator/node_modules/ts-node/src/index.ts:587:12)
    at reportTSError (/Users/anjum/Documents/workspace/resilient/playground/json-schema-validator/node_modules/ts-node/src/index.ts:591:19)
    at getOutput (/Users/anjum/Documents/workspace/resilient/playground/json-schema-validator/node_modules/ts-node/src/index.ts:921:36)
    at Object.compile (/Users/anjum/Documents/workspace/resilient/playground/json-schema-validator/node_modules/ts-node/src/index.ts:1189:32)
    at Module.m._compile (/Users/anjum/Documents/workspace/resilient/playground/json-schema-validator/node_modules/ts-node/src/index.ts:1295:42)
    at Module._extensions..js (internal/modules/cjs/loader.js:785:10)
    at Object.require.extensions.<computed> [as .ts] (/Users/anjum/Documents/workspace/resilient/playground/json-schema-validator/node_modules/ts-node/src/index.ts:1298:12)
    at Module.load (internal/modules/cjs/loader.js:641:32)
    at Function.Module._load (internal/modules/cjs/loader.js:556:12)
    at Function.Module.runMain (internal/modules/cjs/loader.js:837:10)

Describe the change that should be made to address the issue?
I do not know. However, I spotted that if I change #/definitions/person/properties/children/nullable to true then the error disappears in VSCode but the Typescript compiler still gives the same error.
Are you going to resolve the issue?
No because I do not know why this is happening.

I think nullable: false is considered invalid to be used in the schema with JSONSchemaType, it would be no-op. You can just remove it.

@epoberezkin If I remove all the nullable fields it still fails with the same error.

I actually don't think JSONSchemaType is supposed to work, it expects a particular data type. If you need the type for any JSON Schema, there is SomeJSONSchema (I think)

I created a Person interface for schema like this:
...
interface Person {
  name: string;
  children: Person[];
}

const schema: JSONSchemaType<Person> = {
  $schema: 'http://json-schema.org/draft-07/schema#',

  definitions: {
    person: {
      type: 'object',
      properties: {
        name: { type: 'string' },
        children: {
          type: 'array',
          minItems: 0,
          items: { $ref: '#/definitions/person' }
        }
      },
      required: ['name']
    }
  },

  type: 'object',

  properties: {
    person: { $ref: '#/definitions/person' }
  }
};
...

Even with this I get the same error.

I tried to use AnySchemaObject and the code compiles and runs correctly with this.
So there must be some Typescript errors somewhere in JSONSchemaType or I have made some other type of basic mistake in my usage of this library.
BTW: I am a complete new comer to this library.

I think I understand the problem - JSONSchemaType seems to require that optional properties have an explicit nullable true in them, although the way this problem comes out is very confusing... So this compiles:
const schema: JSONSchemaType<number> = {
  type: "number",
  definitions: {
    person: {
      type: 'object',
      properties: {
        name: { type: 'string' },
        child: {
          type: 'array',
          nullable: true
        }
      },
      required: ['name']
    }
  },
};

@epoberezkin You said that the generic parameter type of JSONSchemaType "can be any type" in here: const schema: JSONSchemaType<number> = { // can be any type
If thats the case, then what is the purpose of that generic type parameter?

I mean that the error happens irrespective of which type you use there, it’s specifically related to definitions. This type parameter should be your dat type.

The problem actually seems ultimately to have more to do with the $ref:. JSONSchemaType doesn't recognize a standalone ref as a valid type, e.g. const x: SomeJSONSchema = { $ref: "#" } fails. In your example, if you replace it with a simple schema, e.g. { type: "number" } you get a new error, which is valid, you still need to add required: ["person"] to the top level schema, and then everything works.
@asnaseer-resilient,  since all this does is help with type checking, and definitions aren't type checked in JSONSchemaType (they're only checked if they structurally match any schema definitions), I recommend if you have a similarly definition based type, for now you just ignore it with AnySchemaObject and move on. (Note, if your schema is simple / fits within the JTD spec, the JTD types do type definitions and refs).
@epoberezkin A possible fix for this to also allow a catch-all ref check similar to the union types , e.g. right after:
https://github.com/ajv-validator/ajv/blob/f8708387a5be62fbd0becc0cedfc580021a5c5da/lib/types/json-schema.ts#L32-L39
just add
    | { $ref: string }

It's not super elegant, but it's the only way I can see to treat $refs appropriately.
My main question is how this plays with JSONSchemaType overall. Does it make sense (according to spec) to allow refs tagged onto other things e.g.
{
    $ref: "#/array",
    type: "array",
    minItems: 3 // i.e. overriding something from the ref
}

or should they always be standalone. If the latter, then this:
https://github.com/ajv-validator/ajv/blob/f8708387a5be62fbd0becc0cedfc580021a5c5da/lib/types/json-schema.ts#L133
should probably also be removed (although the [keyword: string]: any also makes the removal somewhat meaningless. Actually, on a side note, I'm not sure why that's there)

Thanks all for your responses to this. FYI, this is the actual schema I defined in the end for my application using JSONSchemaType (I am not sure if JTD can be used as I am unclear on its support for unions).
import { AnySchemaObject } from 'ajv/dist/2020';

export const UI_PERMISSIONS_META_SCHEMA: AnySchemaObject = {
  $schema: 'http://json-schema.org/draft-07/schema#',

  definitions: {
    uuid: { type: 'string', minLength: 36, maxLength: 36 },
    groupName: { type: 'string', minLength: 1, maxLength: 32 },
    description: { type: 'string', maxLength: 100 },
    label: { type: 'string', minLength: 1, maxLength: 32 },
    effect: { type: 'string', enum: ['ALLOW', 'DENY'] },
    action: { type: 'string', minLength: 1 },
    resources: { type: 'array', minItems: 0, items: { type: 'string' } },
    PermissionStatement: {
      type: 'object',
      properties: {
        effect: { $ref: '#/definitions/effect' },
        action: { $ref: '#/definitions/action' },
        resources: { $ref: '#/definitions/resources' }
      },
      required: ['effect', 'action', 'resources']
    },
    UiPermissionStatements: {
      type: 'object',
      properties: {
        label: { $ref: '#/definitions/label' },
        statements: {
          type: 'array',
          minItems: 1,
          items: {
            $ref: '#/definitions/PermissionStatement'
          }
        }
      },
      required: ['label', 'statements']
    },
    UiPermissionSpecificStatements: {
      type: 'object',
      properties: {
        uuid: { $ref: '#/definitions/uuid' },
        label: { $ref: '#/definitions/label' },
        statements: {
          type: 'array',
          minItems: 1,
          items: {
            $ref: '#/definitions/PermissionStatement'
          }
        }
      },
      required: ['uuid', 'label', 'statements']
    },
    UiPermissionPolicyOption: {
      type: 'object',
      properties: {
        label: { $ref: '#/definitions/label' },
        description: { $ref: '#/definitions/description' },
        permissionOptionType: { enum: ['Policy'], type: 'string' },
        policyId: { type: 'string', pattern: '^V#V[0-9]{4}_[0-9]{2}_[0-9]{1}#P#[a-zA-Z][a-zA-Z_]*$' }
      },
      required: ['label', 'description', 'permissionOptionType', 'policyId']
    },
    UiSpecificPermissions: {
      type: 'object',
      properties: {
        label: { $ref: '#/definitions/label' },
        items: {
          type: 'array',
          minItems: 1,
          items: { $ref: '#/definitions/UiPermissionSpecificStatements' }
        }
      },
      required: ['label', 'items']
    },
    UiPermissionSetOption: {
      type: 'object',
      properties: {
        label: { $ref: '#/definitions/label' },
        description: { $ref: '#/definitions/description' },
        permissionOptionType: { enum: ['PermissionSet'], type: 'string' },
        permissionSet: {
          type: 'object',
          properties: {
            uuid: { $ref: '#/definitions/uuid' },
            any: { $ref: '#/definitions/UiPermissionStatements' },
            specific: { $ref: '#/definitions/UiSpecificPermissions' }
          },
          required: ['uuid', 'any', 'specific']
        }
      },
      required: ['label', 'description', 'permissionOptionType', 'permissionSet']
    }
  },

  type: 'object',
  properties: {
    groupName: { $ref: '#/definitions/groupName' },
    label: { $ref: '#/definitions/label' },
    description: { $ref: '#/definitions/description' },
    options: {
      type: 'array',
      minItems: 1,
      items: {
        anyOf: [{ $ref: '#/definitions/UiPermissionPolicyOption' }, { $ref: '#/definitions/UiPermissionSetOption' }]
      }
    }
  },
  required: ['groupName', 'label', 'description', 'options']
};

@asnaseer-resilient JTD only supports tagged unions, but it looks like your schema does have a tagged union, so that should work and provide better type guarantees than JSONSchemaType, although I don't want to go into the specifics here. However, JTD is only a structural definition, so it doesn't allow for the other validation that you do here like regex or min / max length for lists or strings. What you end up choosing is up to you, but the rough trade off is that JTDs schema allows easier / better typescript static verification that the schema matches the type returned, but JSONSchema is much more expressive, so if you trust what you wrote, it support more complex verification.

@erikbrinkman Thank you very much for your insights - much appreciated. For now I think I will stick with JSONSchemType as it provides more expressive validations.

@asnaseer-resilient One more little comment because I stumbled onto when looking over the tests did the smart thing of using:
const schema: JSONSchemaType<MySchema> & {
  definitions: {
    a: JSONSchemaType<...>,
    ...
  }
} = { ... }

This should allow you to type check the definitions (presuming that the standard definition type checked fine. Note, it won't make sure that the references to those definitions match the type, just that the individual definitions also type check correctly. Still it will provide a little more guarantees in certain circumstances.

while it's a limitation that definitions / refs are not typed, the issue still remains as per https://github.com/ajv-validator/ajv/issues/1652#issuecomment-868973633
This schema should be valid against this time, I still don't follow why it is not...
@erikbrinkman

Looked over this again, and there are number of things going on still, depending on which MWE you're dealing with.
The fix for #1664 should deal with needed nullable for an optional type. The other problems are

is items necessary for array type? then it won't allow you to just declare { type: "array" }. I think items should be required, but it does prevent some of the schemas above.
is { $ref: "..." } a valid type. Currently it's hacked into properties to be allowed
https://github.com/ajv-validator/ajv/blob/a04657014022c9ecb9ae0738b2ac07cb0d76cf3f/lib/types/json-schema.ts#L151-L153
but not for items, or any other top-level type, e.g. { definitions: { a: { ... } }, $ref: "#/definitions/a" } won't work. The "best" resolution for all of this issues is to probably remove { $ref: string } from above, and add it here
https://github.com/ajv-validator/ajv/blob/a04657014022c9ecb9ae0738b2ac07cb0d76cf3f/lib/types/json-schema.ts#L32-L40
loosely allowing any type to be specified as a $ref.

is items necessary for array type?

good question. Arguably it’s very rare that you need [any] type in the schema and if you do you can still have items: {}.
I’d say if it’s easy to make items: {} optional then it’s good to do it, but if it’s lots of type-foo needed for it we can just add the line in the docs…

is { $ref: "..." } a valid type

yes. It’s not too uncommon to have items defined as $ref

fixed in v9

2024 and still no recursive patterns? see also #1728. Or is this somehow doable in another way?

@StefanR23 recursive types are still not supported for JSONSchemaType. In principle it may doable, but there are a lot of edge cases with JSONSchema that make it hard to test in typescript. A key one is static url parsing, and then resolving if it's local or remote. More critically, the issue of determining that recursion is necessary and how it might apply. In all likelihood it would need to have the same structure as JTDSchemaType which requires to manually specify the type of all the $defs too.
More to the point, the issue you reference seems to actually be due to three issues:

missing required, unfortunately due to the way typescript type checks, it's hard to make sure this appears obviously
mistyped $defs, which should SomeJSONSchemaType in it's true form
JSONSchemType doesn't want to have a single $ref at the root level

If you fix all of these you no longer get compile errors.
Note, I didn't actually fix 1, I just made a bad schema to handle it, or 2, because the current implementation actually defines SomeJSONSchema wrong, as noted in another Issue. The hack of passing in the Known union doesn't actually expand correctly to any possible JSONSchemaType, and as a result, you get a lot of weird bugs.
Also note that even if you did do all of these, the schema isn't actually checked, it's just assumed to be correct.
It's probably also worth pointing out that there's a 9.0 draft that fixes some other issues, notably, this field shouldn't be nullable, as that would imply the value can also be null, not just missing.
What can you do?
This was a lot of saying why it doesn't work, but not much of what can you do in the meantime. Unfortunately, I don't have a great solution. JSONSchema is really complicated, and this code has some tech debt in it that is hard to clean up for compatibility reasons.
For simple types just use jtd. it's a much friendly schema for just type checking. The referenced issue can be rendered as:
const schema: JTDSchemaType<IList, {"list": IList}> = {
    ref: "list",
    definitions: {
        list: {
            optionalProperties: {
                children: {
                    elements: { ref: "list" },
                }
            },
        }
    }
};

which type checks the whole thing accurately. You can also use JTDDataType, but that doesn't work well here since it can be a little finicky with objects that only have optional fields, partially due to the way that typescript works, although this might be a bug.
If you really need JSONSchema, you can always try rolling your own, after all, AJV doesn't actually use the type, that's just for developer help. In the example above you can make a similar type with something like:
type InnerType<T, D extends Record<string, unknown>> = (
    T extends readonly (infer I)[] ? {
        type: "array"
        items: InnerType<I, D>
    } : {
        type: "object"
        properties: {
            readonly [K in keyof T]-?: InnerType<T[K], D>
        },
        required: readonly (keyof T)[],
        additionalProperties?: boolean,
    }
) | {
    [K in keyof D]: T extends D[K] ? K extends string ? { $ref: `#/\$defs/${K}` } : never : never
}[keyof D]

type MyJSONSchemaType<T, D extends Record<string, unknown>> = InnerType<T, D> & {
    $defs: {[K in keyof D]: InnerType<D[K], D>}
}

export interface IList {
    children?: IList[];
}

const schema: MyJSONSchemaType<IList, {"list": IList}> = {
    $ref: "#/$defs/list",
    $defs: {
        list: {
            type: "object",
            properties: {
                children: {
                    type: "array",
                    items: { $ref: "#/$defs/list" },
                }
            },
            required: [],
            additionalProperties: false
        }
    }
};

This actually type checks the recursive portion, but will obviously get more complicated as you use more features from JSONSchema.

@erikbrinkman  Tanks for the snippets.
In parallel I found a workaround. Not the best, but fine for the moment to get code completion to a certain level etc.
import AJV, { JSONSchemaType } from "ajv/dist/2020";

const ajv = new AJV({ allErrors: true });

export interface Tree {

    data: string
    children?: Tree[];
}

// works only as embedded and not as standalone schema
const treeSchema : JSONSchemaType<Tree> = {
    type: "object",
    properties: {
        data: {type: "string"},
        children: {
            type: "array",
            items: { $ref: "#/$defs/tree" } as unknown as JSONSchemaType<Tree>,
            nullable: true
        }
    },
    required: ["data"],
    additionalProperties: false
};

interface Document {
    title:string;
    tree: Tree
}

const documentSchema : JSONSchemaType<Document> = {
    type: "object",
    properties: {
        title: { type: "string"},
        tree:  {  $ref: "#/$defs/tree" }
    },
    additionalProperties: false,
    required: ["title", "tree"],
    $defs: {
        tree: treeSchema  as unknown as JSONSchemaType<Tree>
    }
};

const validator = ajv.compile<Document>(documentSchema);

const subject = {
    title: "title",
    tree: {
        data: "root",
        children: [
            {
                data: "child",
                children: [
                    {
                        data: "grandchild",
                    }
                ]
            }
        ]
    }
}

if(validator(subject)){
    console.log("fine")
} else{
    console.log(JSON.stringify(validator.errors))
}


Is "release-notes/releases-index.json" supported for automatic download?

Hi, just wondering if the json files listed in release-notes/releases-index.json (and release-notes/releases-index.json itself using the link https://raw.githubusercontent.com/dotnet/core/main/release-notes/releases-index.json) are supported for downloading .NET Runtime installer programmatically. I know there is the install-script, but I was looking for something that actually installs it globally.
By supported, I mean that the following fields won't change, or if at least you could notify me about it :)
The fields I will be using are "channel-version" (releases-index.json), "releases.json" (releases-index.json), "latest-release" (releases.json), "releases"[index]."release-version" (releases.json), "releases"[index]."runtime and windowsdesktop"."files"."rid and url and name" (releases.json).

Just to clarify, what I'm trying to achieve is some sort of function that can download the .NET Runtime or Desktop Runtime installer for x64, x86, and arm64 on Windows and macOS, as an exe or pkg. It should automatically get the latest installer for any given .NET / .NET Core version (ie. 1.0, 1.1, 2.0, 2.1, 2.2, 3.0, 3.1, 5.0, 6.0).

Can you comment on that @rbhanda?

@hamarb123, yes, you can count on the fields not changing. We treat the file as a contract of sorts and are very careful to not break existing users of the files.


Update aws-app-development.yaml

Hey, I just made a Pull Request!

:heavy_check_mark: Checklist

[x] A changeset describing the change and affected packages. (more info)
[x] Added or updated documentation
[x] Tests for new functionality and regression tests for bug fixes
[x] Screenshots attached (for UI changes)
[x] All your commits have a Signed-off-by line in the message. (more info)

Hi Team, Can someone take a look at this small MR? we made a few changes and wanted to update the reference to our plugin. thanks!

Hi Team, Can someone take a look at this small MR? we made a few changes and wanted to update the reference to our plugin. thanks!

Hi @Rugvip anyway i can help with this MR?

Hi @camilaibs Is there anything else we need to do to get this commit merged? Thanks.

Hi team happy new year! @Rugvip @camilaibs  can you kindly merge this request? Thanks

It looks like the changes have been approved and all that is needed now is to merge these changes. @Rugvip @camilaibs please merge when you get a chance. Thanks a lot!

Hi Team @Rugvip @camilaibs Can you please approve and merge the PR ? thank you!


ShiftType object, name attribute is not unique

The name attribute in the ShiftType object identifies each Shift in each working day.
This name should be unique, but isn't.
Expectation:
The ORM Column "name" in object "ShiftType" should be declared as "unique".

migrated to https://github.com/TIXI24/requirements/issues/33


Unable to add an item to a list using overlays in IstioOperator manifest

Bug description
I am trying to add --grpcAddr="" start-up option as per https://istio.io/latest/docs/ops/best-practices/security/#control-plane
To do that I tried to use overlays option in Istio Operator as per https://github.com/istio/istio/blob/da6178604559bdf2c707a57f452d16bee0de90c8/operator/pkg/patch/patch.go#L68
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
...
spec:
  components:
    pilot:
      enabled: true
      k8s:
        overlays:
        - kind: Deployment
          name: istiod
          patches:
          - path: spec.template.spec.containers.[name:discovery].args
            value: --grpcAddr=""

The istiod deployment doesn't get patched and here is what I see in the operator's log
2021-07-14T01:07:57.673719Z     info    installer       Updating Deployment/istio-system/istiod (istiocontrolplane/)
2021-07-14T01:07:57.680219Z     error   installer       Deployment in version "v1" cannot be handled as a Deployment: v1.Deployment.Spec: v1.DeploymentSpec.Template: v1.PodTemplateSpec.Spec: v1.PodSpec.Containers: []v1.Container: v1.Container.Args: []string: decode slice: expect [ or n, but found ", error found in #10 byte of ...|[{"args":"--grpcAddr|..., bigger context ...|mponent":"Pilot"}},"spec":{"containers":[{"args":"--grpcAddr=\"\"","env":[{"name":"REVISION","value"|...

[] Docs
[X] Installation
[ ] Networking
[ ] Performance and Scalability
[ ] Extensions and Telemetry
[ ] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure
[ ] Upgrade
Expected behavior
--grpcAddr="" switch gets added to args list in the istiod deployment.
Steps to reproduce the bug
Use the istio operator manifest above
Version (include the output of istioctl version --remote and kubectl version --short and helm version --short if you used Helm)
❯ istioctl version --remote
client version: 1.8.6
control plane version: 1.8.6
data plane version: 1.8.6 (12 proxies)
❯ kubectl version --short
Client Version: v1.21.2
Server Version: v1.19.8-eks-96780e

How was Istio installed?
Istio Operator
Environment where the bug was observed (cloud vendor, OS, etc)
AWS EKS

@ashevtsov-wawa just confirmed this is indeed an issue (sort of). This issue is more of a document problem. You probably can do something like this to avoid the issue.
          patches:
          - path: spec.template.spec.containers.[name:discovery].args.[30]
            value: --grpcAddr=""

The trick is to add a bracket [] to let the code know we are dealing with an list, not a hash. Use a big number like 30 is to indicate this is not to replace any existing item. Obviously the number 30 is a bit misleading, but this is the only way to go around this problem.

@ashevtsov-wawa Here is a complete yaml file that you can use to fix the issue.
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
metadata:
  name: istiod
  namespace: istio-system
spec:
  components:
    pilot:
      enabled: true
      k8s:
        overlays:
        - kind: Deployment
          name: istiod
          patches:
          - path: spec.template.spec.containers.[name:discovery].args.[100]
            value: --grpcAddr=""

Even more complete example to avoid this kind of issues.
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
metadata:
  name: istiod
  namespace: istio-system
spec:
  components:
    pilot:
      enabled: true
      k8s:
        overlays:
        - kind: Deployment
          name: istiod
          patches:
          - path: spec.template.spec.containers.[name:discovery].args.[100]
            value: --grpcAddr=:15020
          - path: spec.template.spec.containers.[name:discovery].ports.[containerPort:15010]
            value:
              containerPort: 15020
              protocol: TCP
        - kind: Service
          name: istiod
          patches:
          - path: spec.ports.[port:15010]
            value:
              port: 15020
              name: grpc-xds
              protocol: TCP

@ashevtsov-wawa I will submit a PR to update the comments in the source code file. please review after the PR is submitted. Thanks.

Fixed by #35044


{"error":{"code":"NoRegisteredProviderFound","message":"No registered resource provider found for location 'global' and API version '2023-01-01-preview' for type 'activityLogAlerts'. The supported api-versions are '2017-03-01-preview, 2017-04-01, 2020-10-01'. The supported locations are 'global, westeurope, northeurope'."}}

Bicep version
run bicep --version via the Bicep CLI, az bicep version via the AZ CLI or via VS code by navigating to the extensions tab and searching for Bicep
get-command Export-BicepResource
CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Function        Export-BicepResource                               2.4.0      Bicep

Describe the bug
A clear and concise description of what the bug is vs what you expected to happen
Export-BicepResource -ResourceId '/subscriptions/xxxxx-xxx-xxx-xxx-xxxxx/resourceGroups/yyyyy/providers/Microsoft.Insights/activityLogAlerts/xxxxx-xxx-xxx-xxx-xxxxx' -Path '.\zzzzz\xxxxx-xxx-xxx-xxx-xxxxx\yyyyy\xxxxx-xxx-xxx-xxx-xxxxx(Microsoft.Insights_ActivityLogAlerts)\ExportTemplate_xxxxx-xxx-xxx-xxx-xxxxx.bicep' -ErrorAction Stop -Verbose
WARNING: Failed to fetch resource 'AzResourceIdentifier { FullyQualifiedId = /subscriptions/xxxxx-xxx-xxx-xxx-xxxxx/resourceGroups/yyyyy/providers/Microsoft.Insights/activityLogAlerts/xxxxx-xxx-xxx-xxx-xxxxx, FullyQualifiedType = Microsoft.Insights/activityLogAlerts, FullyQualifiedName = xxxxx-xxx-xxx-xxx-xxxxx, UnqualifiedName = xxxxx-xxx-xxx-xxx-xxxxx, subscriptionId =  }' with API version 2023-01-01-preview: Azure.RequestFailedException: No registered resource provider found for location 'global' and API version '2023-01-01-preview' for type 'activityLogAlerts'. The supported api-versions are '2017-03-01-preview, 2017-04-01, 2020-10-01'. The supported locations are 'global, westeurope, northeurope'.
Status: 400 (Bad Request)
ErrorCode: NoRegisteredProviderFound

Content:
{"error":{"code":"NoRegisteredProviderFound","message":"No registered resource provider found for location 'global' and API version '2023-01-01-preview' for type 'activityLogAlerts'. The supported api-versions are '2017-03-01-preview, 2017-04-01, 2020-10-01'. The supported locations are 'global, westeurope, northeurope'."}}

Headers:
Cache-Control: no-cache
Pragma: no-cache
x-ms-failure-cause: REDACTED
x-ms-request-id: fe416fd2-8718-4ee5-bb53-925c186b3046
x-ms-correlation-request-id: REDACTED
x-ms-routing-request-id: REDACTED
Strict-Transport-Security: REDACTED
X-Content-Type-Options: REDACTED
Date: Fri, 29 Dec 2023 08:59:15 GMT
Content-Type: application/json; charset=utf-8
Expires: -1
Content-Length: 325

   at Azure.ResourceManager.Resources.ResourcesRestOperations.GetByIdAsync(String resourceId, String apiVersion, CancellationToken cancellationToken)
   at Azure.ResourceManager.Resources.GenericResource.GetAsync(CancellationToken cancellationToken)
   at BicepNet.Core.Azure.AzureResourceProvider.GetGenericResource(RootConfiguration configuration, AzResourceIdentifier resourceId, String apiVersion, CancellationToken cancellationToken) in /home/runner/work/BicepNet/BicepNet/BicepNet.Core/Azure/AzureResourceProvider.cs:line 140
   at BicepNet.Core.BicepWrapper.ExportResourceAsync(String id, String configurationPath, Boolean includeTargetScope) in /home/runner/work/BicepNet/BicepNet/BicepNet.Core/BicepWrapper.ExportResource.cs:line 50

To Reproduce
Steps to reproduce the behavior:
Export-BicepResource -ResourceId '/subscriptions/xxxxx-xxx-xxx-xxx-xxxxx/resourceGroups/yyyyy/providers/Microsoft.Insights/activityLogAlerts/xxxxx-xxx-xxx-xxx-xxxxx' -Path '.\zzzzz\xxxxx-xxx-xxx-xxx-xxxxx\yyyyy\xxxxx-xxx-xxx-xxx-xxxxx(Microsoft.Insights_ActivityLogAlerts)\ExportTemplate_xxxxx-xxx-xxx-xxx-xxxxx.bicep' -ErrorAction Stop -Verbose

Additional context
Add any other context about the problem here.

This command is part of the community project PSBicep and is not created or supported by Microsoft.
Please open an issue at https://github.com/PSBicep/PSBicep/issues


⚠ SolarOscp has degraded performance

In f314f6f, SolarOscp ($SOLAROSCP_URL) experienced degraded performance:

HTTP code: 200
Response time: 125 ms

Resolved: SolarOscp performance has improved in d86d41d after 10 minutes.


Upgrade Ruby 2.7 to 2.7.2 release

Ruby Core have released Ruby 2.7.2, and with a wave of excitement I'd like to help Fullstaq have this version available for all to install. https://www.ruby-lang.org/en/news/2020/10/02/ruby-2-7-2-released/
From looking at the instructions in dev-handbook/add-new-ruby-version.md I think these are the only config changes required to start building these packages.
(PS: This project is awesome, and I love the included documentation. Really easy to get a sense of how it hangs together and works. Thank you very much for creating this project 👏.)

Have followed the instructions for building packages locally, with .deb for Debian 9 (guess what I'm mostly using these packages on 😁) and then run the test scripts against the built package locally. Everything appears to work for me.

Thanks for the pull request! The CI is currently broken (see #60). I'm trying to fix it but Github is not making it easy for me (https://github.community/t/max-workflow-file-size/135445). I'm trying to fix this as quickly as I can.

By the way, your pull request does not include a regenerated Github Workflow file, probably because you did not set up the Git hooks.
This is not a big problem because I can regenerate the workflow file for you (and I need to fix the CI first anyway) but maybe something to keep in mind for the future.

By the way, your pull request does not include a regenerated Github Workflow file

Whoops! I think I had committed this before running the configuration for the git hooks, apologies. I've re-committed and force pushed this branch so it has a regenerated workflow file in now!

I think I've solved #60, but I'm still running into what appears to be Github Actions workflow file limit. Progress can be tracked in #62.

The CI issues should be solved now. I'm resolving conflicts in your PR and testing it.

Merged and being released now. Thank you!

@FooBarWidget Awesome, thank you for getting this through!


About full connection layer

The last sentence nn.Linear(500, 5)， why 5 ?

5 is a value that worked after some experimentation. You can try any of your own values to see what works out for you


Fastboot compatibility

It looks like some work is needed to make this addon fastboot-compatible. It currently fails at boot time when it hits require("mobiledoc-kit")["registerGlobal"](window, document); in mobiledoc-kit's globals build.

see #51. Does that fix this issue, or do you see additional fastboot-related incompatibilities?

That's a start but more work is needed.
I think we will need to swap the DOM renderer out and the HTML renderer in.

Neat. @ef4 this package should not be requiring the mobiledoc-dom-renderer, instead it has its own bespoke editor that handles cursor edge cases, etc.
The HTML renderer would work, but we're also having good experience using the DOM renderer with simple-dom. Cards are just simple-dom compatible, and therefore work with browser DOM apis or can be converted into strings. It seems easier than writing a card once as DOM and once as HTML.
Of course if you plan to render Ember components for document display, you're basically already doing that, just Ember is using simple dom for you.

Then I think the work that's needed is ensuring that this package's bespoke editor always goes through simple DOM. I will work on that.

And/or that the instantiation of the editor itself is not executed during fastboot (b/c of what hooks are used). I think that would be the ideal, you don't want the editor itself to execute on the server.

So what thing exported by mobiledoc-kit would do the rendering instead of mobiledoc-kit/editor/editor?
(This is why I thought I would need to import something like the html renderer.)

@ef4 What is your goal for FastBoot? That the editor's DOM is renderered, or just that the {{mobiledoc-editor}} component is "FastBoot safe" and renders a dummy placeholder?
FWIW, the editor DOM is not the same as the HTML/DOM rendered by mobiledoc-html-renderer or mobiledoc-dom-renderer. I just want to make sure you're not using the editor to render content to non-editors (something the renderers should be used for).

I want the DOM rendered correctly, same as it would if it rendered in the
browser.  Users need to be able to trust that initial render is portable to
either environment and looks the same.
For non-editors, I will also need to create an Ember component to wrap the
renderer. Presumably as a separate addon, and not just another component in
this repo?
On Jan 31, 2016 9:50 PM, "Matthew Beale"<EMAIL_ADDRESS>wrote:

@ef4 https://github.com/ef4 What is your goal for FastBoot? That the
editor's DOM is renderered, or just that the {{mobiledoc-editor}}
component is "FastBoot safe" and renders a dummy placeholder?
FWIW, the editor DOM is not the same as the HTML/DOM rendered by
mobiledoc-html-renderer
https://github.com/bustlelabs/mobiledoc-html-renderer or
mobiledoc-dom-renderer
https://github.com/bustlelabs/mobiledoc-dom-renderer. I just want to
make sure you're not using the editor to render content to non-editors
(something the renderers should be used for).
—
Reply to this email directly or view it on GitHub
https://github.com/bustlelabs/ember-mobiledoc-editor/issues/50#issuecomment-177724717
.


Error: Plugin did not respond

Hi,
I am trying to use the export resource to get a .json of my current dev genesys cloud environment.
I am using TF v1.0.1
When doing this I got the following error:
genesyscloud_tf_export.export: Creating...
╷
│ Error: Plugin did not respond
│
│   with genesyscloud_tf_export.export,
│   on main.tf line 16, in resource "genesyscloud_tf_export" "export":
│   16: resource "genesyscloud_tf_export" "export" {
│
│ The plugin encountered an error, and failed to respond to the plugin.(*GRPCProvider).ApplyResourceChange call. The plugin logs may contain more details.
╵

Stack trace from the terraform-provider-genesyscloud_v0.11.1.exe plugin:

panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xc0000005 code=0x0 addr=0x0 pc=0x11feb9b]

goroutine 625 [running]:
github.com/mypurecloud/terraform-provider-genesyscloud/genesyscloud.readIntegrationAction(0x18b72a0, 0xc0009181e0, 0xc000ae4100, 0x12e0180, 0xc00045d6b0, 0x0, 0xc0009181f0, 0x16ee748)
        github.com/mypurecloud/terraform-provider-genesyscloud/genesyscloud/resource_genesyscloud_integration_action.go:245 +0xb3b
github.com/mypurecloud/terraform-provider-genesyscloud/genesyscloud.runWithPooledClient.func1(0x18b72a0, 0xc0009181e0, 0xc000ae4100, 0x12e0180, 0xc0004996b0, 0x0, 0x0, 0x0)
        github.com/mypurecloud/terraform-provider-genesyscloud/genesyscloud/sdk_client_pool.go:112 +0x27f
github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema.(*Resource).read(0xc000331c00, 0x18b7220, 0xc000697640, 0xc000ae4100, 0x12e0180, 0xc0004996b0, 0x0, 0x0, 0x0)
        github.com/hashicorp/terraform-plugin-sdk/v2@v2.7.0/helper/schema/resource.go:347 +0x187
github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema.(*Resource).RefreshWithoutUpgrade(0xc000331c00, 0x18b7220, 0xc000697640, 0xc0001b00e0, 0x12e0180, 0xc0004996b0, 0x1, 0x1, 0x0, 0x0)
        github.com/hashicorp/terraform-plugin-sdk/v2@v2.7.0/helper/schema/resource.go:624 +0x1cb
github.com/mypurecloud/terraform-provider-genesyscloud/genesyscloud.getResourceState(0x18b7220, 0xc000697640, 0xc000331c00, 0xc000795b80, 0x18, 0xc0009746e0, 0x12e0180, 0xc0004996b0, 0x1, 0x0, ...)
        github.com/mypurecloud/terraform-provider-genesyscloud/genesyscloud/resource_genesyscloud_tf_export.go:342 +0x107
github.com/mypurecloud/terraform-provider-genesyscloud/genesyscloud.getResourcesForType.func1(0xc0008992d0, 0x18b7220, 0xc000697640, 0xc000331c00, 0x12e0180, 0xc0004996b0, 0xc000461920, 0x157173f, 0x1f, 0xc0006cdb20, ...)
        github.com/mypurecloud/terraform-provider-genesyscloud/genesyscloud/resource_genesyscloud_tf_export.go:282 +0xf8
created by github.com/mypurecloud/terraform-provider-genesyscloud/genesyscloud.getResourcesForType
        github.com/mypurecloud/terraform-provider-genesyscloud/genesyscloud/resource_genesyscloud_tf_export.go:277 +0x375

Error: The terraform-provider-genesyscloud_v0.11.1.exe plugin crashed!

This is always indicative of a bug within the plugin. It would be immensely
helpful if you could report the crash with the plugin's maintainers so that it
can be fixed. The output above should help diagnose the issue

This looks like the API returned an action with a null integrationId attribute. I'm not sure how that was configured in the system since that is a required attribute, but I will add a check for this.

@joefruland thanks for looking at this for me.
When you say it's a required attribute, is this something I can fix somewhere in the meantime?

The error doesn't show which one, but it appears at least one of your integration actions is not configured with an associated integration ID. You could use this API to get all actions and look for one that is returning a null or missing integrationId attribute and update or delete that action: https://developer.genesys.cloud/api/rest/v2/integrations/#get-api-v2-integrations-actions
I should be able to have a fix in today that will prevent the provider from crashing, but if you try to use the exported config it will require you to manually set that attribute on the action (or remove it entirely).

Ah thanks for explaining, I'll give it a go. If not, I'll just wait for your fix. Thanks again.


Add docker configuration space and opening of docker host to Nexus OSS

Nexus OSS has the ability to host a Docker private registry. Docker private registries ignore the context-path on URLs. As a result, they have to be hosted at a port at the base path. The current helm chart does not provide the opportunity to open up a second port. This change allows a port to be opened specific to docker. It also lets you specify a domain name specific to the Docker endpoint, to make accessing it easier.

/ok-to-test

cc @rjkernick

there is also issue #2343


Prototype callouts

Try out different things - arrows, lines, just the text, etc - in powerpoint. Do we point to specific regions by circling the area or pointing to the gages, or just show the text in the appropriate region.
See static figure for water use 15 (ultimately completed in illustrator). Maybe take "hand drawn" image and convert to data points, e.g. draw shape to highlight a region and convert into points that we could plot. Ask Marty if he has experience/ideas.

These are simple examples, but show some of the callout needs we'll have in a given year.
I think the animation would be best served by having a number of different ways we can do callouts, similar to water use. That includes overlay boxes, arrows, custom text formatting, and polygon outlines of various types to show extent. But, we're limited by complexity challenges, so I think we should proceed with simpler technical implementations first and add on top as needed later. I know the task here isn't about implementation, but I think that is where I can help out most at least in the brainstorming phase. I tried to limit solutions to practical things that I think we can code up relatively easily.
I think a yaml pattern like this may be helpful for us:
callouts:
   -
     dates: ["2018-06-01", "2018-06-11"]
     text:
          label: ["Flooding in the northeast", "driven by x…"]
          x_loc: 0.88 #this is in percentage space, relative to the plotting device
          y_loc: 0.65
          pos: 3
   -
     dates: ["2018-05-21", "2018-07-01"]
     text:
          label: ["Drought conditions", "established in Colorado"]
          x_loc: 0.47
          y_loc: 0.45
          pos: 3
     text_box:
          bg: "#A9A9A9CC"

I'd suggest we skip arrows for now, or only support simple arrows w/o curves. Although I'm tempted to specify a pattern for circles or ellipses (or merged buffered points like we have in Arkansas for WU), I think it might not be necessary, so we should probably skip it for now. If, for example, we end up with only 5 callouts for the entire year, I would guess we'd want to tweak those to look as sharp as possible. That means either creating some kind of external polygon to read in and plot (doesn't sound fun), or having callout-specific image files created manually (e.g., same resolution and size as the frames) that only have the overlay polygons and/or custom arrows. I'd prefer this solution as it seems more practical. These images could be PNGs w/ transparency that can be read in and plotted on top similar to how the watermark is handled (but easier, since the watermark image isn't the right size and doesn't have proper transparency, so we need to mess with it). Not sure if there are other ideas that others have in mind for this too - additional input welcome.
So, something like this in the future if needed:
callouts:
   -
     dates: ["2018-06-01", "2018-06-11"]
     text:
          label: ["Flooding in the northeast", "driven by x…"]
          x_loc: 0.88 #this is in percentage space, relative to the plotting device
          y_loc: 0.65
          pos: 3
     overlay_plot:
          file: "1_fetch/in/custom_border_20180601_NE_flood.png"
   -
     dates: ["2018-05-21", "2018-07-01"]
     text:
          label: ["Drought conditions", "established in Colorado"]
          x_loc: 0.47
          y_loc: 0.45
          pos: 3
     text_box:
          bg: "#A9A9A9CC"

Thanks, Jordan! What do you think of the idea that the "MVP" implementation is only the text in the appropriate locations styled with the boxes, etc? I like your idea for plotting more complex shapes to indicate regions/gages in a similar way that we tackle the watermark. I think we should not put too much effort into adding a basic/arrows circles if we would rather do the more custom solution because in my opinion, they don't add much more than the text does. I think given where we are now, the more custom solution you suggest is feasible to complete by the end of next week, and I'd rather put our efforts into that.

yes, I think having the text+box solution as part of the MVP and thus easier to review by GWSIP and recruit content for what the callouts should feature.

I just found this, which is way too noisy and yet also really cool: http://eumetnet.eu/e-surfmar-year-review/

My favorite parts are

The timestamp moving like a clock. though they could have just used a clock, IMO. And we don't need a clock for our viz. But maybe a future viz?
Hurricanes get tracked as text following the hurricane center. I think this could work well for our storm callouts - could be easier to see than an unmoving, multi-day callout. The callout could include a date-specific dot/symbol for the storm center. I think we could do droughts differently without it bothering anyone.

neat ideas ☝


i have lights with Q but no siren

tried also to build the version, and the ready resource same issue. sirens not working.
at console i saw those when try to open sirens :
[     97985] [b2545_GTAProce]             MainThrd/ State bag doesn't exist for vehicle 320514, ensuring
[     99641] [b2545_GTAProce]             MainThrd/ [sirenMode] Setting sound id -1 for 320514
[     99641] [b2545_GTAProce]             MainThrd/ [sirenMode] playing sound 1 for 320514 with sound id -1
[    102844] [b2545_GTAProce]             MainThrd/ [horn] Setting sound id -1 for 320514
[    102844] [b2545_GTAProce]             MainThrd/ [sirenMode] 320514 has sound, releasing sound id -1
[    104938] [b2545_GTAProce]             MainThrd/ [siren2Mode] Setting sound id -1 for 320514
[    104938] [b2545_GTAProce]             MainThrd/ [siren2Mode] playing sound 1 for 320514 with sound id -1
[    105672] [b2545_GTAProce]             MainThrd/ [horn] 320514 has sound, releasing sound id -1

Finally Anti cheat block the sound...seems ok now ty!


Cycle Health Bar Split doesn't cycle

Cycling health bars used to change between several presets, ie, for Lina's or Axe's Ults to see exactly when a player dropped below a threshold for ability use.
Alt + Z appears to be intended to provide this functionality, but does not cycle (even though a sound is made.)

This function was improperly implemented most likely when we made the switch to reborn.
Other than that, a reborn patch might've changed things up or declared this as a hack and removed.
One of these probably happened, since as far as I remember this was working in Reborn.

I'll have a look at it.

@Sembrani tell me if it's fixed in the latest patch, and I'll close the thread

If you can't get cycles to work, you could use some generated by Manta.

It should have been fixed, since I see nothing wrong with the code. If it is still an issue, I will look into it further again


Stencil state support

this will be combined into the DepthState to create a DepthStencilState. i'd also like to see about implementing some basic stencil tests (such as occlusion query) if it is supported by all apis.

done! this should have now been fully implemented.


"moved" property is empty in onDragStop when using compactType null

There are 4 possible configurations in regards to compactType:

vertical
horizontal
null
undefined

When using null as compactType it means that you can move items around freely.
The bug I want to report, is that when using onDragStop, the "moved" property of the returned object, shows always false for all items. For vertical and horizontal the moved property is set correctly.
Please the console output of this sandbox after having dragged an item:
https://codesandbox.io/s/xenodochial-bartik-sntuu?file=/src/ShowcaseLayout.js

How do I remove the stale tag?

Seems like null as compactType setting is in no one's interest..


tour: Title of category is hidden on mobile behind Navbar

Context: https://tour.golang.org/moretypes/6
This makes it hard to tell what I’m reading about when hitting the next button.

Google Chrome 76
Also, a long file name distorts the code window.

Came here to report this issue, found it's an old issue. I wonder if my meager skills are enough to contribute a fix. Not right now of course - I am on my phone (: otherwise I wouldn't have noticed the bug (:


Forms

🚀 Feature Proposal
Add forms to the component library.
Forms should have:

[ ] form builder: outputs a jsonschema, including validation and field types
[ ] auto building forms from a jsonschema
[ ] auto validating on predefined input types; function on custom input types

Motivation
Forms are used to enter information.
Example
Creating a new patient.
Relevant Links

<EMAIL_ADDRESS>

Hi, I'd be interested in picking this issue up!
I'm just wondering if it might be worth separating the Form and FormBuilder components into their respective issues? As they seem like two very distinct components and chunks of work :)

@irvelervel what do you think?

Hello everyone. I already did a pretty significant amount of work tooling a form generator system in the past, complete with autobuilding-from-schema features; the only problem is that I built it upon redux-form (https://github.com/redux-form/redux-form) which now seems to be much less relevant than it was at the time. Me and the rest of the core team agree that formik (https://github.com/jaredpalmer/formik) is a strong base to build upon right now.
@B-Taylor123 I didn't intended those (the form and the formbuilder) as two separate components :) once the form-generator system is build up, you can pass a configuration to it a that renders a form which outputs the values selected as a valid json schema; then, this json schema could be passed again to our form-generation system to create the desired form.

Ahhh, thanks for clearing that up @irvelervel  :) I’d still like to pick this task up if that’s cool with everyone?

@B-Taylor123 really sorry for the late response. I apologize but I realized I want to take some time to inspect my old code and check all the features implemented at the time in order to have a clearer picture of the code portions we need to write from scratch. We are probably going to have an open talk about this: we'll be glad if you can be a part of it. Stay tuned ;)

Not sure if this has already been discussed and decided upon but if not I am also interested in helping out with this form builder if any help is needed.
I was taking a look at react-final-form as a substitute for formik as its smaller, only has the final-form dependency which itself has zero dependencies. It might have all the needed functionalities and serve as a better substitute for the form component but i'm not certain.
If anyone with a better grasp wants to check it out and give there opinion here is the project link!
https://github.com/final-form/react-final-form
I am more than willing to read into final-form and react-final-form if needed for the form constructor and even begin the boilerplate code to help start it up.

Hi @ocBruno, we analyze almost everyone form component and we decided to go with Formik. We like its philosophy and flexibility. We will try to use it as first choice and if it won't work for our needs we can re-evaluate react-final-form.
As usual, every contribution is welcomed! Thanks :)

Hello @fox1t, these three libraries will be helpful for the reference implementation.
Drag and Drop UI for Form Which Generates JSON at the end
https://github.com/surveyjs/survey-creator
Form Library that consumes JSON and display form
https://github.com/surveyjs/survey-library
and this one doesn't for creation UI but has JSON to Form implementation.
https://github.com/rjsf-team/react-jsonschema-form

Hi guys, I'm a bit late to the party, but I think https://react-hook-form.com/ is a much better library than Formik IMO. It was built on react hooks concept, and pretty intuitive to implement.
Does anyone know how much work has been done? As I would like to contribute to this issue.

Hi, @blestab @fox1t @tehKapa @jackcmeyer -- would love to take this on if no one is working on it!


fix: fixes user-agent detection in React Native

Description

fixes BT.js in RN env

Testing required outside of automated testing?

[x] Not Applicable

Screenshots (if appropriate):

[x] Not Applicable

Rollback / Rollforward Procedure

[x] Roll Forward
[ ] Roll Back

Reviewer Checklist

[ ] Description of Change
[ ] Description of outside testing if applicable.
[ ] Description of Roll Forward / Backward Procedure
[ ] Documentation updated for Change

:tada: This PR is included in version 1.79.4 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Handle conflicts on inserts

This question was asked by @bmelton at https://github.com/synw/sqlview/issues/1 , moving it to here

BatchInsert allows for use of ConflictAlgorithm.replace / ignore / whatever, but I don't see any implementation for this on the regular db.insert method, and can't figure out how to handle those errors. Should I just try and catch them, or is there something obvious that I'm missing?

Good point. Internally the insert method uses Sqflite's rawInsert method inside a transaction. We should instead use the Sqflite's insert method that has conflict algorithm support, and add a parameter to our insert method like for batchInsert

Instead of changing insert I added a insertManageConflict method because of the ifNotExists parameter that is not managed by the Sqflite's insert method
It is available in 4.2.0


Update PowerShell curl usage

I ran into some issues following the instructions for curl in powershell; I've tested these changes and they fix the issues I ran into. (Tracking down the different quote escaping behavior was fun, TIL about curl --trace)

Hi, thanks for your contribution!
I totally forgot about that PowerShell alias for Invoke-WebRequest. Since it only affects curl and not curl.exe, could we keep single section for both, referring curl.exe? Code for both generally interchangeable with difference alias pointing to same binary in newer version.

Now since curl is being preinstalled on newer Windows 10/11 versions, command can be used there without extra steps and I think even a bit outdated binary would be fine, functionality of curl we rely on is quite old.
Preinstalled curl also shadows binary installed with scoop as its shims folder goes after System32 where curl is, so it needs to be installed in global mode scoop install curl --global (needs to be run as administrator) as global path goes first.
brew installs curl in keg-only mode (means binary needs to be linked manually, so it won't accidentally) but it's no surprise as it's mentioned in post-install message.

PR was partially merged and reworded. Marked you as co-author. Thanks for your contribution!


Miscellaneous pending fixes

Reset selection when the schedule frequency is changed.

This is fixed in this commit: https://github.com/ranjansaga/react-cron-jobs/commit/7fb7319b5f22dce22d4ae0d13ed2a50aedf360e9
Closing this issue


feat: support legacy enterprise users refactor

Description

Related Issue(s)

#{issue number}

Verification

[ ] Your code builds clean without any errors or warnings
[ ] Manual testing done (required)
[ ] Relevant automated test added (if you find this hard, leave it and we'll help out)

Documentation

[ ] Documentation is updated (either in docs-directory, Altinnpedia or a separate linked PR in altinn-studio-docs., if applicable)

Merged in #728


[distribution] Restore 5.x snapshots

Chrome driver died on CI, unrelated to the change.

Without passing tests snapshots won't be published. Can you try bumping the selenium/chromedriver dependencies?

Yup, it fixed the issues, thanks @zugazagoitia


Philips 499p9 with eGPU not working

Checklist

[X] I have searched for existing issues
[x] I have looked through the wiki
[X] I have updated MonitorControl to the latest version

Describe the bug
when connecting a display using an external gpu, the brightness control doesn't work. When changing brightness the screen flickers but always return to the same brightness level.
To Reproduce
Steps to reproduce the behavior:

connect MacBook to an egpu
connect a display to the egpu
try to change display brightness using monitorControl

Expected behavior
Screen should change brightness
Additional context

changing brightness works when connecting the display directly to the computer, not using an egpu.
tried using HDMI and DisplayPort cables

Environment Information (please complete the following information):

macOS version: Catalina 10.15.7
MonitorControl version: V. 2.1.0 build 721
Monitor(s): Philips 499p9

This feels like a setup issue, not an eGPU issue. How do I know this? I've been using an eGPU for years now with MonitorControl and it's working for me, I also know there are other people who have it working with their eGPU.
I suggest you try some of the suggestions in the Troubleshooting wiki.
If that doesn't help then I'm afraid there's probably not much we can do right now.

@bargald which eGPU and card?
@jererobles What does your setup look like?

@bargald which eGPU enclosure and card?
@jererobles What does your setup look like?

I use the Sonnet Breakaway box 650W, with AMD Radeon RX 580 8 GB

@JoniVR my setup is
 MBP 16" --TB3--> Caldigit USB-C Pro Dock --DP--> Dell U2713HM
                                          --DP--> LG 27UL650

You're right, this is not using eGPU.

Hi, can you please try 3.0.0 if anything is changed? Probably not, but to be sure that this issue is still relevant. Also please try ddctl if it works and also show us a screenshot of the Displays page of the 3.0.0 version to see what MC makes of your setup. Thank you!

I'll close this issue for now but please feel free to comment if there is anything we can do. If the issue persists, we can reopen this issue! Thank you!


Fix some security vulnerabilities

Some vulnerabilities are present in the components because of the go version used:

CVE-2023-45285 (go)

Fix in Go 1.21.5: https://groups.google.com/g/golang-dev/c/6ypN5EjibjM/m/KmLVYH_uAgAJ

CVE-2023-39326 (go)

Fix in Go 1.21.5: https://groups.google.com/g/golang-dev/c/6ypN5EjibjM/m/KmLVYH_uAgAJ

CVE-2023-48795 (crypto)

Fix golang/x/crypto 0.17.0: https://groups.google.com/g/golang-dev/c/5oU0WhLYNMY/m/_ZiZd0x1AwAJ

Probably because of the dependency: https://github.com/uptrace/bun, no new version available so I'm not sure it can be fixed

First two issues can be easily fixed once the component will be released (as you're using golang 1.21 as a base image).
Are releases planned soon?
Thank you,

Hi, thanks for mentioning, I plan to do a release end of this week

Updated Go Version and Dependencies in all Components, should resolve all vulnerabilities including the crypto package

Thank you!

Are you going to release a new chart version?

Released with Chart Version 2.21.6


Spring Boot 2.2.0.RELEASE Beans form a cycle

Hey, I'm facing a problem when upgrading to Spring Boot 2.2.0.RELEASE
Error message:
Description:

The dependencies of some of the beans in the application context form a cycle:
.
.
.
.
      ↓
┌─────┐
|  reactiveFeignCloudBuilder defined in reactivefeign.spring.config.ReactiveFeignClientsConfiguration$ReactiveFeignClientsCloudConfiguration
└─────┘

@kpetersson I had the same error when upgrading to 2.2.0. As a workaround you can declare this bean in your @Configuration class:
@Bean
    @Scope("prototype")
    @ConditionalOnClass(WebReactiveFeign.class)
    public ReactiveFeignBuilder reactiveFeignBuilder(
        WebClient.Builder builder,
        @Autowired(required = false) WebClientFeignCustomizer webClientCustomizer) {
        return webClientCustomizer != null
            ? WebReactiveFeign.builder(builder, webClientCustomizer)
            : WebReactiveFeign.builder(builder);
    }

@kptfh @tdanylchuk When I went deeper into this issue, i found that this bean method defined in reactivefeign.spring.config.ReactiveFeignClientsConfiguration is not invoked. But when i removed  @ConditionalOnClass(WebReactiveFeign.class) all worked fine.

@KuliginStepan than you for your effort,
As for this issue we will investigate it from our side, most likely after spring cloud Hoxton  will be released/

fixed in 1.0.37 that was just released
It's based on
<spring-cloud-bom.version>Greenwich.SR3</spring-cloud-bom.version>
<spring-boot-dependencies-bom.version>2.2.1.RELEASE</spring-boot-dependencies-bom.version>


CompileDaemon: Init at 2017-03-08

[x] binary executes

fixed the homepage meta attr

Please don't use CamelCase in package names.

Thought I’d just use upstream name, will change.

@edolstra wait, do you mean the attribute name or the name string?

Okay, I just renamed everything.


[5.7] Add replace function to collection

Replace a single value in a collection by specifying a key and value.
Returns the updated collection.

This has some "unexpected" behaviour.
If I have something like:
collect(['name' => 'taylor', 'laravel' => 'framework'])
If I use collect(['name' => 'taylor', 'laravel' => 'framework'])->replace('name', 'john') I expect:
['name' => 'john', 'laravel'=> 'framework']
but the actual result is:
['laravel'=> 'framework', 'name' => 'john']

How is replace() different than put()?

I keep telling people: collections are for collections of items. There are not for single objects.


Brian Munene: Agile Development, 4 weeks

my fork of module repository

Learning Objectives
0. Developing HTML & CSS
Practice with the skills, tools, and workflows you will need to efficiently
develop websites written with HTML & CSS.

🥚 VSCode: you can ...

[x] use the LiveServer extension to launch an HTML page in the browser
[x] use autocomplete to begin a new HTML document, create new tags, and much
more
[x] use the HTML CSS Support and IntelliSense fo CSS class names
extensions to make writing HTML & CSS more efficient

🥚 Formatting HTML & CSS: You can ...

[x] use VSCode configurations to format your code on save
[x] use npm run format to format all the code in your repository

[x] 🥚 Linting CSS: You can use the npm run lint:css script to find
mistakes in your CSS, and you can fix the mistakes.
[x] 🥚 Validating HTML: You can use the npm run validate:html script to
find mistakes in your CSS, and you can fix the mistakes.
🥚 Browser Developer Tools: You can ...

[x] inspect the source code of a web page using the Sources tab
[x] find any part of the web page in the Elements tab of your Dev Tools DOM
inspector
[x] find the styles for any element in the Elements tab
[x] make temporary changes in a web page from the Elements tab to see how
they will look

1. Following Plans
Practice working together in a group to build small websites in incremental
steps according to a plan. You will be given final code, a detailed plan to
rebuild it, and will need to work as a group following the processes in
Planning and Collaborating.

[x] 🥚 Project Definition and Scope: As a group, you can agree on what you
are trying to build, and can clearly describe the project using a README
and a repository description.
🥚 Project Constraints: As a group you can define project constraints by
discussing your strengths, weaknesses and context. You can set these types of
constraints:

[x] External: constraints that come from outside your group
[x] Internal, Involuntary: constraints that come from within your group,
but your group did not decide to have.
[x] Internal, Voluntary: constraints your group decides on to improve the
quality of your development process and final software.

[x] 🥚 Communication Plans: You can work with your group mates to agree on
a communication plan to follow during development.
[x] 🥚 Communicating Challenges: During development you can discuss with
your group when ...

you are blocked and need help the agreed channels of communication.
your schedule or availability changes
you are having trouble getting along with each other

[x] 🥚 Using a Backlog: You can develop from a backlog of features
organized by priority:

must-have
should-have
could-have

[x] 🥚 Follow a Development Strategies: You can follow a development
strategy to understand the code required for must-have user stories.
[x] 🥚 Create Issues From a Dev Strategy: You can create issues for user
stories in your project based on the development strategy.
🥚 Retrospective: Your group can complete a retrospective to ...

[ ] assess how well you worked as a group
[ ] find ways to improve in the next project
[ ] compare your plan to the reality of developing your website

🐣 Claiming and Completing Issues: You can claim issues from the TODO
column of a project board and ...

[x] track your progress with the project board
[x] develop your code locally on a separate branch
[x] send a PR that passes CI checks and meets the requirements

[x] 🐣 Code Review: You can both review a group mate's PR, and
productively participate in a review of your own code.
[ ] 🐣 Match a Design & Acceptance Criteria: When developing your tasks,
you can write code that matches the project's Wireframe and meets your
issue's Acceptance Criteria.

2. Writing Plans
Practicing writing your own plans as a group. You will be given only the final
code for HTML/CSS web pages, your group will need write a detailed plan for
rebuilding the website in small steps.

[x] 🥚 Write User Personas: As a group you can describing your site's
users with User Personas, and you can use the personas to plan your
website from the user's perspective.
[x] 🥚 Write User Stories: Given a working web page, you can describe it
with user stories and acceptance criteria for each user story.
[x] 🐣 Write a Backlog: After listing all the user stories for a web page,
you can organize them into a Backlog by priority: must-have,
should-have and could-have
[ ] 🐣 Create a Prioritized Design: Using your backlog and the original
site as a guide, you can create a Wireframe of the site your group will
build. You can use different colors and comments to indicate a priority
for each component in the Wireframe.
[ ] 🐣 Write a Development Strategies: You can translate your Wireframe
and Backlog into a Development Strategy for the must-have user stories.

3. Adapting Plans
Even the best plans are not perfect, it's not possible to know everything ahead
of time! You may be able to plan everything ahead of time when the web pages you
build are very small and you have the code ahead of time, but it's a whole
different thing when you need to build a larger web page over a longer period of
time.
In this chapter you will practice full Agile Development by developing a larger,
open-ended web pages and adapting your plans as you go. Your team will need to
make an initial plan, but the plan will change! Practice having regular meetings
with your group to review the website's progress, review your plan, and make any
changes in the plan that are necessary to keep the project on schedule.

[x] 🐣 Adjusting the Backlog: As a group you can agree to changes in the
backlog when necessary.
[x] 🐣 Adjusting the Design: As a group you can agree on changes to the
design during the development process when it becomes clear your old
design needs updating.
[x] 🐣 Updating the Project Board: You can manage the project board by
adding, removing or updating issues when necessary. This includes changing
labels, milestones, or assignees when necessary.

Week 1

[ ] I have pushed my progress to my fork of exercises repo

I Need Help With:
Most things are clear as of now 😊
What went well?
Coming up with a backlog for our group assignment was enjoyable. As a group, we were able to meet and share ideas on the various deliverables in the planning and collaboration task. I have also come to see how important it is to work in an Agile way as a developer.
What went less well?
My work schedule for the week made joining group meetings a little difficult. However, I was able to find a compromise.
Lessons Learned

Working in an Agile way.
Working in a group to achieve a common goal.
Being flexible in the development process

Sunday Prep Work
I a currently reviewing HTML and CSS in preparation for the HYF Redesign task.

Week 2 Agile Development: Loruki Rebuild
I Need Help With:
Most things are clear as of now 😊
What went well?
In this week we were able to better redesign/redefine user personas and come up with more convincing user stories. This makes the development process much smoother.
What went less well?
It's a bit hot indoors and even outdoor so it's been rather difficult to concentrate
Lessons Learned

Working in an Agile way.
Working in a group to achieve a common goal.
Being flexible in the development process
Defining user stories to advise the development strategy

Sunday Prep Work
I a currently reviewing HTML and CSS in preparation for the HYF Redesign task.

Week 3 Agile Development: HackyourFuture Website Rebuild
I Need Help With:
Most things are clear as of now 😊
What went well?
As a group, we started with the planning files for our project which we were able to finish within the first two days. With a clear view of the overall project, it was much easier to break down the project into sizeable bits for each member to work on.
What went less well?
Time management was rather difficult this week but I was able to get most things done
Lessons Learned

Working in an Agile way.
Working in a group to achieve a common goal.
Being flexible in the development process
Defining user stories to advise the development strategy

Sunday Prep Work
I a currently reviewing HTML and CSS as part of my daily goals

Week 4 Agile Development: HackyourFuture Website Rebuild
I Need Help With:
So far so good 😊
What went well?
Working on our project has been rather straightforward since we have written out all the issues we need making it a bit easier for group members to assign themselves and proceed with their work.
What went less well?
I have been a bit unwell and struggled to finish my issues and daily goals on time but I keep pushing 💪
Lessons Learned

Working in a group to achieve a common goal.
CSS styling (flexbox and grid)

Sunday Prep Work
I a currently reviewing HTML and CSS as part of my daily goals


🚨 conn.metadata.read() doesn't support 'GlobalValueSetTranslation', and 'StandardValueSetTranslation'

Hi,
When considering the 'ApexClass' metadata type, I observed the following:
• conn.metadata.describe() returns the 'GlobalValueSetTranslation' as a correct org's metadata type.
• conn.metadata.list([{ type: 'GlobalValueSetTranslation', folder: null }]) returns the correct collection of existing GlobalValueSetTranslation.
However...
• conn.metadata.read('GlobalValueSetTranslation', ['AnyGlobalValueSetTranslationFullName']) always throws the following exception
soapenv:Client: The content of elements must consist of well-formed character data or markup
Notice that I observed exactly the same issue with the 'StandardValueSetTranslation' metadata types.
Is it a known issue?
Thank in advance for your help

Works fine for me.
Have you confirmed that you setup your connection with at least API version 38.0 or later as specified as the version when this type was made available?
(versions must be specified as a string in this format when initializing jsforce 52.0)
https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_globalvaluesettranslation.htm

Yes, conn.version returns "52.0".
Do you call it like me, I mean with the fullName in the second parameter?

yeah, I think I was calling it the same way when I tested it out.

Ok, I don't know why but it doesn't work for me using the Metadata API with CRUD-Based Calls.
However, It work for me using the Metadata API with File-Based Calls.
Thanks a lot for your help @paustint 😉