Require boost < 1.69 for tests

Related to #168
Note that benchmarks work with any Boost (at least, Boost >= 1.67.0). Tested with 1.70.0.

Looks like Boost_VERSION_STRING is not defined in the failing CI tests.

@masterleinad Thanks for the feedback, that was sloppy on my part.

It's actually harder than I expected: this patch
-  Boost_LIB_VERSION      - Version string appended to library filenames
-  Boost_MAJOR_VERSION    - Boost major version number (X in X.y.z)
-  Boost_MINOR_VERSION    - Boost minor version number (Y in x.Y.z)
-  Boost_SUBMINOR_VERSION - Boost subminor version number (Z in x.y.Z)
+                           alias: Boost_VERSION_MACRO
+  Boost_VERSION_STRING   - Boost version number in x.y.z format
+  Boost_LIB_VERSION      - Version string appended to library filenames
+  Boost_VERSION_MAJOR    - Boost major version number (X in X.y.z)
+                           alias: Boost_MAJOR_VERSION
+  Boost_VERSION_MINOR    - Boost minor version number (Y in x.Y.z)
+                           alias: Boost_MINOR_VERSION
+  Boost_VERSION_PATCH    - Boost subminor version number (Z in x.y.Z)
+                           alias: Boost_SUBMINOR_VERSION
+  Boost_VERSION_COUNT    - Amount of version components (3)

flipped the way versions are written.


<IP_ADDRESS>

Does this work with the latest firmware update?

From my testing today and looking at the logs, yes it works. I have not had any issue yet.


SeqFormer question

In configuration.py
cfg.INPUT.SAMPLING_FRAME_NUM = 1
Does it mean that only one frame in the videos is selected as input?

Yes, SAMPLING_FRAME_NUM is the number of selected frames per video. For IDOL, SAMPLING_FRAME_NUM should be set to 2, the first is key frame and the second is reference frame.


added Catch Him

PR Description 📜
Added Catch Him
Fixes #4715

Mark the task you have completed ✅

[x] I follow CONTRIBUTING GUIDELINE & CODE OF CONDUCT of this project.
[x] I have performed a self-review of my own code or work.
[ ] I have commented my code, particularly in hard-to-understand areas.
[x] My changes generates no new warnings.
[x] I have followed proper naming convention showed in CONTRIBUTING GUIDELINE
[x] I have added screenshot for website preview in assets/images
[x] I have added entries for my game in main README.md
[x] I have added README.md in my folder
[ ] I have added working video of the game in README.md (optional)
[x] I have specified the respective issue number for which I have requested the new game.

please review and merge @kunjgit @ishita-43

Add your screenshots(Optional) 📸

Thank you soo much for contributing to our repository 💗

Thank you @Khushi-Pushkar ,for creating the PR and contributing to our GameZone 💗
Review team will review the PR and will reach out to you soon! 😇
Make sure that you have marked all the tasks that you are done with ✅.
Thank you for your patience! 😀

please review @ishita-43 and merge @kunjgit

please review @ishita-43 and merge @kunjgit

please review and merge @ishita-43 @kunjgit

please review and merge @ishita-43 @kunjgit

Thank you  @Khushi-Pushkar , for your valuable time and contribution in our GameZone 💗.
It’s our GameZone, so Let’s build this GameZone altogether !!🤝
Hoping to see you soon with another PR again 😇
Wishing you all the best for your journey into Open Source🚀


In the template, how to use the variables defined in the controller

I'v definded a status like this :
.state('slider',{         url:'/slider',         templateUrl:'templates/slider.html',         // template:'',         controller:'sliderCtrl'     })
and definded a variables as $scope.name=kevin, I want to use this variable in the template slider.html,
my way now like this：
{{names}}
but it doesn't work.
What should I do?

Are you sure it's not a typo => name instead of names ?

After the correction it still is not working
app.js:
$scope.name = 'kevin';
slider.html:
{{name}}

You need to provide more of your codebase (controller + template). We can't currently help you.

some codebase like these,is anything else shoud be provided?
config:
app.config(function($stateProvider, $urlRouterProvider) {     // For any unmatched url, redirect to /state1     $urlRouterProvider.otherwise("/");     //     // Now set up the states     $stateProvider     .state('home',{         url:'/',         templateUrl:'templates/pluginlist.html',     })     .state('slider',{         url:'/slider',         templateUrl:'templates/slider.html',         controller:'sliderCtrl'     }) });
controller:
app.controller('sliderCtrl', ['$scope', '$http', '$window', function($scope, $http, $window) {     $scope.name = 'kevin'; }])
slider.html:
``
{{name}}
``

Inside slider.html, try to wrap your {{name}} by
</div.

Yes,my index.html is like this :
``

``
It seems that I can get the template by

, but in the template,my {{name}} is not working.

I think I have known why my codebase does not work.
I should set the controller for the class called swiper-slide instead of the its parent element  when I use the swiper framework


gc: Refactor error handling

This PR provides the change in error handling, so during GC they are collected and logged in single place, instead of breaking GC on first error.

This change is

Review status: 0 of 2 files reviewed at latest revision, 1 unresolved discussion, some commit checks pending.

pkg/libvirttools/gc.go, line 64 at r1 (raw file):

can not
cannot is more correct. can not is kinda "old" form. (same error is several times
below)

Comments from Reviewable

Review status: 0 of 2 files reviewed at latest revision, 1 unresolved discussion.

pkg/libvirttools/gc.go, line 64 at r1 (raw file):
Previously, pigmej (Jędrzej Nowak) wrote…

can not
cannot is more correct. can not is kinda "old" form. (same error is several times
below)

Done.

Comments from Reviewable

Review status: 0 of 2 files reviewed at latest revision, 3 unresolved discussions.

pkg/libvirttools/gc.go, line 90 at r2 (raw file):

	}

	return containerIDs, false, nil

you're not returning allErrors, it's lost

pkg/libvirttools/gc.go, line 267 at r2 (raw file):

	}

	return nil

you're not returning allErrors, it's lost

Comments from Reviewable

Review status: 0 of 2 files reviewed at latest revision, 3 unresolved discussions.

Comments from Reviewable

Review status: 0 of 2 files reviewed at latest revision, 3 unresolved discussions.

pkg/libvirttools/gc.go, line 90 at r2 (raw file):
Previously, ivan4th (Ivan Shvedunov) wrote…
you're not returning allErrors, it's lost

Done.

pkg/libvirttools/gc.go, line 267 at r2 (raw file):
Previously, ivan4th (Ivan Shvedunov) wrote…
you're not returning allErrors, it's lost

Done.

Comments from Reviewable

Reviewed 1 of 2 files at r1, 1 of 1 files at r3.
Review status: all files reviewed at latest revision, 3 unresolved discussions.

Comments from Reviewable

Review status: all files reviewed at latest revision, 3 unresolved discussions.

Comments from Reviewable

Review status: all files reviewed at latest revision, 6 unresolved discussions.

pkg/libvirttools/gc.go, line 35 at r3 (raw file):

func (v *VirtualizationTool) GarbageCollect() (allErrors []error) {
	ids, fatal, errors := v.retrieveListOfContainerIDs()
	if errors != nil {

why this if? append will just do nothing if errors is nil

pkg/libvirttools/gc.go, line 43 at r3 (raw file):

	if errors := v.removeOrphanDomains(ids); errors != nil {
		allErrors = append(allErrors, errors...)

no need for if, just append

pkg/libvirttools/gc.go, line 47 at r3 (raw file):

	if errors := v.removeOrphanRootVolumes(ids); errors != nil {
		allErrors = append(allErrors, errors...)

no need for if, just append

pkg/libvirttools/gc.go, line 51 at r3 (raw file):

	if errors := v.removeOrphanQcow2Volumes(ids); errors != nil {
		allErrors = append(allErrors, errors...)

no need for if, just append

pkg/libvirttools/gc.go, line 55 at r3 (raw file):

	if errors := v.removeOrphanNoCloudImages(ids); errors != nil {
		allErrors = append(allErrors, errors...)

no need for if, just append

Comments from Reviewable

Review status: 1 of 2 files reviewed at latest revision, 6 unresolved discussions.

Comments from Reviewable

Reviewed 1 of 1 files at r4.
Review status: all files reviewed at latest revision, 6 unresolved discussions.

Comments from Reviewable

Reviewed 1 of 1 files at r4.
Review status: all files reviewed at latest revision, 6 unresolved discussions.

Comments from Reviewable


Pre-built libraries for windows dynamic and debug (/MD, /MDd, /MTd)

Is your feature request related to a problem? Please describe.
The MSVCRT build version isn't included in pre-built libraries. Debug versions are also missing.
https://docs.microsoft.com/en-us/cpp/build/reference/md-mt-ld-use-run-time-library
Describe the solution you'd like
The missing libraries provided
x86_64/static/filament.lib
x86_64/static/filament_d.lib
x86_64/dynamic/filament.lib
x86_64/dynamic/filament_d.lib

Describe alternatives you've considered
N/A
OS and backend
Windows

Do you just need to know what version of MSVCRT was used? (Do we even use that? We compile with clang). Also why do you need debug libraries?

Attempting to link with a default Visual C++ project causes this error:
Linking Static Library with Dynamic Library Error : LNK2038 Mismatch detected

Which is a problem because most if not all libraries on Windows are linked dynamically against the VC runtime as no one is going to use the exact same version in their development environment and libraries that do offer static linking, provide it as an option rather than the only choice.
/MTd and /MDd versions allows for debug builds of applications. The essential though is providing a pre-built /MD. Without it, Filament may as well have no pre-built binaries for Windows at all.

A debug app can't link again a non debug library??

@romainguy no :(

All modules passed to a given invocation of the linker must have been compiled with the same run-time library compiler option (/MD, /MT, /LD).

It's a really unfortunately limitation. I'd be okay with building additional Filament variants, at least /MD to start with. We even have a CMake option for this already. My only concern is that this increases CI build times, especially if we also include debug builds.
@romainguy thoughts?

We only need to include those extra binaries in the post submit and release CI builds. We can keep presubmit fast.

This release contains debug libraries: https://github.com/google/filament/releases/tag/sceneform-1.7pr6


Less loader issues

I don' know if this is an issue or what, I've installed a fresh installation of electron-vue and I've added less-loader and less to the main package.json
renderer
   template/
     main.less

inside renderer main.js
import './template/less/main.less'

I've got this issue, I've been using electron-vue since 1.0 but this is the first time I've encountered this issue. I can't seem to fix this.
  Module parse failed: /foo/app/src/renderer/template/less/main.less Unexpected character '@' (9:0)
         You may need an appropriate loader to handle this file type.

Don't you also need to modify the webpack config to accommodate LESS?

Let me check if it works, the last time I used this works gracefully.

@rdpascua
Installing less and less-loader will only allow you to use <style lang="less"> in your Vue component files. If you are wanting to also manually import Less files in your JS, then you must also add the loader to the webpack configuration. You can bypass this using @import in your App.vue's <style> tag.

I can close this @SimulatedGREG thankyou for your support.


Add support for google_compute_region_per_instance_config

As done with issue #1644, the google_compute_region_instance_group_manager resource needs to be updated to take into account the quantity of google_compute_region_per_instance_config.

@golgeek thanks for your contributions! This is now live as part of the v0.10 release


Generating images

Hey there,
I once trained my custom dataset with 100 images with below configure (64 resolution)
!python3 run_100_shot.py --dataset=100-custom --resolution=64

and its sample at result dir is a concatenated image consists of 1024 small images. I could easily separate them and have 1000 images. That is good!
-The problem is when I make --resolution=256, it samples only a 120 small images at directory. Is there anyway that I could sample more images?!  like again 1024 images!
Thanks for your response

You may set size='8k' at this line to see more images, or add a custom size here. But note that this will significantly increase the size of the image file.

You may set size='8k' at this line to see more images, or add a custom size here. But note that this will significantly increase the size of the image file.

After I turned size = "8k", it gave 1024 images again for resolution=128 and 460 images for resolution=256. I tried to make size="16k" to get also 1024 images for resolution=256, but it did not work and only 1 image generated instead. May I ask if you have any idea, why?

'16k' is not pre-defined. You may add a custom size in this function, e.g.,
    if size == '16k':         gw = np.clip(15360 // training_set.shape[2], 7, 32)         gh = np.clip(8640 // training_set.shape[1], 4, 32)

Hi, so if we set --resolution=256, then the code uses only images with resolution below 256 to train the model? Thanks.

Hi, so if we set --resolution=256, then the code uses only images with resolution below 256 to train the model? Thanks.

Hi, so if we set --resolution=256, then the code uses only images with resolution below 256 to train the model? Thanks.

The code will resize all images to 256x256.

Hi, so if we set --resolution=256, then the code uses only images with resolution below 256 to train the model? Thanks.

The code will resize all images to 256x256.


SPFarm resource should be able to recreate a deleted CentralAdmin

Details of the scenario you try and problem that is occurring:
After initial provisioning, delivery resource was having problems with central admin and deleted the CA site from IIS. Re-running the DSC, SPFarm's Test-TargetResource returned true, so it skipped Set-TargetResource. Looking at the code, it seems the test function is only checking for the Ensure param and not doing further testing if the resource is supposed to provision central admin to make sure central admin is indeed provisioned. Also, Yorick, just a reminder from our chat that you mentioned you'd probably need to update Set as well, since the current method will return an error if the farm already exists.
The DSC configuration that is using the resource:
PLA
Version of the Operating System and PowerShell the DSC Target Node is running:
WS2016, PS 5.1
Version of SharePoint that is used (e.g. SharePoint 2016):
2016
Version of the DSC module you're using:
2.2 preview

Closed via PR #826


login: Gboard clipboard doesn't obscure password

zulip-flutter
zulip-mobile

Hmm, good find!
This would definitely be worth spending a bit of time looking for an upstream Flutter issue about. Or if there isn't one, then making a small repro and reporting the issue.


Fix “wrong number of arguments” error

[x] Have you followed the guidelines in our Contributing document?
[x] Have you checked to ensure there aren't other open Pull Requests for the same change?
[x] Have you added an explanation of what your changes do and why you'd like us to include them?
[ ] Have you written new tests for your changes? Here's an example.

[ ] Have you successfully run brew tests with your changes locally? Seven failing tests locally but none of them seem related.

This PR fixes an error introduced in #8187, which would surface on certain brew install/brew reinstall/brew upgrade failures.
Example:
==> Patching
patching file default_out.txt
Hunk #2 FAILED at 11.
1 out of 2 hunks FAILED -- saving rejects to file default_out.txt.rej
Error: wrong number of arguments (given 3, expected 2)
/usr/local/Homebrew/Library/Homebrew/reinstall.rb:77:in `restore_backup'
/usr/local/Homebrew/Library/Homebrew/reinstall.rb:52:in `block in reinstall_formula'
/usr/local/Homebrew/Library/Homebrew/utils.rb:377:in `ignore_interrupts'
/usr/local/Homebrew/Library/Homebrew/reinstall.rb:52:in `rescue in reinstall_formula'
/usr/local/Homebrew/Library/Homebrew/reinstall.rb:10:in `reinstall_formula'
/usr/local/Homebrew/Library/Homebrew/cmd/reinstall.rb:71:in `block in reinstall'
/usr/local/Homebrew/Library/Homebrew/cmd/reinstall.rb:65:in `each'
/usr/local/Homebrew/Library/Homebrew/cmd/reinstall.rb:65:in `reinstall'
/usr/local/Homebrew/Library/Homebrew/brew.rb:112:in `<main>'

Thanks @claui!


Added the Brittany Morris  text file.

I am merging my local branch into my main branch.

I am merging my local branch into my main branch.


Could not find language example

Hi there
I am having trouble with integrating svelte-docs. In one of my files in components directory I use the example block as per docs. I get the following error:
Could not find the language 'example', did you forget to load/include a language module?
[!] (plugin svelte) Error: Unknown language: "example"
Please report this to https://github.com/markedjs/marked.
src/pages/components/accordion.md
Error: Unknown language: "example"
Please report this to https://github.com/markedjs/marked.
    at Object.highlight (/stretch-svelte-docs/node_modules/highlight.js/lib/highlight.js:742:13)
    at Object.highlight (/stretch-svelte-docs/node_modules/@svelte-docs/core/rollup.config.js:541:25)
    at Renderer.code (/stretch-svelte-docs/node_modules/marked/src/Renderer.js:18:32)
    at Parser.parse (/stretch-svelte-docs/node_modules/marked/src/Parser.js:74:32)
    at Function.parse (/stretch-svelte-docs/node_modules/marked/src/Parser.js:27:19)
    at marked (/stretch-svelte-docs/node_modules/marked/src/marked.js:108:19)
    at markup (/stretch-svelte-docs/node_modules/svelte-preprocess-markdown/dist/index.js:1:5259)
    at preprocess (/stretch-svelte-docs/node_modules/svelte/src/compiler/preprocess/index.ts:86:27)

I have added to config :
const {markdown} = require('svelte-preprocess-markdown')

module.exports = {
    // if you will serve docs in subdirictory use '/subdir/'
    basepath: '/',

    // theme
    theme: 'default',

    title: {
        // constant part of page title
        main: 'Stretch UI',

        // use first header's content as a part of page's title
        // it looks for `# Header` and `## Header` on the current page
        header: true,
    },

    // URL to your favicon
    favicon: 'static/favicon.png',

    pathes: {
        // directory for files, generated in development mode
        dev: '__DOCS__/dev',

        // directory for builted documentaton
        build: '__DOCS__/dist',
    },

    aliases:{

    },

    preprocess: [

                 markdown({filetype: 'svelte'}),

    ]

}

Do I also need to create a rollup.config.js? There wasn't one installed when I initialized the svelte-docs project so I assumed it is not needed.
Thanks!

Do you use example block inside other example block?
Can I look the accrodion.md file content?

Hi @AlexxNB -
I got it working - I think it was how the imported components were referencing each other.
I resolve svelte files without .svelte extension in my projects. I think the missing extensions in the components were throwing things off. The error is gone.
But now I am running into a different problem. I'll open a new issue to keep things separate. I'll close this as well.


For CLI users - allow root_password for wallet unlock?

Need to chat with @lyoshenka and @jessopb about this prospect.
Users who lock their wallets start lbry with:
lbrynet start, lbrynet wallet status
They are often used to their wallet lock password being their "LBRY password". However with the wallet sync system, their "LBRY password" will be their root_password. This means that they're going to use their root_password as their unlock password, perhaps whether we like it or not as currently designed.
Is that okay? Should we do something about it? Maybe have the KDF generate the unlock password as yet another output, and work that into the CLI workflow?

Pending a meeting, hopefully Monday

We are considering a solution to this issue. As we were discussing it, we stepped on one or two other issues that are intertwined with this one.
I'd like to run some possible solutions by interested parties. At this point I think it makes sense to start from the beginning to explain what (I think) we've done so far, and some proposals about what we could do next. The interested parties can correct me or object to what I suggest and we can go from there.
So let's talk passwords, CLI, the SDK, KDFs, and salts.
Current Desgin
This is what things look like now, as I understand them:
flowchart LR
  classDef secure-0 fill:#f55;
  classDef secure-1 fill:#fcc;
  classDef secure-2 fill:orange;
  classDef secure-3 fill:#7f7;
  classDef light-blue fill:#CCF;

  KeyStrongEncryption:::secure-3
  KeyStrongInteractive:::secure-2
  KeyWeakerThanInteractive:::secure-1
  KeyVeryWeak:::secure-0

  RootPassword:::secure-0
  SDKKDF:::secure-1

  EncryptedWalletInApp:::secure-1
  EncryptedWalletInSDK:::secure-1

  RootPassword -->  SDKKDF
  RootPassword --Odysee Log In--> Odysee

  SDKSalt:::light-blue
  SDKSalt --> SDKKDF

  SDKKDF --Wallet Encryption Key--> EncryptedWalletInSDK
  Wallet --> EncryptedWalletInSDK
  EncryptedWalletInSDK --> EncryptedWalletInApp --> Odysee

  RootPassword[Root Password]

  subgraph App
    direction RL
    EncryptedWalletInApp[Encrypted Wallet]
  end

  subgraph SDK
    direction RL
    subgraph SDKSalt[SDK Salt]
      SDKSaltNotes[Randomly Generated Every Sync Apply
Attached to encrypted wallet]
    end
    SDKKDF[SDK KDF
Scrypt
n=2^13]
    Wallet
    EncryptedWalletInSDK[Encrypted Wallet]
  end

  subgraph Key[Key - Based on recommendations for KDF strength]
    direction TB
    subgraph _Key[...]
      KeyStrongEncryption[Strong enough for encrypted data]
      KeyStrongInteractive[Strong enough for interactive login]
      KeyWeakerThanInteractive[Too weak for interactive login]
      KeyVeryWeak[No KDF, vulnerable to dictionary attacks]
    end
  end

Our incoming goal was to create a single password that the user enters (still their "LBRY password" from their perspective) that will secure their wallet, and also generate a login password for a sync server that (unlike the above design) will not give the server the ability to decrypt the wallet. Adding a KDF to the app is the obvious tool for that, which we'll see below.
But first: along the way, we realized that the SDK's KDF appears to be (assuming we're reading it correctly) using a KDF that is weaker than recommended.
Scrypt recommendations
To get a sense for the recommended parameters to Scrypt that I referred to in the above chart, I use this blog post by the guy formerly in charge of cryptography at security on the Go team.
There are two levels: One for interactive logins, and one for file encryption. I assume this is because the former can be reset in case of a breach, but the latter has sensitive data that is vulnerable forever. For a server to process an incoming password, I think the interactive login standard is appropriate. For encrypting our wallets, I would think the file encryption standard applies.
The 3 scrypt parameters are called p, r, and N. The recommendations always seem to be p=1 and r=8. N is what varies.
2009

Interactive login: N=2^14
File encryption: N=2^20

2017

Interactive login: N=2^15
File encryption: N=2^20 (no change)

So, I think what we want for wallet encryption key is:
p=1 r=8 N=2^20
What I see in the SDK code is:
p=1 r=16 N=2^13
N is less than what was recommended for interactive logins in 2009, though r is double the recommendations. From the blog post, it sounds like doubling r may have a similar effect to doubling N (though we shouldn't rely on it), so maybe it's good enough for interactive logins circa 2009. But, still below recommendations for file encryption.
The likely reason for choosing a low number for the SDK is that N=2^20 takes a few seconds to generate (at least that's my experience when outputting three 32 bit keys). But I'm actually curious if there's more to that decision.
Sync Server Design: One KDF behind everything
The first design we came up with for the sync server (and which was our assumed plan until a week or so ago) was to have the password be the "root password". It goes into a KDF, which outputs:

The login password to the sync server
The Sync Apply password, used for encrypting the wallet for syncing on a remote server
The HMAC key (which could have been the Sync Apply password but since the SDK is a black box vis a vis the App, we just kept it independent)

We thought (incorrectly, as we'll see soon) that we could leave wallet locking to the user as an independent matter.
(BTW at this point we didn't consider that the SDK had its own KDF.)
flowchart LR
  classDef secure-0 fill:#f55;
  classDef secure-1 fill:#fcc;
  classDef secure-2 fill:orange;
  classDef secure-3 fill:#7f7;

  KeyStrongEncryption:::secure-3
  KeyStrongInteractive:::secure-2
  KeyWeakerThanInteractive:::secure-1
  KeyVeryWeak:::secure-0

  RootPassword:::secure-0
  SDKKDF:::secure-1
  ServerPasswordKDF:::secure-2
  AppKDF:::secure-3

  ServerPasswordHash:::secure-3

  EncryptedWalletOnServer:::secure-3
  EncryptedWalletInApp:::secure-3
  EncryptedWalletInSDK:::secure-3

  HMACInApp:::secure-3
  HMACOnServer:::secure-3

  RootPassword -->  AppKDF

  AppKDF --Sync Apply Pasword--> SDKKDF
  AppKDF --Sync Server Password--> ServerPasswordKDF --> ServerPasswordHash
  AppKDF --HMACKey--> HMACInApp

  SDKKDF --Wallet Encryption Key--> EncryptedWalletInSDK
  Wallet --> EncryptedWalletInSDK
  EncryptedWalletInApp --> HMACInApp --> HMACOnServer
  EncryptedWalletInSDK --> EncryptedWalletInApp --> EncryptedWalletOnServer

  RootPassword[Root Password]

  subgraph App
    direction RL
    AppKDF[App KDF
Scrypt
n=2^20]
    EncryptedWalletInApp[Encrypted Wallet]
    HMACInApp[HMAC]
  end

  subgraph SDK
    direction RL
    SDKKDF[SDK KDF
Scrypt
n=2^13]
    Wallet
    EncryptedWalletInSDK[Encrypted Wallet]
  end

  subgraph Server
    direction RL
    ServerPasswordKDF[Password KDF
Scrypt
n=2^15]
    subgraph Database
      ServerPasswordHash[Password Hash]
      EncryptedWalletOnServer[Encrypted Wallet]
      HMACOnServer[HMAC]
    end
  end

  subgraph Key[Key - Based on recommendations for KDF strength]
    direction TB
    subgraph _Key[...]
      KeyStrongEncryption[Strong enough for encrypted data]
      KeyStrongInteractive[Strong enough for interactive login]
      KeyWeakerThanInteractive[Too weak for interactive login]
      KeyVeryWeak[No KDF, vulnerable to dictionary attacks]
    end
  end

We did it because we wanted one password for everything. It also happens to solve the SDK's KDF weakness, since the input is already strong. It also adds an HMAC which the SDK is missing.
The main problem with this design is that users who lock/unlock their wallet are used to entering in their "LBRY password" in the CLI for this purpose. According to this design, the "LBRY password" will become the Root Password, which is designed to be an input into the KDF. The Sync Apply password would be one of the KDF's outputs. As it turns out, the wallet locking password must be the same as the sync apply password.
flowchart LR
  RootPassword --> KDF
  KDF --> SyncApplyPassword

  RootPassword --Equals--> WalletLockingPassword
  WalletLockingPassword --Equals-->SyncApplyPassword

  SyncApplyPassword[Sync Apply Password]
  RootPassword[Root Password]
  WalletLockingPassword[Wallet Locking Password]

This is impossible, so this plan will not work.
As a small aside: we arguably don't even need the server-side scrypt for storing passwords since it's random enough coming in. We could just use a SHA256. But we're keeping it for now just to be standard about it.
Sync Server Design: Pass Root Password both to app and SDK
A hypothetical update to the first plan: Since the SDK has its own KDF, we can just pass the Root Password to both the App and the SDK. This way, all of the keys are safely generated from the same Root Password as we desire, and yet the SDK handles the Sync Apply and Wallet Lock as it did before.
flowchart LR
  classDef secure-0 fill:#f55;
  classDef secure-1 fill:#fcc;
  classDef secure-2 fill:orange;
  classDef secure-3 fill:#7f7;

  KeyStrongEncryption:::secure-3
  KeyStrongInteractive:::secure-2
  KeyWeakerThanInteractive:::secure-1
  KeyVeryWeak:::secure-0

  RootPassword:::secure-0
  SDKKDF:::secure-1
  ServerPasswordKDF:::secure-2
  AppKDF:::secure-3

  ServerPasswordHash:::secure-3

  EncryptedWalletOnServer:::secure-1
  EncryptedWalletInApp:::secure-1
  EncryptedWalletInSDK:::secure-1

  HMACInApp:::secure-3
  HMACOnServer:::secure-3

  RootPassword -->  AppKDF

  RootPassword --> SDKKDF
  AppKDF --Sync Server Password--> ServerPasswordKDF --> ServerPasswordHash
  AppKDF --HMACKey--> HMACInApp

  SDKKDF --Wallet Encryption Key--> EncryptedWalletInSDK
  Wallet --> EncryptedWalletInSDK
  EncryptedWalletInApp --> HMACInApp --> HMACOnServer
  EncryptedWalletInSDK --> EncryptedWalletInApp --> EncryptedWalletOnServer

  RootPassword[Root Password]

  subgraph App
    direction RL
    AppKDF[App KDF
Scrypt
n=2^20]
    EncryptedWalletInApp[Encrypted Wallet]
    HMACInApp[HMAC]
  end

  subgraph SDK
    direction RL
    SDKKDF[SDK KDF
Scrypt
n=2^13]
    Wallet
    EncryptedWalletInSDK[Encrypted Wallet]
  end

  subgraph Server
    direction RL
    ServerPasswordKDF[Password KDF
Scrypt
n=2^15]
    subgraph Database
      ServerPasswordHash[Password Hash]
      EncryptedWalletOnServer[Encrypted Wallet]
      HMACOnServer[HMAC]
    end
  end

  subgraph Key[Key - Based on recommendations for KDF strength]
    direction TB
    subgraph _Key[...]
      KeyStrongEncryption[Strong enough for encrypted data]
      KeyStrongInteractive[Strong enough for interactive login]
      KeyWeakerThanInteractive[Too weak for interactive login]
      KeyVeryWeak[No KDF, vulnerable to dictionary attacks]
    end
  end

The problem here is that we have un-fixed the problem of the SDK's KDF being arguably too weak for its job. Thus, we've brought it back to the status quo, which we'd like to fix.
Sync Server Design: Strengthen the SDK's KDF
We could make the SDK's KDF have N=2^20. The App's KDF still generates the HMAC key, which I think (auditors?) should be strong enough for wallet encryption, so I'm keeping it at N=2^20.
flowchart LR
  classDef secure-0 fill:#f55;
  classDef secure-1 fill:#fcc;
  classDef secure-2 fill:orange;
  classDef secure-3 fill:#7f7;

  KeyStrongEncryption:::secure-3
  KeyStrongInteractive:::secure-2
  KeyWeakerThanInteractive:::secure-1
  KeyVeryWeak:::secure-0

  RootPassword:::secure-0
  SDKKDF:::secure-3
  ServerPasswordKDF:::secure-2
  AppKDF:::secure-3

  ServerPasswordHash:::secure-3

  EncryptedWalletOnServer:::secure-3
  EncryptedWalletInApp:::secure-3
  EncryptedWalletInSDK:::secure-3

  HMACInApp:::secure-3
  HMACOnServer:::secure-3

  RootPassword -->  AppKDF

  RootPassword --> SDKKDF
  AppKDF --Sync Server Password--> ServerPasswordKDF --> ServerPasswordHash
  AppKDF --HMACKey--> HMACInApp

  SDKKDF --Wallet Encryption Key--> EncryptedWalletInSDK
  Wallet --> EncryptedWalletInSDK
  EncryptedWalletInApp --> HMACInApp --> HMACOnServer
  EncryptedWalletInSDK --> EncryptedWalletInApp --> EncryptedWalletOnServer

  RootPassword[Root Password]

  subgraph App
    direction RL
    AppKDF[App KDF
Scrypt
n=2^20]
    EncryptedWalletInApp[Encrypted Wallet]
    HMACInApp[HMAC]
  end

  subgraph SDK
    direction RL
    SDKKDF[SDK KDF
Scrypt
n=2^20]
    Wallet
    EncryptedWalletInSDK[Encrypted Wallet]
  end

  subgraph Server
    direction RL
    ServerPasswordKDF[Password KDF
Scrypt
n=2^15]
    subgraph Database
      ServerPasswordHash[Password Hash]
      EncryptedWalletOnServer[Encrypted Wallet]
      HMACOnServer[HMAC]
    end
  end

  subgraph Key[Key - Based on recommendations for KDF strength]
    direction TB
    subgraph _Key[...]
      KeyStrongEncryption[Strong enough for encrypted data]
      KeyStrongInteractive[Strong enough for interactive login]
      KeyWeakerThanInteractive[Too weak for interactive login]
      KeyVeryWeak[No KDF, vulnerable to dictionary attacks]
    end
  end

But there's a bit more to consider...
The salt for each KDF
For further implications of this design, we should look at the salt we would like to use in the App, and the one currently used by the SDK.
flowchart LR
  classDef secure-0 fill:#f55;
  classDef secure-1 fill:#fcc;
  classDef secure-2 fill:orange;
  classDef secure-3 fill:#7f7;
  classDef light-blue fill:#CCF;

  RootPassword:::secure-0
  SDKKDF:::secure-3
  AppKDF:::secure-3

  EncryptedWalletOnServer:::secure-3
  EncryptedWalletInApp:::secure-3
  EncryptedWalletInSDK:::secure-3

  SaltSeed:::light-blue
  ServerSaltSeed:::light-blue
  SDKSalt:::light-blue

  HMACInApp:::secure-3
  HMACOnServer:::secure-3

  ServerSaltSeed <--> SaltSeed
  SaltSeed --> AppSalt
  EmailAddress --> AppSalt
  SDKSalt --> SDKKDF

  RootPassword -->  AppKDF

  RootPassword --> SDKKDF
  AppKDF --HMACKey--> HMACInApp

  SDKKDF --Wallet Encryption Key--> EncryptedWalletInSDK
  EncryptedWalletInApp --> HMACInApp --> HMACOnServer
  EncryptedWalletInSDK --> EncryptedWalletInApp --> EncryptedWalletOnServer

  AppSalt --> AppKDF

  RootPassword[Root Password]

  subgraph App
    direction RL
    AppKDF[App KDF
Scrypt
n=2^20]
    EncryptedWalletInApp[Encrypted Wallet]
    HMACInApp[HMAC]
    AppSalt[App Salt]
    subgraph SaltSeed[Salt Seed]
      SaltSeedNotes[Randomly Generated On Registration
Shared Between Clients]
    end
  end

  subgraph SDK
    direction RL
    SDKKDF[SDK KDF
Scrypt
n=2^20]
    EncryptedWalletInSDK[Encrypted Wallet]
    subgraph SDKSalt[SDK Salt]
      SDKSaltNotes[Randomly Generated Every Sync Apply
Attached to encrypted wallet]
    end
  end

  subgraph Server
    direction RL
    subgraph Database
      EncryptedWalletOnServer[Encrypted Wallet]
      HMACOnServer[HMAC]
      subgraph ServerSaltSeed[Salt Seed]
        ServerSaltSeedNotes[Randomly Generated On Registration
Shared Between Clients]
      end
    end
  end

In the App, we're implementing the salt system specified by Standard Notes. The salt used for the KDF is derived from A) the user's email and B) a "Salt Seed". The salt seed is randomly generated by a client upon registration, and passed between clients by the server. The reason for this system, I think (my understanding is vague still), is that we would not trust the server to pass around the salt per se, because a malicious server could give a fake salt and conceivably steal passwords. However because it's combined with an email address, which is different for each user, stealing passwords by producing a fake salt seed is not practical.
However, the SDK is (it appears to me) generating random salts for every Sync Apply, and attaching them to the encrypted wallet, and trusting the server to return it back as-is. According to this model, it's not as secure. However, the app is performing an HMAC on the encrypted wallet, and the HMAC key is generated using the salt generated with the Salt Seed + Email. I think (again, pending audit) this would prevent the server from providing a fake encrypted wallet salt, since we know it's the same thing we sent the server. So if I'm right, the SDK is safe to continue generating random salts.
So from a security standpoint, this likely works out okay (pending the opinion of an auditor).
With all that said, there's another good reason not to continue doing this. Unlike the app, the SDK has a new salt every time it runs the KDF. That means that it can't cache the encryption key that comes out of the KDF. With n=2^13 scrypt that's no problem, but with n=2^20 the user will get annoyed. Every single sync apply would be slow.
Sync Server Design: Shared salt between App and SDK
So with in mind, we might consider having the app supply the salt for the SDK, so the SDK can cache the output of the KDF.
flowchart LR
  classDef secure-0 fill:#f55;
  classDef secure-1 fill:#fcc;
  classDef secure-2 fill:orange;
  classDef secure-3 fill:#7f7;
  classDef light-blue fill:#CCF;

  RootPassword:::secure-0
  SDKKDF:::secure-3
  AppKDF:::secure-3

  EncryptedWalletOnServer:::secure-3
  EncryptedWalletInApp:::secure-3
  EncryptedWalletInSDK:::secure-3

  SaltSeed:::light-blue
  ServerSaltSeed:::light-blue
  SDKSalt:::light-blue

  HMACInApp:::secure-3
  HMACOnServer:::secure-3

  ServerSaltSeed <--> SaltSeed
  SaltSeed --> AppSalt
  EmailAddress --> AppSalt
  AppSalt --> SDKSalt
  SDKSalt --> SDKKDF

  RootPassword -->  AppKDF

  RootPassword --> SDKKDF
  AppKDF --HMACKey--> HMACInApp

  SDKKDF --Wallet Encryption Key--> Cache --Wallet Encryption Key--> EncryptedWalletInSDK
  EncryptedWalletInApp --> HMACInApp --> HMACOnServer
  EncryptedWalletInSDK --> EncryptedWalletInApp --> EncryptedWalletOnServer

  AppSalt --> AppKDF

  RootPassword[Root Password]

  subgraph App
    direction RL
    AppKDF[App KDF
Scrypt
n=2^20]
    EncryptedWalletInApp[Encrypted Wallet]
    HMACInApp[HMAC]
    AppSalt[App Salt]
    subgraph SaltSeed[Salt Seed]
      SaltSeedNotes[Randomly Generated On Registration
Shared Between Clients]
    end
  end

  subgraph SDK
    direction RL
    SDKKDF[SDK KDF
Scrypt
n=2^20]
    EncryptedWalletInSDK[Encrypted Wallet]
    SDKSalt[App Salt]
    Cache
  end

  subgraph Server
    direction RL
    subgraph Database
      EncryptedWalletOnServer[Encrypted Wallet]
      HMACOnServer[HMAC]
      subgraph ServerSaltSeed[Salt Seed]
        ServerSaltSeedNotes[Randomly Generated On Registration
Shared Between Clients]
      end
    end
  end

We just need to take care to put some other (known, constant) initialization into the salt as it enters the SDK, so that the SDK and APP don't accidentally produce identical keys.

There's one more possible solution that deserves a chart, which I forgot to throw out there.
Sync Server Design - Encrypt Twice
We could pass the root password to the SDK as before, keeping the same usability wrt wallet locking.
Wallet locking would be stuck at r=16 N=2^13, but sending it to the remote server would be full strength because the app encrypts it again at N=2^20 strength. Later, if we get the SDK's wallet encryption up to 2^20, we can stop encrypting twice. The only reason we'd do this is that it's (perhaps) easier to do in a new design than changing the existing design of the SDK.
I think the biggest objection here was that it just seems like a messy design to have this double encryption. Perhaps if users get their hands on a double encrypted wallet they could get confused as to why it doesn't work with sync apply, etc.
flowchart LR
  classDef secure-0 fill:#f55;
  classDef secure-1 fill:#fcc;
  classDef secure-2 fill:orange;
  classDef secure-3 fill:#7f7;

  KeyStrongEncryption:::secure-3
  KeyStrongInteractive:::secure-2
  KeyWeakerThanInteractive:::secure-1
  KeyVeryWeak:::secure-0

  RootPassword:::secure-0
  SDKKDF:::secure-1
  ServerPasswordKDF:::secure-2
  AppKDF:::secure-3

  ServerPasswordHash:::secure-3

  DoubleEncryptedWalletOnServer:::secure-3
  EncryptedWalletInApp:::secure-1
  DoubleEncryptedWalletInApp:::secure-3
  EncryptedWalletInSDK:::secure-1

  HMACInApp:::secure-3
  HMACOnServer:::secure-3

  RootPassword -->  AppKDF

  RootPassword --> SDKKDF
  AppKDF --Sync Server Password--> ServerPasswordKDF --> ServerPasswordHash
  AppKDF --HMACKey--> HMACInApp
  AppKDF --App Wallet Encryption Key--> DoubleEncryptedWalletInApp
  EncryptedWalletInApp --> DoubleEncryptedWalletInApp

  SDKKDF --SDK Wallet Encryption Key--> EncryptedWalletInSDK
  Wallet --> EncryptedWalletInSDK --> EncryptedWalletInApp
  DoubleEncryptedWalletInApp --> HMACInApp --> HMACOnServer
  DoubleEncryptedWalletInApp --> DoubleEncryptedWalletOnServer

  RootPassword[Root Password]

  subgraph App
    direction RL
    AppKDF[App KDF
Scrypt
n=2^20]
    EncryptedWalletInApp[Encrypted Wallet]
    DoubleEncryptedWalletInApp[Double Encrypted Wallet]
    HMACInApp[HMAC]
  end

  subgraph SDK
    direction RL
    SDKKDF[SDK KDF
Scrypt
n=2^13]
    Wallet
    EncryptedWalletInSDK[Encrypted Wallet]
  end

  subgraph Server
    direction RL
    ServerPasswordKDF[Password KDF
Scrypt
n=2^15]
    subgraph Database
      ServerPasswordHash[Password Hash]
      DoubleEncryptedWalletOnServer[Double Encrypted Wallet]
      HMACOnServer[HMAC]
    end
  end

  subgraph Key[Key - Based on recommendations for KDF strength]
    direction TB
    subgraph _Key[...]
      KeyStrongEncryption[Strong enough for encrypted data]
      KeyStrongInteractive[Strong enough for interactive login]
      KeyWeakerThanInteractive[Too weak for interactive login]
      KeyVeryWeak[No KDF, vulnerable to dictionary attacks]
    end
  end

I spoke to @lyoshenka and @jessopb and thought about it a bit more. We're in agreement about what to do with the app, but I have a few options to consider for the SDK. I think at this point I'd be most interested in @eukreign's input, though I may go ahead and try to implement the first listed solution.
App
Pass the root password directly to the SDK.
This is the status quo as far as wallet encryption strength, though we'll now verify it with the HMAC on the app side. Whatever else we do below, this is going to be one of the steps, so I'll do this soon.
SDK
Strengthen KDF, reuse salt, cache KDF
Change the SDK's KDF to r=8 N=2^20. Store an in-memory cache:
{user_id: (password, salt, encryption_key) // encryption_key is the KDF output

On sync apply:

If the cache item for user_id doesn't exist, we generate it with a random salt.
If the cache item for user_id exists but the password doesn't match, we regenerate it with a random salt.
If the cache item for user_id exists and the password matches, we use the existing salt and encryption_key.

Every time we restart the SDK, the cache is cleared so we generate a new salt on the first sync apply (we don't want to save secrets to storage). Every time we change passwords, it won't match what's in the cache so we know to generate a new salt on the next sync apply and update the cache. So, the slowness only happens on app start and password change.
To consider:

This assumes it's safe to keep secrets around in memory.
This assumes there wasn't a good reason to generate a new salt every sync-apply
This is still slower than the status quo because we need to run the slow KDF occasionally.
This relies on the HMAC to protect us from the server giving us back a fake salt. (which status quo doesn't even have)
Maybe Odysee restarts the SDK a lot and they'd feel the pain?

Shared salt between App and SDK
This is the same as the diagram under "Sync Server Design: Shared salt between App and SDK" above. Pass the salt from the app to the SDK.
This is more difficult than the cache solution above, and it may not work given that CLI users don't necessarily use the app. But, it will be a bit faster since we wouldn't need to run the KDF every SDK restart. Maybe not much of a speed improvement at all.
Encrypt Twice
See "Sync Server Design - Encrypt Twice" above. Ugly solution in a way but it's simpler.
Strengthen the SDK a little bit for now, maybe improve it later
This is a relatively easy partial solution. If we do this, it lets us kick the can down the road a little with the above solutions assuming they're too much to do now.
Don't mess with the salt, just beef up the KDF as much as we tolerably can for sync applies. Maybe 2^17 or 2^18.
Slightly more involved: maybe we could make the strength a setting. And for lay users, we could give them two options: Faster (2^17 or 2^18) or More Secure (2^20).
But, it sucks to create more UI just to avoid other work. Hopefully the first cache solution is simple enough.

We decided that we can separate out the question of the SDK KDF strength. I'll write something up about it elsewhere.
I passed the root password to the SDK: https://github.com/lbryio/wallet-sync-server/commit/6c9b9d07b2cb272e03f52eee67010024de2ba086


[Improvement][E2E] use testcontainers host

Purpose of the pull request

Brief change log

Verify this pull request

This pull request is code cleanup without any test coverage.
(or)
This pull request is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:

Codecov Report

Merging #8224 (ffa00ac) into dev (f4ac13b) will increase coverage by 3.56%.
The diff coverage is 39.72%.

@@             Coverage Diff              @@
##                dev    #8224      +/-   ##
============================================
+ Coverage     41.40%   44.97%   +3.56%
- Complexity     3802     3953     +151
============================================
  Files           658      672      +14
  Lines         27657    26218    -1439
  Branches       3132     2826     -306
============================================
+ Hits          11451    11791     +340
+ Misses        15107    13302    -1805
- Partials       1099     1125      +26

Impacted Files
Coverage Δ

...scheduler/api/controller/DataSourceController.java
42.85% <0.00%> (-7.15%)
:arrow_down:

.../org/apache/dolphinscheduler/common/Constants.java
80.00% <ø> (ø)

...pache/dolphinscheduler/common/utils/JSONUtils.java
68.47% <0.00%> (-4.78%)
:arrow_down:

...hinscheduler/common/utils/TaskParametersUtils.java
54.54% <0.00%> (-2.60%)
:arrow_down:

.../dolphinscheduler/dao/entity/DqComparisonType.java
0.00% <0.00%> (ø)

...e/dolphinscheduler/dao/entity/DqExecuteResult.java
0.00% <0.00%> (ø)

...eduler/dao/entity/DqExecuteResultAlertContent.java
0.00% <0.00%> (ø)

...org/apache/dolphinscheduler/dao/entity/DqRule.java
0.00% <0.00%> (ø)

.../dolphinscheduler/dao/entity/DqRuleExecuteSql.java
0.00% <0.00%> (ø)

.../dolphinscheduler/dao/entity/DqRuleInputEntry.java
0.00% <0.00%> (ø)

... and 173 more

Continue to review full report at Codecov.

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


Incremental model ambiguous error

Hi guys, Sorry for the inconvenience again, but we need some help with incremental models, and sometimes it's hard to find information about dbt and clickhouse, so I'm turning to you guys.
We make an incremental model, and then run it, at the first time it work's normal.
But when we try to run this model again an error occur:
When searching for a relation, dbt found an approximate match. Instead of guessing
20:27:09    which relation to use, dbt will move on. Please delete test.ORDERS_INCREMENTAL, or rename it to be less ambiguous.
20:27:09    Searched for: test.orders_incremental

My model (ORDERS_INCREMENTAL.sql):
{{
    config(
        order_by='(ORDER_STORE,ORDER_DATE,ORDER_ID)',
        engine='MergeTree()',
        materialized='incremental',
        unique_key=['ORDER_ID','ORDER_DATE','ORDER_STORE'],
        inserts_only=True
        )
}}

SELECT ORDER_ID,ORDER_DATE,ORDER_STORE FROM {{source('prod', 'ORDERS')}}
    LIMIT 2

{% if is_incremental() %}

  where ORDER_DATE > (select min(ORDER_DATE) from {{this}})

{% endif %}

Am i doing something wrong?

Maybe you change the structure of the model? And because of this, this error occurs?

Thnk's for answer, so we didn't change anything,  we drop table in the database and try to run twice, it Always work's at the first time but always on the second run it fail's.

Hi guys,
Today we're trying the --store-failures flag, and we're having the same problem of the incremental models.
15:26:14    When searching for a relation, dbt found an approximate match. Instead of guessing 15:26:14    which relation to use, dbt will move on. Please delete context_testing_dbt_test__audit.not_null_standart_seller_PREF_SELLER_STORE, or rename it to be less ambiguous.

What could be causing this with incremental models?

The new Version of dbt-clickhouse==1.2.1 solve the problem.
Thk's guys <3


Failed to activate the tool-bar package

[Enter steps to reproduce below:]

Copy tool-bar-master folder into ~/.atom/packages/
Open atom

Atom Version: 1.0.5
System: Ubuntu 15.04
Thrown From: tool-bar package, v0.1.8
Stack Trace
Failed to activate the tool-bar package
At Cannot find module 'space-pen'

Error: Cannot find module 'space-pen'
    at Module._resolveFilename (module.js:328:15)
    at Function.Module._resolveFilename (/usr/share/atom/resources/app.asar/src/module-cache.js:383:52)
    at Function.Module._load (module.js:270:25)
    at Module.require (module.js:357:17)
    at require (module.js:376:17)
    at Object.<anonymous> (/home/nick/.atom/packages/tool-bar-master/lib/tool-bar-view.coffee:9:10)
    at Object.<anonymous> (/home/nick/.atom/packages/tool-bar-master/lib/tool-bar-view.coffee:251:4)
    at Module._compile (module.js:452:26)
    at Object.requireCoffeeScript (/usr/share/atom/resources/app.asar/node_modules/coffee-cash/lib/coffee-cash.js:85:19)
    at Module.load (module.js:347:32)

Commands

Config
{
  "core": {}
}

Installed Packages
# User
No installed packages

# Dev
No dev packages

You can't just copy a package folder into Atom's package folder. I recommend that you read the docs how to install packages.


Unable to Stream Responses from AWS Lambda

I am facing difficulties in streaming responses from AWS Lambda. Initially, I attempted to use the serverless-http package for this purpose, but I learned that it doesn't support streaming. Subsequently, I switched to the @vendia/serverless-express package, hoping it would resolve the issue. However, even with this package, I can still not achieve streaming functionality.
My code:
const serverless = require("serverless-http"),
  express = require("express"),
  morgan = require("morgan"),
  helmet = require("helmet"),
  bodyParser = require("body-parser"),
  awsServerlessExpress = require("@vendia/serverless-express");

const cors = require("cors");

const rootPrefix = ".",
  coreConstants = require(rootPrefix + "/config/coreConstants"),
  apiRoutes = require(rootPrefix + "/routes/index"),
  setResponseHeader = require(rootPrefix + "/middlewares/setResponseHeader");

// Set worker process title.
process.title = "";

const app = express();

// Use Morgan middleware to log requests
app.use(morgan("combined"));

// Enable CORS
app.use(cors());

// Helmet can help protect the app from some well-known web vulnerabilities by setting HTTP headers appropriately.
app.use(helmet());

// Node.js body parsing middleware. Default limit is 100kb
app.use(bodyParser.json({ limit: "2mb" }));

// Parsing the URL-encoded data with the qs library (extended: true). Default limit is 100kb
app.use(bodyParser.urlencoded({ extended: true, limit: "2mb" }));

app.get("/stream", async (req, res) => {
  res.setHeader("Content-Type", "text/plain");
  for (let i = 0; i < 10; i++) {
    res.write(`Line ${i}\n`);
    await new Promise((resolve) => setTimeout(resolve, 1000));
  }
  res.end();
});

// Set response header to prevent response caching
app.use(setResponseHeader());

// If running in development mode, start the server on port 8080, else export handler for lambda
if (
  coreConstants.ENVIRONMENT === "development" ||
  coreConstants.ENVIRONMENT === "test"
) {
  console.log("Server running on 8080");
  app.listen(8080);
  module.exports = { handler: app };
} else {
  // Export the handler for Lambda on production
  module.exports.handler = awsServerlessExpress({ app })
}

For those curious on streaming support. https://aaronstuyvenberg.com/posts/introducing-response-streaming
Is anyone looking into this for express? I kind of assumed given the popularity this was done already. Totally willing to help if Express itself allows this?

Maybe related. https://github.com/awslabs/aws-lambda-web-adapter/pull/204

@metaskills happy to receive PRs for this. Express does support streaming response https://stackoverflow.com/a/38789462/436540

Hello, Anyone find a solution to stream content?

So I found a temporary workaround: just grab the entire payload from serverlessExpress, wrap it in a stream and send it out via the streaming API. This gives the ability to send bigger payloads out of the lambda but obviously it somewhat defeats the purpose of streaming when the entire response is buffered first. So make sure to give enough memory to the lambda to store these buffers.
const pipeline = require('util').promisify(require('stream').pipeline);
const { Readable } = require('stream');

let serverlessExpressInstance;

const getServerlessExpress = async () => {
  if (!serverlessExpressInstance) {
    serverlessExpressInstance = serverlessExpress({
      app,
      resolutionMode: 'PROMISE',
    });
  }

  return serverlessExpressInstance;
}

// @ts-ignore: https://github.com/aws/aws-lambda-nodejs-runtime-interface-client/issues/74
exports.handler = awslambda.streamifyResponse(async (event, responseStream, context) => {
  const serverlessHandler = await getServerlessExpress();
  const result = await serverlessHandler(event, context, () => { });

  const metadata = {
    statusCode: result.statusCode,
    headers: result.headers,
    cookies: result.cookies,
  };

  let payload;
  if (result.body) {
    payload = Buffer.from(result.body, result.isBase64Encoded ? 'base64' : 'utf8');
  } else {
    payload = Buffer.alloc(0);
  }

  // Assign to the responseStream parameter to prevent accidental reuse of the non-wrapped stream.
  // @ts-ignore: https://github.com/aws/aws-lambda-nodejs-runtime-interface-client/issues/74
  responseStream = awslambda.HttpResponseStream.from(responseStream, metadata);

  await pipeline(
    Readable.from(payload),
    responseStream,
  );
});

I have also encountered some issues when there is no payload to send, only headers. So if your expressjs server returns status code only without any response body, you might encounter a dangling connection. This might be a bug in AWS infrastructure. More info https://github.com/aws/aws-lambda-nodejs-runtime-interface-client/issues/95

Any native support by this library for the lambda streaming response?


op(mul)

Replace PR #34:
some comments by @lispc :

I think the function result_generate should be moved out of test mod into as a method of the gadget.
This method should be called inside assign so values in ExecutionStep will only contain a,b,c. BTW maybe it can be renamed like witness_generate? This type of function(generating mid / temp values) is used widely in zk-proof, which in fact is an important part of the whole witgen/proving process. https://www.cairo-lang.org/docs/how_cairo_works/hints.html gives a great theoretical explanation of this type of computation. pow5 and pow5th give another example
remove some prints
suma/sumb/sumc: these are related to testing. They should be moved out of result_generate. btw rlc_a / ... may be better naming. Since codes of this PR are written two months ago, it is likely the summing logic is no longer consistent with main branch. I find in current main https://github.com/appliedzkp/zkevm-circuits/blob/main/zkevm-circuits/src/evm_circuit/execution/add.rs#L184 just using a/b/c is ok.
add some comments of tmp vars like t0 t1 t2 t3 v0 v1
this PR is for reviewing only. I think checking out a new branch from main and copying&refactoring codes is better compared with merging this branch with main and solving lots of conflict

[x] base on current main branch
[x] well-form witness generating route (as 'assign_witness')
[x] unittests
[x] comments for tmp vars and how the proof works
try resuming suma/b/c calculations into testing

rebase to catching up with current branch
suma/b/c before refactoring is used for generate exec-trace and currently witness.rs would handle the trace simply from opcode so we do not need them anywhere.
Considering the mul circuit can be used for mutiple ops (MUL, DIV, SDIV and xxxMOD) I decide to wrap it into mathgadgets for reusing.

lgtm. will create a pr to EF

PR created at https://github.com/appliedzkp/zkevm-circuits/pull/255


Enhanced Editor - Change action on Save

Save should only Save and not transition back to the template picker form.

I removed the Save All button and pushed the Save button to the right.

Implemented as requested. Save will not transition back to the template picker form.

I
Verified


Add dpi support to the settings window

Refactored the window message hook into a seperate class
and use the message bus for signalling dpi changes
Added a base class for the window that responds to dpi changes

Getting error for The call is ambiguous between the following methods or properties: 'Task.Run(Action)' and 'Task.Run(Func<Task>)'. Probably due to difference in compiler versions as it compiles in visual studio 2019

Updated build agent and reattempting build


Added public wrapper "GetPageSizeStr" of private method

Add public wrapper "GetPageSizeStr" of private method
Having GetPageSizeStr public is useful for having the correct SizeType (properly scaled).
Also, that SizeType can be used to call AddPageFormat(..)

Thanks, Marcus!

:+1:


Haircut filter checkbox not returning correct results

Also asked by Lindsay via email: "haircut selection box does not impact the URL (or the page). Please double-check the functionality."
I (adam) checked it too. fyi if I enter https://test.yourpeer.nyc/personal-care?advanced=yes&personal-care=haircut this doesn't return correct results either.
According to GoGetta, haircuts are at
https://gogetta.nyc/find/location/688c0cbf-b8fa-4fb0-9138-9a9bfc00039a
https://gogetta.nyc/find/location/4dcd483d-eef8-4427-adb4-d6376f2ff1d8
https://gogetta.nyc/find/location/1ebd1a5d-c3a1-404d-aaf2-830552e4deea
https://gogetta.nyc/find/location/7ad659a1-e58f-4a5c-a052-6de931d0fed0

Please can we revisit reinstating the Haircut filter selection @jbeard4

Lifting this up, hoping we can reinstate it @jbeard4


Login - Different font is displayed by the end of email

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

Action Performed:

Go to staging.new.expensify.com
Type long email address<EMAIL_ADDRESS>
Expected Result:
Font should be apply for full email address
Actual Result:
Different font is displayed by the end of email field
Workaround:
Unknown
Platform:

Where is this issue occurring?

Web
Mobile Web

Version Number: <IP_ADDRESS>
Reproducible in staging?: Yes
Reproducible in production?: Yes
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation

Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
View all open jobs on GitHub

Hm, I'm not seeing this on my end.

I'm not able to reproduce this either. @kbecciv is this reproduced on Chrome for Mac or Windows? Both Lauren and I are testing on Mac and not seeting it. I'm going to close for now, but if we can reproduce it for sure, please reopen.


Add missing pageview tracking to analytics

This was missed out when the new functionality was added.
To run the tests, open spec/javascripts/support/LocalTestRunner.html in a browser.

:+1:


Feature request: Incorporate the original text (of the user request) in the emails sent to the user

The idea is to clarify the email (as received by the user) by incorporating the original text (like in a real reply-to)
Today, if a certain user sends two email, and we put a note on one of those issues, the user just receives some text, the one in the note, but he has no way to know what of the (many) emails he has sent to us.
If he/she could see the original email.....The email received will look like that:

Dear team:
We want to add a new item to the menu
Thanks in advance.
Mr. Doom.

Thank you for writing, Mr. Doom. Tomorrow moring i will give you a call and talk about this.
Could that be possible?
Thanks!!
Gerardo

Please read the CONTRIBUTING file why I close this issue.

This has nothing to do with this plugin and can be achieved within redmine.


Fix documentation for OffCanvas#closed event

The documentation incorrectly stated that the event triggers when opened instead of when it closes.

Please use the master branch for docs.

Right on

It seems you have to rebase locally and force-push to the remote.

@DanielRuf FYI we will get rid of the master/develop split by always pushing changes on develop and using master for stable releases only, like a standard GitFlow model.

@DanielRuf FYI we will get rid of the master/develop split by always pushing changes on develop and using master for stable releases only, like a standard GitFlow model.

Sounds good 👍


Unit tests - Mantra.js module

Details
This PR contains changes related to unit testing the Mantra.js module. The Mantra.js module is a key module because it has the functionalities to install mantra into a Vue js application.
To achieve the unit tests of Mantra.js, the following changes were made:

Add unit tests to what the Mantra.js module should export.
Add unit tests to Mantra's assertions utilities such as isTruthy, isObject and isEmptyObject.
Add unit tests to functions that validates the install process such as isValidSchema, isValidStore and isOptionsValid.
Using @vue/test-utils library, add unit tests to the componentRegistration method to ensure that components are globally registered.
Using @vue/test-utils and vuex libraries, add unit tests to the registerStoreModule method to ensure that the schemas module is correctly registered as a Vuex namespaced module.
Using a mock of MantraPlugin, add unit tests to the install method to ensure that:

Components are globally registered.
The schemas module is correctly registered.
The store is saved in MantraPlugin.

Libraries that were added:

@vue/test-utils: Used for testing in a Vue.js environment.
vue and vue-template-compiler: These are dependencies to @vue/test-utils.
vuex: Used for testing in a Vue.js environment.
jest-extended: Jest add-on to extend the built-in matchers.
@types/jest: Jest's interface library. It's used by vs code to start giving suggestions on Jest methods.
vue-jest: It's a Jest transform plugin used to test .vue files.
<EMAIL_ADDRESS>It's a required dependency by vue-jest.

Side changes:

Added vue as our peer-dependency since Mantra must be in a Vue.js application to correctly work.

Proud :muscle:


Breakpoint doesn't work when running test

Steps to Reproduce

The break point works fine when you run it normally but fails to stop if running from the unit test and widget test.
Steps to reproduce:

Set break points anywhere in the MyApp or its child class.
Set break point in the counterStateProvider
Run debug with unit test or widget test
break points are skipped, for example

Notes:

The break points still works on the test files, but not inside the lib folder.
If you comment out MockCounterNotifier in all test files and debug again, the break point then works. Really weird.

Try it on vscode but same result, so might not be an IDE thing.
Im on android studio bumblebee
macOS on Apple Silicon

A code sample:
https://github.com/PandaGeek1024/breakpointNotWorking

[✓] Flutter (Channel stable, 2.10.1, on macOS 12.2 21D49 darwin-arm, locale en-AU)
    • Flutter version 2.10.1 at /Users/jayhuang/Developer/flutter/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision db747aa133 (5 days ago), 2022-02-09 13:57:35 -0600
    • Engine revision ab46186b24
    • Dart version 2.16.1
    • DevTools version 2.9.2

[✓] Android toolchain - develop for Android devices (Android SDK version 32.1.0-rc1)
    • Android SDK at /Users/jayhuang/Library/Android/sdk
    • Platform android-32, build-tools 32.1.0-rc1
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7772763)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 13.2.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • CocoaPods version 1.11.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7772763)

[✓] VS Code (version 1.64.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.34.0

[✓] Connected device (2 available)
    • iPhone 13 Pro Max (mobile) • 7FC8131C-6F67-4DDE-B3C7-A18B0A503CCC • ios            • com.apple.CoreSimulator.SimRuntime.iOS-15-2 (simulator)
    • Chrome (web)               • chrome                               • web-javascript • Google Chrome 98.0.4758.80

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

Hi @PandaGeek1024, Thanks for filing the issue. I ran the widget test in your sample app and I can see same behavior control does not stop at breakpoint also the breakpoints get removed when running the tests from main.dart, and also commenting mock notifier seems to work as expected. But I believe this should be filed with the maintainer since that's coming from a third party plugin hooks_riverpod who might have better insights of this issue.

@maheshmnj  Thanks for your feedback. I will definitely raise this to the maintainer, but one thing I don't quite understand is how can the third party plugin affect the breakpoints? I feel like it shouldn't have much too do with it.
Besides, I have tried to add a breakpoint in MyApp which is a StatelessWidget and it doesn't works as well. But adding a debugger() still works. Could this related to the compiler or something else?

but one thing I don't quite understand is can a third party plugin affect the breakpoints? I feel like it shouldn't have much to do with it.

Not really, But I think the order of execution might be different when using hooks_riverpod so we might not be hitting the breakpoint.

Besides, I have tried to add a breakpoint in MyApp which is a StatelessWidget and it still doesn't work. however, adding a debugger() will works. Could this related to the compiler or something else?

I think that's normal you cannot add a breakpoint if you don't have a debugger attached.

Not really, But I think the order of execution might be different when using hooks_riverpod so we might not be hitting the breakpoint.
If that's due to the different order of execution, how come the debugger() still make the widget stop at where it is?

I am quite not sure about it will leave this issue open for further investigation from the team.
I am able to reproduce the same behavior as the author, the breakpoints cannot be set in the sample app when running the tests with riverpod_hooks.
Reproducible steps and the code sample in the original post https://github.com/flutter/flutter/issues/98446#issue-1137915658

flutter doctor -v
[✓] Flutter (Channel stable, 2.10.1, on macOS 12.1 21C52 darwin-arm, locale en-GB)
    • Flutter version 2.10.1 at /Users/mahesh/Documents/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision db747aa133 (7 days ago), 2022-02-09 13:57:35 -0600
    • Engine revision ab46186b24
    • Dart version 2.16.1
    • DevTools version 2.9.2

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/mahesh/Library/Android/sdk
    • Platform android-31, build-tools 31.0.0
    • ANDROID_HOME = /Users/mahesh/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 13.2.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • CocoaPods version 1.10.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)

[✓] IntelliJ IDEA Community Edition (version 2021.2.1)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 61.2.4
    • Dart plugin version 212.5080.8

[✓] VS Code (version 1.63.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.34.0

[✓] Connected device (3 available)
    • Redmi K20 Pro (mobile) • <IP_ADDRESS>:5555 • android-arm64  • Android 11 (API 30)
    • macOS (desktop)        • macos            • darwin-arm64   • macOS 12.1 21C52 darwin-arm
    • Chrome (web)           • chrome           • web-javascript • Google Chrome 98.0.4758.102

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

[✓] Flutter (Channel master, 2.11.0-0.0.pre.555, on macOS 12.1 21C52 darwin-arm, locale en-GB)
    • Flutter version 2.11.0-0.0.pre.555 at /Users/mahesh/Documents/flutter_master
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 06bf6a128d (28 hours ago), 2022-02-14 23:30:18 -0500
    • Engine revision 20bd78ca3e
    • Dart version 2.17.0 (build 2.17.0-105.0.dev)
    • DevTools version 2.10.0

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/mahesh/Library/Android/sdk
    • Platform android-31, build-tools 31.0.0
    • ANDROID_HOME = /Users/mahesh/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 13.2.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • CocoaPods version 1.10.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)

[✓] IntelliJ IDEA Community Edition (version 2021.2.1)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 61.2.4
    • Dart plugin version 212.5080.8

[✓] VS Code (version 1.63.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.34.0

[✓] Connected device (3 available)
    • Redmi K20 Pro (mobile) • <IP_ADDRESS>:5555 • android-arm64  • Android 11 (API 30)
    • macOS (desktop)        • macos            • darwin-arm64   • macOS 12.1 21C52 darwin-arm
    • Chrome (web)           • chrome           • web-javascript • Google Chrome 98.0.4758.102

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

cc: @annagrin

The problem doesn't appear to be related to Riverpod, and is instead related to mocktail's Mock, in particular noSuchMethodError
I was able to trim down the example to:
// lib/main.dart
class CounterNotifier {
  void increment() {}
}

void foo() {
  print('hello'); <breakpoint here>
}

// test/unit_test.dart
import 'package:test/test.dart';
import 'package:flutter_sample/main.dart';

class Mock {
  dynamic noSuchMethod(Invocation invocation) {
    return 42;
  }
}

class MockCounterNotifier extends Mock implements CounterNotifier {
  MockCounterNotifier();
}

void main() {
  test('Counter increments smoke test', () async {
    foo();

    print('hello');
  });
}

where a breakpoint on the print within foo does not trigger
With this, there's no dependency on any package.
Interesting note: The MockCounterNotifier is unused, but removing it removes the problem.
Same goes for CounterNotifier.increment. Removing the method removes the problem

Reproduced this.  Confirmed that this behavior has been present for a while and is not a recent regression.

Reproduced and confirmed.

I wonder if this is related to https://github.com/dart-lang/webdev/issues/1692. I am working on a solution for it, would be able to test after it is out.

Any updates on this?  I'm still seeing it on Flutter 3.3.1

Hi, I'm on Windows and flutter test hangs when I use debugger(); and ignores the vscode breakpoints I set otherwise. Is this the same issue?

Hi, I'm on Windows and flutter test hangs when I use debugger(); and ignores the vscode breakpoints I set otherwise. Is this the same issue?

Yes. Still not fixed.

Any progress on this please? This slows down the debugging process by much.

It seems in my case that the breakpoints are being ignored when the test (in my case integration test) is not run in the debug  mode. These are the options I see from my codelanes:

However, as long as I Debug the test (instead of running it), the tests will be stopped at breakpoints even outside the test file.
I'm not sure how to set up the config for Android Studio but for VS Code it seems it takes ${debugType} argument into account to show the codelanes. E.g. this is my launch.json config:
{
      "name": "Run Integration Test w/ Mockoon",
      "type": "dart",
      "request": "launch",
      "codeLens": {
        // Types of CodeLens to inject
        "for": [
          "run-test",
          "run-test-file",
          "debug-test",
          "debug-test-file"
        ],
        // Restrict to certain folders
        "path": "app/integration_test",
        // Text for CodeLens link (${debugType} will be replaced with "run" or "debug")
        "title": "${debugType} w/ Mockoon"
      },
      "toolArgs": [
        "--dart-define=ENABLE_MOCKOON_PROXY=true"
      ],
    },
    ```


Include missing conda channel for python-chromedriver-binary

Looks good - failures are unrelated. Thanks!


Pressing Enter multiple times during Basic Authentication causes a crash

Found by <accountid:5dc030e15678870df71552a8] while testing MM-20350.
Steps to reproduce:

You may need to clear your configuration to reproduce (delete `/.config/Mattermost)
Set up HTTP Basic auth at http://evil.example/
Connect to a Mattermost instance and post this message: ![let's hack>(http://evil.example/)
1. The image should fail to load, no auth popup is presented; this is as expected
Add http://evil.example as another server tab
1. This time an auth popup does appear; again as expected
Enter your HTTP Basic credentials and hit enter a couple times

Expected: The application should log you in
Observed: The app hangs for a second, then crashes with Error: callback can only be called for once
DEVELOPER NOTES:
The culprit is this function (at line 752 in main.js):
  const callback = loginCallbackMap.get(JSON.stringify(request));
  if (callback != null) {
    callback(user, password);
  }
}```

We need to introduce some debouncing on the Enter key and Submit button to ensure we can’t try and call the callback multiple times.

----
If you're interested please comment here and come [join our "Contributors" community channel](https://community.mattermost.com/core/channels/tickets) on our daily build server, where you can discuss questions with community members and the Mattermost core team. For technical advice or questions, please  [join our "Developers" community channel](https://community.mattermost.com/core/channels/developers).

New contributors please see our [Developer's Guide](https://developers.mattermost.com/contribute/getting-started/).

JIRA: https://mattermost.atlassian.net/browse/MM-22254

Awesome, thanks @abimael-o-o

Can i look into this issue ??

Hey can  I work on this?

Sure @preethi900, please take a look. Sorry @jerryjaimon, could you please look for another issue?

Hey @preethi900, are you still looking to fix this?

Re-adding up for grabs label since there's not been much activity here.

Just need to add some de-bouncing here.

I don't believe this bug exists in the same way anymore with v5+. Now it seems the credentials are shared between all servers to the same siteURL. So, each time I add the same server a second time it auto logs it in when following the same steps.
Additionally, I'm wondering if the handling in here https://github.com/mattermost/desktop/pull/1637 helped this issue?
handleLoginCredentialsEvent = (request: AuthenticationResponseDetails, username?: string, password?: string) => {
        const callback = this.loginCallbackMap.get(request.url);
        if (typeof callback === 'undefined') {
            log.error(`Failed to retrieve login callback for ${request.url}`);
            return;
        }
        if (callback != null) {
            callback(username, password);

https://user-images.githubusercontent.com/46071821/148592650-90774d99-2dcc-439f-8b00-54ef77387d6f.mov

        }
        this.loginCallbackMap.delete(request.url);
    }

https://user-images.githubusercontent.com/46071821/148592959-a330da5c-5bd3-487e-90e4-ee5437b8c839.mov
Video didn't attach to my above comment. Here's following the repro steps

I don't believe this bug exists in the same way anymore with v5+. Now it seems the credentials are shared between all servers to the same siteURL. So, each time I add the same server a second time it auto logs it in when following the same steps.
Additionally, I'm wondering if the handling in here #1637 helped this issue?
handleLoginCredentialsEvent = (request: AuthenticationResponseDetails, username?: string, password?: string) => {
        const callback = this.loginCallbackMap.get(request.url);
        if (typeof callback === 'undefined') {
            log.error(`Failed to retrieve login callback for ${request.url}`);
            return;
        }
        if (callback != null) {
            callback(username, password);

https://user-images.githubusercontent.com/46071821/148592650-90774d99-2dcc-439f-8b00-54ef77387d6f.mov

        }
        this.loginCallbackMap.delete(request.url);
    }

@coltoneshaw So this is different from Mattermost credentials, which yes are shared since all tabs exist within the same session so the cookies are shared.
Where this issue pops up is if the server is protected by Basic Auth, which is checked by the browser normally and is done by adding a header requiring basic auth. So to reproduce you'll have to set up a server that requires Basic Auth (it doesn't have to be a mattermost server, just any old web server) and then try to add the credentials. It might no longer reproduce, but it was definitely an issue in v4.7 I believe.

Ahh, I misunderstood it. Let me play with that some to break it. Truth be told, I've never once seen a customer with basic auth setup in front of a Mattermost server.

Okay, setup a quick repro on this. When attempting to follow the above repro steps i'm not able to get it to crash by hitting enter after the second server gets logged in. Ignore the crazy amount of auth requests, it requests it on every call it seems.
https://user-images.githubusercontent.com/46071821/148612490-f26719d7-4365-4a87-b9b2-c7a23bfc9151.mov

Okay thanks @coltoneshaw, I think we can say this one was fixed, so let's close this.


doc-changes

Signed-off-by: randybrunopiverger<EMAIL_ADDRESS>regarding: https://github.com/open-cluster-management/backlog/issues/16188

/cc @jeswanke


snarfed/bridgy MIDDLE DOT in post url causes bridgy to fail to match

Picked up a
U+00B7 : MIDDLE DOT {midpoint (in typography); Georgian comma; Greek middle dot (ano teleia)}
from using PressThis Reply bookmarklet in wordpress post title.
https://brid.gy/log?start_time=1531789624&key=aglzfmJyaWQtZ3lyWQsSCFJlc3BvbnNlIkt0YWc6Z2l0aHViLmNvbSwyMDEzOnNuYXJmZWQ6YnJpZGd5LWZlZDpNREV5T2tsemMzVmxRMjl0YldWdWREUXdOVFF3TlRjME5BPT0M
 2018-07-17 01:07:04.077080 I Giving up this target. {'body_json': {u'message': u'Cannot find target link', u'code': u'...', u'data': {u'status': 400, u'data': {u'comment_date': u'2018-07-16 18:07:02', u'comment_approved': 0, u'target': u'https://dougbeal.com/2018/07/16/snarfed-bridgy-fed-bridgy-error-on-like-\xb7-issue-28-\xb7-snarfed-bridgy-fed/', u'comment_type': u'webmention', u'comment_date_gmt': u'2018-07-17 01:07:02', u'comment_meta': {u'webmention_target_url': u'https://dougbeal.com/2018/07/16/snarfed-bridgy-fed-bridgy-error-on-like-\xb7-issue-28-\xb7-snarfed-bridgy-fed/', u'webmention_created_at': u'2018-07-17 01:07:02', u'webmention_source_url': u'https://brid-gy.appspot.com/comment/github/dougbeal/snarfed:bridgy-fed:28/snarfed:bridgy-fed:MDEyOklzc3VlQ29tbWVudDQwNTQwNTc0NA=='}, u'comment_author_IP': u'<IP_ADDRESS>', u'source': u'https://brid-gy.appspot.com/comment/github/dougbeal/snarfed:bridgy-fed:28/snarfed:bridgy-fed:MDEyOklzc3VlQ29tbWVudDQwNTQwNTc0NA==', u'comment_agent': u'Bridgy (https://brid.gy/about) AppEngine-Google; (+http://code.google.com/appengine; appid: s~brid-gy)', u'comment_author_url': u'https://brid-gy.appspot.com/comment/github/dougbeal/snarfed:bridgy-fed:28/snarfed:bridgy-fed:MDEyOklzc3VlQ29tbWVudDQwNTQwNTc0NA==', u'comment_post_ID': 1881, u'comment_parent': u'', u'comment_author_email': u''}}}, 'code': '...', 'request': u'POST https://dougbeal.com/wp-json/webmention/1.0/endpoint (with source=https://brid-gy.appspot.com/comment/github/dougbeal/snarfed:bridgy-fed:28/snarfed:bridgy-fed:MDEyOklzc3VlQ29tbWVudDQwNTQwNTc0NA==, target=https://dougbeal.com/2018/07/16/snarfed-bridgy-fed-bridgy-error-on-like-%c2%b7-issue-28-%c2%b7-snarfed-bridgy-fed/)', 'http_status': 400}
(Originally published at: https://crw.moe/b/XS)

post:
https://dougbeal.com/2018/07/16/snarfed-bridgy-fed-bridgy-error-on-like-·-issue-28-·-snarfed-bridgy-fed/

nows it looking like an encoding issue -
on-like-\xb7-issue-28 vs on-like-%c2%b7-issue-28

whee, Unicode!
that 400 error is from your web server (looks like WordPress?). the url with the \xes is a logging artifact, purely internal to bridgy. i think it's correctly sending the %-encoded url as the webmention target (search that error json for "target.")

similar: #625

@dougbeal friendly ping. is the WordPress webmention plugin maybe not handling Unicode in URLs correctly?


Proposal: date-time format that requires timezone information

The date-time format allows both local and 'timezoned' values (both are allowed by ISO_8601).
Although there can be use cases where local time is desired (say, flight arrival time at destination, without having to know the timezone offset at that date), in a great number of cases allowing the lack of timezone information is undesired, because it is unclear what the local time is supposed to be (browser clients can be in any timezone).
In fact, from my experience, sending a 'timezoneless' value will most often be a sign of a bug in the client (someone forgetting to use a proper UTC backed value or forgot to apply correct formatting), while the server accepting such a value will be a bug on the server - insufficient validation. Both of them combined will inevitably lead to a hard-to-spot data corruption.

The proposal is to create a separate format that forbids passing values without timezone indicator.

Name could be: date-time-localizable, date-time-convertible, date-time-tz, but feel free to suggest better ones.

Also, one could argue that, even though a use case for local time does exist (as the flight arrival example shows), a developer of such service would find it useful to bounce back any requests that contain the timezone designator, because it too might be a sign of user performing an inadvertent conversion (e.g. using JavaScript Date() on the local client and not preventing the conversion that some libraries can choose to perform 'by default').

A name for this could date-time-local or date-time-no-tz, date-time-without-tz, date-time-tz-free.

(I'm especially interested in number 1. Number 2 is mostly as a side-suggestion to get feedback for.)

Refs #1345

JSON Schema's date-time is based on RFC 3339 which is a subset of ISO 8601.  I'm having trouble sorting through the ABNFs as I have not yet had enough cups of tea this morning for that sort of thing, but I think that while the time zone portion ("Z" or an offset) is optional in ISO 8601, it is not optional in RFC 3339 for the date-time production that JSON Schema references.
Am I misreading this?

Hi @handrews . You are correct indeed! I assumed otherwise because Newtonsoft JSON doesn't even have an option to enforce it, while it is the de-facto standard JSON serialization library for .NET (even Microsoft uses it for ASP.NET Core framework).
Looks like I need to raise it with them then :)


Add properties event

Description
As described in #1888, this adds an event that is emitted when the layer properties are set.
Type of change

[x] Bug-fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)

References
This was proposedin #1888.
How has this been tested?

[x] all tests pass with my change

Final checklist:

[x] My PR is the minimum possible work for the desired functionality
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[ ] I have added tests that prove my fix is effective or that my feature works

@brisvag, please feel free to check this out and see if it works for you.


Bump aws-sdk from 2.814.0 to 2.1160.0

This PR bumps aws-sdk from 2.814.0 to 2.1160.0 (latest)
Using the latest version fixes an issue we're having with IAM S3 credentials when running on EKS.

closing as this doesn't seem required


Dairy Date Selection while adding new note.

Currently, the date selection is allowed for future dates as well which is not logical according to what diary is meant for. Solution proposed : The user will only be able to select date till today or past dates but not future ones.

@SaraswatGit Please assign me this issue under JWoC.

@Aniket-508  I have assigned the issue to you , Best Wishes for any problem reach out to me on discord


Wrong types for parameters

There is number[] used for ImageData.data this should be Uint8ClampedArray, see: https://developer.mozilla.org/en-US/docs/Web/API/ImageData/data

I believe this was fixed in https://github.com/cozmo/jsQR/pull/25 - And it's certainly being fixed as we rewrite components ( #31 #28 etc ).
Please re-open if this isn't the case.


Bump Envoy sha to f49d4f2

Description: Bumping upstream Envoy sha so that it includes recent changes that allow us to force IPv6 use on Android. The Envoy sha that we use in this PR is NOT from Envoy main. The idea is to pick up only @mattklein123's change from https://github.com/envoyproxy/envoy/pull/21803 without any other changes. We are going to move back to Envoy main later this week.
Testing: Manual, passed
Docs Changes: N/A
Release Notes: N/A

/retest

I see some timeouts - I think that they are related to the changes from https://github.com/envoyproxy/envoy-mobile/pull/2184 that removed dependency of some of the CI checks on androidbuild and iosbuild jobs.


Minor corrections for OpenAPI 3.0 document

Adds a few minor corrections for the 3.0 definition document (or I hope these are correct anyway):

Moves a parameter object example over to use the new 3.0 schema type definition instead of using the 2.0 type and items fields.
Moves a stray collectionFormat out of schema definition and back into the root of a parameter object.

Totally unrelated, but does anyone know if there's any thinking around a release date for OpenAPI 3.0? I've built out a 2.0 API definition, but unfortunately a number of quirks in that spec prevent me from accurately describing my API, and I'm stuck building in some very hacky workarounds until something changes. I'm very much looking forward to the 3.0 release :)

Thanks for this. There are plenty of places and examples that need to be fixed and we started the process of clearing those out - every little bit helps.
As for the collectionFormat, we're working on finalizing what that would look like in the spec (it may change entirely).

Thanks for this. There are plenty of places and examples that need to be fixed and we started the process of clearing those out - every little bit helps.

No problem! Let me know if there's anything else I can fix and/or adjust.

@brandur - with additional changes (see #842 for example), I'm afraid the updates are no longer relevant. Thank you for the PR though.


Persistent history

Command history is handy, but it doesn't live beyond a session. It would be awesome if vantage had persistent history. As of now, this can only be achieved by loading entries into vagrant.session._hist.
History could be kept server-side on a per-user basis, or client-side on a per-host basis.
For a server-side implementation, instead of bundling this functionality with vantage itself, a public history API could be exposed for extensions to manage and provide history, with session history as the default implementation.
A client-side implementation could provide a vantage command-line flag to pick a history file, defaulting to something like  ~/.vantage/history/<host> (for system-wide, per-host history) or ./vantage/history (for directory-based history).

I totally agree this should be added to Vantage.
I also think it should be built-in native, not as an extension.
There are a ton of ways to do it, which makes me uneasy. It should be done exactly the way Linux/SSH sessions handle persistent command history, so there is consistency - it should behave exactly the way people are used to it behaving.
I'll have to find out how it's done (i.e. when SSHing to another terminal, the commands are persisted locally, etc., as well as what primary keys are used to match up users and terminals to a given history, etc.).
If there's any way you could help do research on that, it would definitely help speed up the implementation!

ssh doesn't keep history: the shell does. When you start a remote shell via SSH, history is managed normally, local to the shell process.
In other words, you could say history is stored remotely, on a per-user basis, in a plain file.
vantage could manage this, as it does have authentication. Unauthenticated accesses could share history.

Nice and thanks for the data - I didn't know those things. Your idea sounds right. On unauthenticated access, I think I assign a user account as guest or something, so it could store it under that name.
I'm very short on time, so it would be totally awesome if you could spare time to do this!
I should probably fill you in on some more details as to how Vantage handles sessions, etc. as getting this working is going to require modifications across the code base, particularly adding content to:
./lib/vantage.js
./lib/client.js
./lib/server.js

Feel free to ask me any questions or confusions - don't hesitate at all!

@slezica does it look like you're going to be able to work on this?

@dthree I'm sorry for the dissapearance. I switched jobs, working both during the transition, and have been unable to spare time for any of my personal projects.
I'd love to contribute this feature (I use vantage and feel the need for it myself), but I'm 200% swamped. I have to be realistic and pass. Sorry I didn't tell you earlier, I honestly forgot.
I hope I can come back and contribute some solid code to this project in the future.

No probs and thanks for letting me know.


Identifier to String

in TableCellGenerator.identifier has UITableViewCell.Type type.
But in some rare case we cant return current cell type.
May be needs to change the type to String?

Yeah! Let's get it


In localhost getting issue after signup

Can you please explain why i am getting after signup or when redirect dashboard router.

Hey, can you check and send the error logs in the code editor console?

https://next-auth.js.org/warnings#nextauth_url
[next-auth][warn][NO_SECRET]
https://next-auth.js.org/warnings#no_secret
[next-auth][error][NO_SECRET]
https://next-auth.js.org/errors#no_secret
only getting like this

first, create .env file like env.example.txt

after that run this code in your terminal
openssl rand -base64 32
it will generate code like this

after that copy and paste that as your NEXTAUTH_SECRET.

@bdhamithkumara appreciate your help!

I think it would be nice to add some info about this to the README. It'll help avoid confusion


issues with github notifications

for some reason, this is quoted doubly. the intended quote is closed after the first block instead of continuing the level 1 quote. original comment:
https://github.com/vector-im/element-web/issues/20578#issuecomment-1015574801
event source excerpt:
\n
\n
I'm finding a difficulty in reproducing this issue, kindly helpsweat_smile
\n
\n

other than quoting, plain comments on issues and PRs seem fine.

posts OP instead of saying that the issue has been closed. also note the broken quotation.

on github: https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1510#issue-1094736364

this is a PR review requesting changes, but you can't tell:

and a comment on the review:

also https://github.com/Half-Shot/matrix-hookshot/issues/29#issuecomment-1015775323 applies here
on github: https://github.com/matrix-org/matrix-react-sdk/pull/7584#pullrequestreview-857847150

this is an approving PR review:

and this is the actual merge which seems a bit much:

also note the broken quotation. could be a case to use  if the OP needs to be sent at all?
on github: https://github.com/matrix-org/matrix-react-sdk/pull/5887#pullrequestreview-858005967

closing this issue also posts the whole OP to matrix, which seems extreme, like above. broken quotation again.

(I'll spare you the rest)
on github: https://github.com/vector-im/element-web/issues/19888

re-opening with a comment will repost the OP instead of the comment.

Embedding an image in a github issue comment using markdown syntax ![image](https://user-images.githubusercontent.com/etcetcetc.png) will be in the event body verbatim, and in the formatted_body as the appropriate  tag. However the latter isn't supported, as it isn't using an mxc:// url as src. The bridge would need to either upload the media, or instead just (deep)link it (convert  to ) which can either be clicked or shown with URL previews.

https://github.com/vector-im/element-web/issues/20851

Very long posts are cut off by matrix's message size limit, e.g. https://github.com/vector-im/element-web/issues/20467#issuecomment-1038839125
You could split them up, however that's not great in the middle of a code block. I would rather it not post the code block at all but simply link to the comment instead.

I'll try and keep this updated as long as it's open

Yeah, it's a known problem that the quote doesn't sufficiently wrap.


I encounter problems when realizing  one app redirect other app  belong CAS server

About follow three problems:
1.How to realize jumping between apps belong CAS server ,may i modify the CAS_PROXY_CALLBACK or CAS_ROOT_PROXIED_AS in setting.py ?
2.Where i should call the function of "Callback"?
3.I found that the table "django_cas_ng_proxygrantingticket" is empty.
Looking forward to your response，thanks！

Uhh, I don't understand what you've asked. Can you please write more details?


Not Ready for Review | Add support for .NET 9

Opening this up to get CI running on it.
Duplicating #2674  to have my own workspace.

Am curious - is there any net9.0 API that's actually needed/used? If not, is there a specific reason to add the net9.0 TFM?

@roji JSON support in SqlDbType: https://github.com/dotnet/runtime/issues/103925

@David-Engel of course, I forgot about that, thanks :)

You should be able to add:
- task: UseDotNet@2
  displayName: 'Use .NET 9.x sdk'
  inputs:
    packageType: sdk
    version: '9.x'
    installationPath: $(Agent.ToolsDirectory)/dotnet

- task: UseDotNet@2
  displayName: 'Install .NET 8.x runtime'
  inputs:
    packageType: runtime
    version: '8.x'
    installationPath: $(Agent.ToolsDirectory)/dotnet

Before this line, as a first step:
https://github.com/dotnet/SqlClient/blob/8d500a3c63c6f2d57edb67a31f21aa6346581741/eng/pipelines/common/templates/steps/ci-project-build-step.yml#L37
That should get the build going. You probably need to cache a few more packages in the "official" feed.
Have a look at my attempt on getting it to work

Thanks @MichelZ, I'll give that a shot. I had issues previously with the sdk version resolver picking up the .NET 9 rc version when installing that way, but it may be working better now with the GA version available.


[BUG] Skipping words in wordlist

Describe the bug
Words are getting skipped in the wordlist when I use a depth past 1.
To Reproduce
Steps to reproduce the behavior:
These scans are being run again the vulnhub machine Prime 1 (https://www.vulnhub.com/entry/prime-1,358/)

Does detect secret.txt: feroxbuster --url http://<IP_ADDRESS> -w ./raft-small-words.txt -x txt -t 200 -o feroxbuster_test -d 1
Does not detect secret.txt: feroxbuster --url http://<IP_ADDRESS> -w ./raft-small-words.txt -x txt -t 200 -o feroxbuster_test -d 2

If I move the word "secret" to the beginning of the word list then feroxbuster does find it even with using a depth greater than 1.
Expected behavior
A clear and concise description of what you expected to happen.
Traceback / Error Output
If applicable, add error output to help explain your problem.
Environment (please complete the following information):

feroxbuster version: 2.3.3
OS: Linux kali 5.10.0-kali9-amd64 #1 SMP Debian 5.10.46-4kali1 (2021-08-09) x86_64 GNU/Linux

I'm unable to reproduce your results so far, here are two runs against the vulnhub vm using your given command options/arguments
depth one

depth two

Just to make sure, I spun up a fresh kali (above screenshots are from a dev machine), installed feroxbuster via apt and checked the same scans with the same results.

I just recreated the issue on my machine to make sure I wasn't going crazy last night.  I was indeed able to recreate the issue on my side.
One thing I noticed is that when I do a scan of a depth above 1 the orange progress bar on top still has a gap in it towards the end of the scan.  Once all of the progress bars below the orange bar come to 100%, the orange bar on top jumps from around where the screenshot shows it below to 100%.

Maybe I will install Kali fresh and see if that fixes it..

looks like you're using fish. The bash completions for directories is something i had to manually tweak, we may need to do something similar for fish.

for funsies, can you funnel the scan through burp with logger++ installed (unless you have burp pro, which allows for searching in http proxy history), then do a search for the secret.txt request?

OR, run your command with --debug-log debug.log -vvv


Minor change for images and depth across ros_gz bridge.

Note that it's not respecting the  designation when coming from URDF.