DataFrame Dumping

Added a dumps routine which will print out a DF in mostly-correct python code
used it in a number of places to help with errors and logging
Assorted cleanup

Mostly driven by issue #9.

Codecov Report

Merging #10 into develop will decrease coverage by 0.22%.
The diff coverage is 97.26%.

@@             Coverage Diff             @@
##           develop      #10      +/-   ##
===========================================
- Coverage    98.10%   97.88%   -0.23%
===========================================
  Files            6        7       +1
  Lines          422      567     +145
===========================================
+ Hits           414      555     +141
- Misses           8       12       +4

Flag
Coverage Δ

#unittests
97.88% <97.26%> (-0.23%)
:arrow_down:

Impacted Files
Coverage Δ

dataframe_expressions/dump_dataframe.py
97.01% <97.01%> (ø)

dataframe_expressions/render.py
100.00% <100.00%> (ø)

dataframe_expressions/utils.py
95.12% <100.00%> (+0.12%)
:arrow_up:

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 9162cec...6a114ed. Read the comment docs.


Add python 3.9 build

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.


hydra.errors.InstantiationException: Error locating target 'matcha.models.matcha_tts.MatchaTTS', set env var HYDRA_FULL_ERROR=1 to see chained exception

I run codes in Linux，then this error should means that Hydra cannot find the target matcha.models.matcha_tts.MatchaTTS, how should I set the modification?

Did you do 'pip install -e .' ?

Did you do 'pip install -e .' ?

Thanks your reply, Yes, I did.

pip install -e .

Did you do 'pip install -e .' ?

Sorry, I just tried it again and it worked. It may be because I configured the environment on the cloud server, so I need to run pip install -e again to use this environment. Thank you very much for your reply, I wish you good health and good work!


chore: update github issue template to use a hyperlink

Fixes #N/A
Description
The issue template wasn't hyperlinked. This makes it easier to see where to create a new issue.
How was this change tested?
Does this change impact docs?

[ ] Yes, PR includes docs updates
[ ] Yes, issue opened: #
[x] No

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

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

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
4949

Relevant Lines:
5996

💛  - Coveralls


Skips execution if packaging is 'pom'.

Fixes #734
The code duplication will be taken care of by when we add a plugins-common framework (#478).

I mean this is an easy way to fix the problem, but maven is configurable to avoid this.

Should we only be executing on "jar" builds, and ignoring all other builds?

@loosebazooka We could, though we would want to enable "war" too when we take care of #431. However, we might want to allow for custom packaging types, though I'm not if people actually do that.

Yeah, I'm not sure if I know what the right way is. Perhaps just leave it as is for now, maybe using the "jib" packaging type option can clear this up for most people.

Oops, forgot to add CHANGELOG. Will do in followup PR.


MAINT add test instructions to release guide

Description

Adding previously missing testing/validation instructions to the release guide.

Tests and Documentation

This is based on the experience from the last release. @nina-msft  will be doing a new one shortly and can validate as well as update this guide if needed.

Noting that I will review this when I go through the release process and have a better idea of what needs to be tweaked!


Wrong error displayed for broken Quick Access queue node

Repro Steps

Launch Storage Explorer and sign in with an Azure account.
Expand nodes in the tree till you find a queue node.
Add the queue node to Quick Access.
Remove the account associated with the queue.
The queue node in Quick Access should change to a broken node. Click on the node to show the error.

Expected
The error should say something like "The user account associated with this queue is not signed in. Please sign in to access the queue."
Actual
The error shows something like:
{
  "name": "TypeError"
}

Additional Context
I suspect this has something to do with the order of operations we take in order to determine whether a queue in Quick Access should be a broken node. For some reason, we test to see if the queue exists before checking whether the credentials in the connection object are even valid. We should be checking for valid auth or SAS credentials first.

Duplicate #4412


updated readme

updated readme - Added "Tested with" section

Please sync with upstream changes and create a new pull request


cmd/go: mod meta tag causes infinite loop in GOPROXY

I'm stumped about how the <meta content="<path> mod <url>" tag would ever work.
Let's say a user does a go get marwan.io/moddoc where marwan.io is a vanity import server (which it is right now).
Let's say, marwan.io wants to expose its modules via a GOPROXY and not via git
Therefore, the meta tag that it returns will now be
<meta name="go-import" content="marwan.io/moddoc mod https://someproxy.com">
instead of
<meta name="go-import" content="marwan.io/moddoc git https://github.com/marwan-at-work/moddoc">
The go command will now start talking to https://someproxy.com through the Download Protocol. And the first thing it will do is:
GET https://someproxy.com/marwan.io/moddoc/@v/list

The proxy, will now use go list -m -versions -json marwan.io/moddoc@latest to get the versions list (or even latest)
The go command inside the GOPROXY will now actually ping marwan.io/moddoc?go-get=1 one more time, and it will parse the meta tag again and then it will ping the same https://someproxy.com that it is currently running on causing an infinite loop.
Even if we hard code the /list and @latest responses to the GOPROXY server to avoid the infinite loop, when the original go command now requests a version say: GET<EMAIL_ADDRESS>the GOPROXY must use go mod download to get the module contents which will also cause infinite loop.
The only solution so far is to use go mod download marwan.io/moddoc before we deploy the change to the meta tag, then manually upload it to the GOPROXY server storage. But once we deploy the change, we'll never be able to upload the correct zip file of any new versions because those will cause infinite loops. We'll have to revert the meta tag response to be git again, do go mod download locally, and redeploy the meta-tag change along with the new zip file (and friends) in storage.
Even if the purpose of the "mod meta tag" is not for vanity imports to expose them, I fail to realize where they ever make sense. The vgo proposal mentions here that you can use this feature for directly injecting the storage url: https://research.swtch.com/vgo-module#publishing
But I still fail to see how this is maintainable for a couple of reasons:

@latest is not compatible with the storage.googleapis.com
Authors have to manually do go mod download against the underlying git repository and upload it to storage on every new version or every new commit so that go will never hit @latest

cc: @bcmills @rsc

This seems like an implementation detail of the module server. The protocol for a server and a proxy is the same, but a server that is not a proxy fundamentally needs to know which paths it's serving.
(Note that one option is for the server to run go mod download, but on path that differs from the one requested by the user.)
For the @latest path in particular, I suspect that @hyangah, @heschik, and/or @katiehockman can give you more useful advice.

This is indeed an implementation detail of the module server.
This issue brings up an interesting attack scenario against certain public proxies. That's also proxy implementation details, and public proxies should be prepared to handle this type of unexpected use or misuse cases.
The /@latest endpoint is not crucial for the go command to operate as long as /@v/list returns a non-empty list. If the storage server is implemented as described in the original vgo proposal, not having /@latest endpoint will not be an issue.

@hyangah In this case it should be 100% safe to say that the only way a proxy server knows how to go mod download a vanity import path, is by knowing its counter-part VCS import path ahead of time.
For example, if a user did:

go get marwan.io/moddoc

And then my marwan.io server returned something like ~<meta mod https://someproxy.com

Then my myproxy.com must have an ahead of time knowledge that marwan.io maps to github.com/marwan-at-work so that it will do the correct go mod download without getting stuck in an infinite loop. Assuming go mod download github.com/marwan-at-work/moddoc should never fail because the source code's import paths start with marwan.io/moddoc
The only other way around my solution above, is that the proxy server has a way for that vanity import path to be populated outside of go mod download, i.e. by manually uploading its own .zip/.info/.mod without using go mod download which would run the risk of checksum mismatches and that proxy has to be the only place to ever get that module.
If all of my assumptions are correct, I'm happy closing the issue :)
Thanks!

@hyangah In this case it should be 100% safe to say that the only way a proxy server knows how to go mod download a vanity import path, is by knowing its counter-part VCS import path ahead of time.
For example, if a user did:

go get marwan.io/moddoc

And then my marwan.io server returned something like ~<meta mod https://someproxy.com

Then my myproxy.com must have an ahead of time knowledge that marwan.io maps to github.com/marwan-at-work so that it will do the correct go mod download without getting stuck in an infinite loop. Assuming go mod download github.com/marwan-at-work/moddoc should never fail because the source code's import paths start with marwan.io/moddoc
The only other way around my solution above, is that the proxy server has a way for that vanity import path to be populated outside of go mod download, i.e. by manually uploading its own .zip/.info/.mod without using go mod download which would run the risk of checksum mismatches and that proxy has to be the only place to ever get that module.
If all of my assumptions are correct, I'm happy closing the issue :)
Thanks!

@marwan-at-work a different approach to protect the public proxy from the infinite loop is to design the myproxy.com to avoid duplicate work. The subsequent request in the chain will then be classified as duplicate of pending operation, and not add additional work to the proxy but wait for the pending duplicate work to complete. Eventually some of the request in the chain will timeout (as most production service would do) and the chain will terminate.

@hyangah I'm more focused on how it should work as opposed to the security vulnerability side of it.
From a vulnerability stand point, your suggestion makes sense. Another one is that the proxy server can also issue its own GET marwan.io/moddoc?go-get=1 and check that its mod <meta> tag  is not pointing to the same host as the proxy itself.
However, from a feature perspective, I wasn't clear on how go mod download and the mod <meta> tag should work with each other besides your suggestion of go mod download VCS-PATH.
But I'd love a confirmation that the mod <meta> tag feature is indeed intended for my two suggestions in my previous comment (go mod download vcs-path (not vanity path) and `direct upload) by design.
Thanks again :)

@marwan-at-work One of the use cases where the mod go-import meta tag feature seems to work well is for publishing modules that do not have a counter-part public VCS.
For example, the module dmitri.shuralyov.com/test/a has a vanity import path and it uses the mod type, but there is no public accompanying VCS. New versions of that module are published directly to the module proxy that is providing it. The module proxy is just a static filesystem being served over HTTP, using http.FileServer. As a result, this problem does not come up in that setup.
I agree that it becomes problematic if the mod type is meant to used to augment a module with a vanity import path that has an underlying public VCS and new versions of the module are pushed to the VCS. I'm not currently sure how that should be handled.

Note that go mod download vcs-path isn't viable, either. The resultant ZIP archive will contain file paths prefixed by the VCS path.

looks like the answer is clear: the proxy implementation should not invoke go for which it is the authoritative source.


Nested arrays in SecurityGroupIngress property of EC2_SecurityGroup

When trying to add ingress rules directly as a property on a SecurityGroup the array gets nested with an outer array.
EC2_SecurityGroup("SampleGroup"){
    VpcId Ref("VpcId")
    GroupDescription "Sample group"
    SecurityGroupIngress [{:IpProtocol=>"tcp"}]
  }

Will render the following.
"SecurityGroupIngress": [
          [
            {
              "IpProtocol": "tcp"
            }
          ]
        ]

I can see where it is all happening...well I think so. https://github.com/stevenjack/cfndsl/blob/master/lib/cfndsl/Plurals.rb#L7 I have not figured out how to fix it, if someone would like to give me some pointers I am happy to have a crack.

Try this
EC2_SecurityGroup("SampleGroup") {
  VpcId Ref("VPC")
  GroupDescription "My group"
  SecurityGroupIngress { IpProtocol "tcp" }
}

Renders:
"SampleGroup": {
  "Properties":{
    "VpcId":"asdfasdf",
    "GroupDescription":"Sample group",
    "SecurityGroupIngress":[{"IpProtocol":"tcp"}]
  },
  "Type":"AWS::EC2::SecurityGroup"}}}
}

(If you insist on wanting to pass in a hash to the SecurityGroupIngress property, effectively bypassing cfndsl's type contructor for the property, you have to do it this way
EC2_SecurityGroup("SampleGroup"){
    VpcId Ref("VpcId")
    GroupDescription "Sample group"
    SecurityGroupIngress( {:IpProtocol=>"tcp"} )
  }

There is lots of weirdness going on here. First, array type property declarations are designed to append a single item on to the list of items. If you pass it an array, it dutifully pushes the array on to the collected list of objects. Also, when you use this form, cfndsl assumes that you know what you are doing, sometimes this is a good thing in that it lets you pass in a hash representing an AWS type that has not been fully supported in cfndsl yet, but often, it just confuses people.
Another part of the weirdness has to do with ruby. Ruby lets you make function calls on a single argument without explicit parenthesis. This is what your original SecurityGroupIngess declaration was doing, with an array as an argument. However, you cannot pass a hash this way, as the ruby interpreter thinks that you are passing a code block. This is why my second example has explicit paranthesis...

@tbenade did this help you out?

My apologies @stevenjack & @howech  I have not had a try yet. I will look at it shortly. One thing I would say is the types yaml https://github.com/stevenjack/cfndsl/blob/master/lib/cfndsl/aws_types.yaml states the expectation is an array, hence me wanting to use an array.
Given CloudFormation supports an array in the API will the DSL support defining more than one rule?

NetworkInterfaces in EC_Instance is of a similar format and this seem to generate without the nested array.
AWS_EC2_Instance("myInstance") {

  ImageId "myAMI"
  InstanceType "m3.medium"
  KeyName "myKey"

  NetworkInterfaces [
    {
      "AssociatePublicIpAddress" => "true",
      "DeleteOnTermination"      => "true",
      "Description"              => "Primary network interface",
      "DeviceIndex"              => 0,
      "GroupSet"                 => ["mySG1"],
      "SubnetId"                 => "mySubnet1"
    },
    {
      "AssociatePublicIpAddress" => "true",
      "DeleteOnTermination"      => "true",
      "Description"              => "Secondary network interface",
      "DeviceIndex"              => 1,
      "GroupSet"                 => ["mySG2"],
      "SubnetId"                 => "mySubnet2"
    }
  ]
}

generates
      "myInstance" : {
         "Type" : "AWS::EC2::Instance",
         "Properties" : {
            "NetworkInterfaces" : [
               {
                  "DeviceIndex" : 0,
                  "SubnetId" : "mySubnet1",
                  "Description" : "Primary network interface",
                  "GroupSet" : [
                     "mySG1"
                  ],
                  "AssociatePublicIpAddress" : "true",
                  "DeleteOnTermination" : "true"
               },
               {
                  "SubnetId" : "mySubnet2",
                  "Description" : "Secondary network interface",
                  "DeviceIndex" : 1,
                  "GroupSet" : [
                     "mySG2"
                  ],
                  "DeleteOnTermination" : "true",
                  "AssociatePublicIpAddress" : "true"
               }
            ],
            "KeyName" : "myKey",
            "ImageId" : "myAMI",
            "InstanceType" : "m3.medium"
         }

from aws_types.yaml

  "AWS::EC2::SecurityGroup" :
    Properties:
     ....
     SecurityGroupIngress: [ EC2SecurityGroupRule ]
     SecurityGroupEgress: [ EC2SecurityGroupRule ]

  "AWS::EC2::Instance" :
   Properties:
    ....
    NetworkInterfaces : [ NetworkInterfaceType ]
    ....

As mentioned in #109 my workaround (for the moment) is to remove the [ ... ] from aws_types.yaml
  "AWS::EC2::SecurityGroup" :
    Properties:
     ....
     SecurityGroupIngress:  EC2SecurityGroupRule
     SecurityGroupEgress:  EC2SecurityGroupRule

I've looked at the comments in  https://github.com/stevenjack/cfndsl/issues/107 but am still having problems with SecurityGroupIngress/SecurityGroupEgress where a list of rules is to be applied. (see previous comment in this issue for an example of what I'm trying to do).

I admit I am having problems with this too. A list of rules in Ingress/Egress only works if I do what @yumpy is doing above and remove the brackets around EC2SecurityGroupRule. I'm not sure if I'm working around a real problem or just not seeing a Better Way to pass a list of rules to a security group.

I've still not found a way to get this to work without removing the brackets around EC2SecurityGroupRule. If anyone has managed to get it working please could you post an example here. Thanks.

@yumpy Here's how I got it to work with a single entry:
SecurityGroupIngress( { :IpProtocol=>"tcp", :FromPort=>"22", :ToPort=>"22", :CidrIp=>"<IP_ADDRESS>/0" } )

Thanks @rmurphy-stelligent. That works well. Based on your example I've also tested with passing a list in this format.
    SecurityGroupIngress(
        [
            {
                CidrIp: '<IP_ADDRESS>/0',
                IpProtocol: 'tcp',
                FromPort: 22,
                ToPort: 22
            },
            {
                CidrIp: '<IP_ADDRESS>/0',
                IpProtocol: 'tcp',
                FromPort: 3389,
                ToPort: 3389
            }
        ]
    )

this generates
                "SecurityGroupIngress": [
                    {
                        "CidrIp": "<IP_ADDRESS>/0",
                        "FromPort": 22,
                        "IpProtocol": "tcp",
                        "ToPort": 22
                    },
                    {
                        "CidrIp": "<IP_ADDRESS>/0",
                        "FromPort": 3389,
                        "IpProtocol": "tcp",
                        "ToPort": 3389
                    }
                ],

I think I may have identified the issue here. aws_types has the following entries
"AWS::EC2::SecurityGroup" :
  Properties:
   SecurityGroupIngress: [ EC2SecurityGroupRule ]
"AWS::ElasticLoadBalancing::LoadBalancer" :
  Properties:
    Listeners: [ Listener ]

So you would expect the following to work
EC2_SecurityGroup('WebSecurityGroup') {
  SecurityGroupIngress [
     EC2SecurityGroupRule {
      IpProtocol                 'tcp'
      ToPort                     '80'
    }
    EC2SecurityGroupRule {
      IpProtocol 'tcp'
      ToPort     '22'
     },
  ]
}

ElasticLoadBalancing_LoadBalancer('WebLoadBalancer') {
  Listeners [
    Listener {
      LoadBalancerPort 80
    }
    Listener {
      LoadBalancerPort 80
    },
  ]
}

The LoadBalancer works fine but the SecurityGroup complains about EC2SecurityGroupRule being not found.
The issue is at https://github.com/stevenjack/cfndsl/blob/master/lib/cfndsl/CloudFormationTemplate.rb#L100-L129
it takes Listeners converts to singular and expects the internal entry to be called Listener. This means you can make the first example work by doing the following
EC2_SecurityGroup('WebSecurityGroup') {
  SecurityGroupIngress [
     SecurityGroupIngress {
      IpProtocol                 'tcp'
      ToPort                     '80'
    }
    SecurityGroupIngress {
      IpProtocol 'tcp'
      ToPort     '22'
     },
  ]
}

So I'm not sure here what is actually wanted. Does aws_types.yaml define what things should be called. So should it be called EC2SecurityGroupRole or is it always just the singular?

I have a feeling we should actually use EC2SecurityGroupRole since I get a wierd double show up when I try the other way. I have some code locally to make that work if it is what we want.

@johnf thanks for running with this. I look forward to your PR being merged.

FYI 0.8.3 implemented breaking changes for those who used the workaround I mentioned in December of 2015. Be ready to update the syntax before upgrading.


I see the ‘Serialize a one-to-one relationship’. How would I mark it not only as a foreign key, but, eg SQLite “On UPDATE CASCADE”?
thank you!

I'm not sure I understand your question.  Can you provide a code example with how the code behaves versus what you would expect?

I'm going to close this as there hasn't been any activity


j313 support?

I cloned the j314 config and  basically "s/j314/j313/g"'d it all.  ran the scripts.  i changed the status=disabled to 'okay' in my DTS file.  Audio devices now show up in pulse audio, but still no sound.
Note: I had audio/speakers on this macbook working perfectly about 6 months ago just by modifying my dts. Not sure what happened but I'd love to have it back!
Any suggestions or tips?

Well without looking at any logs or debug information, I can already tell you that s/j314/j313/d isn't going to work at all. The speaker array on that machine is entirely different and you will break Pipewire by making it try to map six channels to an array in which there are four. There's a reason I don't support that machine here.
The actual problem here is probably going to be that you haven't set the speaker playback mux to secondary in alsamixer or installed the Asahi UCM2 files. Try doing both.

Thanks for the reply.  I do have alsa-ucm-conf-asahi installed as well as a /etc/modprobe.d conf file with "options snd-soc-macaudio please_blow_up_my_speakers=1".  Based on what you just said, I take it no simple changes like removing the extra two (subwoofer?) channels from your 10-j314-sink.conf   etc,  would make it suitable for the j313 hardware?
The problem is, if I remove /etc/pipewire/pipewire.conf.d/10-j313-sink.conf(derived from your j314 config) then I no longer have any output devices at all besides "dummy output".   I wish I could figure out what changed since my speakers were working just fine at one time with only the simple .dts file modification.  Any other ideas?  I can post whatever debug output may be helpful. However, feel free to close if j313 is too far outside of your intended scope

The output of asahi-diagnose would be a good place to start.

OK!  right this way: https://dpaste.com/HPE5HVGXA

Nothing in there jumps out at me as being a kernel issue. The fact that you only get dummy outputs without the Pipewire
config actually suggests that the UCM conf is not being parsed correctly. Can you try moving the macaudio folder from /usr/share/alsa/ucm2/conf.d/ and see if that makes some sinks appear?

holy crap - speakers are working fine now, thank you!!!  so somehere along the line I mustve saw the package alsa-ucm-conf-asahi and thought 'yeh, i want this' and thats what ended up breaking my sound?   Seems j313 audio work more or less 'out of the box'  but most other models require special configs?

IIRC the problem is with how Pipewire parses UCM files, not the files themselves. PulseAudio had the same issue at some point.

Same for me and anyway I read that for macbook pro 14 2021 the safety deamon should work and on github is marked “if tou foolow these steps its safe. Only thing is not knowing hiw to enable speakers in device-treemvgCombassJean-Marie<EMAIL_ADDRESS>485894441BE 0769.937.302IBAN BE58 3632 1574 1679Op 9 jun. 2023 om 14:59 heeft ToCodeABluejay @.***> het volgende geschreven:
i changed the status=disabled to 'okay' in my DTS file. Audio devices now show up in pulse audio, but still no sound.
Could you possibly share what DTS file you edited to enable audio? I would like to give it a try, and would be willing to spend some time on the configuration to get it, if not right, then at least usable and not particularly dangerous...I have re-configured the files in this repo in a similar way and have also installed 'alsa-ucm-conf-asahi', but I would really like to get working on this. I don't do anything that would require intensive use of speakers on high volume, nor do I need a perfectly mastered EQ, but merely having audio at all makes a huge difference in being able to use any setup for any extended period of time. Thank you very much!!
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you are subscribed to this thread.Message ID: @.***>


Frontend routing

Introduce crossroads, a JavaScript URL router. This will let us
perform logic client-side based on which page is served. The first
use-case is to only mount the relevant flight.js components for
which page we are looking at.
query-string is an npm module that parses query strings. We
replace the home-baked jquery plugin with this npm module instead.
main.js is simplified and rewritten to ES6.

Nice progress.. Thanks!

Thanks for the quick review!


Add mermaid chart for FinalitySignature lifecycle

This PR adds mermaid chart for FinalitySignature lifecycle.
Closes #3721.
Please note that you can easily preview the graph on https://mermaid.live/ or by invoking
cargo doc --document-private-items --open

and navigating to struct FinalitySignature.

@AlexanderLimonov
After a conversation with @Fraser999 I updated the graph slightly. Because I added hyperlinks between graphs in our documentation the recommended way to view it is by invoking cargo doc --document-private-items --open and view in browser.

bors r+


TypeError:  no implicit conversion of Symbol into Integer using nested hash and rule

Hello,
I'm getting an error in the following combination

gem 'dry-validation', '~> 1.4
Affects my production application: YES.
Ruby version:  '2.5.7'
OS:  Mac OS

class ValidateParams < Dry::Validation::Contract
   schema do
     required(:data).hash do
       required(:relationships).hash do
           required(:object).hash do
             required(:data).hash do
                required(:id).filled(:string)
            end
          end
        end
      end
   end

  register_macro(:format) do |macro:|
     if value&.!~ macro.args.first
       message = 'nvalid format'
       key(keys.flatten).failure(message)
     end
  end

  rule(%i[data relationships object data id]).validate(format: /some reg exp/)
end

scenario:
I'm trying to check that the type of the nested hash is Hash,
for this purpose, in specs, I assign to it an Array, so I expect to get a message:
{data: {relationships: {object: {data: ['must be a hash']}}}}
RSpec.describe ValidateParams do
 let(:validation) { described_class.new }
 context 'invalid type of inested hash' do
    before do
      params[:data][:relationships][:object][:data] = []
    end

    it 'looks like failure' do
       message = {data: {relationships: {object: {data: ['must be a hash']}}}}
       expect(validation.call(params).errors.to_h).to eq(message)
    end
 end

instead of that, I get the following error:
  Failure/Error: if value&.!~ macro.args.first

     TypeError:
       no implicit conversion of Symbol into Integer

Please note that the error started to occur only after adding the rule which checks for the format of a key included in the nested hash.
if I change the checking type to sting or integer I get another error:
before do
  params[:data][:relationships][:object][:data] = 'some string'
end

Failure/Error: if value&.!~ macro.args.first

     TypeError:
       String does not have #dig method

Also, it might be  important that the  point where the error happens is the method 'value'

hey @TimoMoss thanks for reporting this. I didn't manage to fix it in 1.6.0 but we'll get to it eventually in 1.6.1 🙂


getting the wrong person id in the callback

Hello,
Any idea what is causing this, AFAIK it's from server.py sending the -1 index instead of 0, in the meantime, the rendered picture is correct, while the detected faces IDs shown in the #peopleInVideo are wrong.

I think this is being caused by faulty logic in server.py, starting at line 302: https://github.com/cmusatyalab/openface/blob/5ca23547fcae51e922de9e7e261fffec39f28e58/demos/web/server.py#L302

I'll fix this over the weekend


Improve code structure

I finally decide to fork qgriffith repo and dockerize it better than repair this mess. If it can help you is here.

Is there a reason you're doing it off the qgriffith repo rather than this one? There's not much from your branch that we can use, we already have docker support and there's work being done on improving it #83 (although I'm not sure what the progress is on that).

The actual code in the api and node apps, IMO, aren't too bad. As @hermzz said, we are using docker and have a PR and tickets open to improve infrastructure.
I'm going to close this for now. Please reopen this if you want to explain more about how you think the code can be improved. If you have some specifics of things that you feel can be improved, then please open a separate issue about it and we can discuss it.


Change zero-width base case for Andr

Type of Improvement: operator semantics
API impact: changes behavior of user code!
Backend code generation impact: andr of zero-width wires now emits 1'b1.
This fixes the issue from #1344. Since the behavior flagged as undesirable in that issue gets introduced in ZeroWidth, and since it's possible to observe it before Verilog emission, I fixed it there rather than in the emitter.
This change pattern-matches an Andr with a zero-width argument. It also makes one optimization, as it replaces it with UIntLiteral(1) rather than the most literal substitution of DoPrim(Andr, Seq(UIntLiteral(1)), Nil, BoolType).

I updated the spec with some commentary on the inductive base cases.
As far as the other reductions go, they get their values as a consequence of the fact that literally all zero-width expressions in the design that are not children of a Cat are brute-force replaced with either UIntLiteral(0) or SIntLiteral(0).
I agree with you that explicitly putting the behavior of the the other reduction patterns in might help with clarity. However, this argument also applies to the other non-width-preserving operations like Eq, Neq, so it might make sense to add explicit patterns for all of these if not just for Andr.
I imagine the original conception was that substituting 1-bit literals as "singular values" in place of all the zero-width operands was sufficient for those, but it kind of hidden in the implicit behavior of the whole pass.

There is another operator that we should think about: shr of a signed zero-width value must return a one-bit signal that contains the sign bit. Currently it returns zero 🤷♂
That one feels like it definitely deserves an explicit pattern in the transform source.

Note: I only actually checked this now... but there is a slight generation difference between andr and orr/xorr:
  assign out_0 = 1'h1;
  assign out_1 = |1'h0;
  assign out_2 = ^1'h0;

I think cleaning all of this, and the additional operators you mention @albert-magyar, would make sense in a follow-up PR. This shouldn't be hurting anything as-is, though.


Starrocks Can I use catalog to query ClickHouse? If so, what should I do?

Feature request
Is your feature request related to a problem? Please describe.

Describe the solution you'd like

Describe alternatives you've considered

Additional context

Currently no.   I would export the data and then import into StarRocks.  Another option is to use Apache Flink 3.0 CDC to move the data from Clickhouse to StarRocks.

The feature is supported. You can find more details at https://github.com/StarRocks/starrocks/pull/42930.


"Persistent Blob" extensibility request

Dear AL Gurus,
We do have scenario where we use "Persistent Blob" table across multiple companies. We are downloading PDFs from another company by using CHANGECOMPANY on NAV2018.
Now, when moving to extensions, we have an issue since this table is marked as Internal and we cannot access it. Existing functions in codeunit 4101 does not support this scenario either.
I see few options available:

remove internal property from table 4151 "Persistent Blob"
add new parameter "CompanyName" to function CopyToOutStream on codeunit 4101 "Persistent Blob"

Could you please implement one of it?
Best Regards,
Gintautas

Hey @gntpet
The scenario you described is definitely a valid one and it was not considered in the current design.
We have logged an issue on our side, but talking from experience, it might be faster if you decide to contribute a solution to Persistent Blob and related object.

Hi again @gntpet
Unfortunately, the request didn't make the cut as the scenario isn't broadly used. However, we would still gladly accept your contribution, should you decide to make it.


PixelFormat negotiation fails with x11vnc server

Hello,
I tried to run jfxvnc against a x11vnc server.
By using the actual github version the server quits the communication with the log entry:
15/11/2017 12:00:58 Pixel format for client <IP_ADDRESS>
15/11/2017 12:00:58   32 bpp, depth 24, little endian
15/11/2017 12:00:58   uses a colour map (not true color).
15/11/2017 12:00:58 rfbSetTranslateFunction: client has colour map but 32-bit - can only cope with 8-bit colour maps

So I tried to force the jfxvnc viewer into RGB_555 pixel format e.g. by trying to set DEFAULT_PIXELFORMAT in org.jfxvnc.ui.control.VncImageView.java:47 to PixelFormat.RGB_555.
When I do this the server assumes
15/11/2017 12:15:33 Pixel format for client <IP_ADDRESS>:
15/11/2017 12:15:33   16 bpp, depth 16, little endian
15/11/2017 12:15:33   true colour: max r 255 g 255 b 255, shift r 16 g 8 b 0

which looks fine - however jfxvnc throws an IndexOutOfBoundsException :
00:39:02.693 [vnc-connection-17] DEBUG org.jfxvnc.net.rfb.codec.ProtocolHandler - request full framebuffer update
00:39:04.046 [JavaFX Application Thread] ERROR org.jfxvnc.ui.control.VncImageView - rect: RawImageRect [x=0, y=0, width=1024, height=768, pixels.capacity=1179648, scanlineStride=3072]
java.lang.IndexOutOfBoundsException: null
	at java.nio.Buffer.checkIndex(Buffer.java:540)
	at java.nio.DirectByteBuffer.get(DirectByteBuffer.java:253)
	at com.sun.javafx.image.impl.ByteRgb$ToByteBgrfConv.doConvert(ByteRgb.java:150)
	at  com.sun.javafx.image.impl.BaseByteToByteConverter.convert(BaseByteToByteConverter.java:103)
	at  com.sun.javafx.image.impl.BaseByteToByteConverter.convert(BaseByteToByteConverter.java:34)
	at com.sun.prism.Image$BaseAccessor.setPixels(Image.java:1006)
	at com.sun.prism.Image.setPixels(Image.java:685)
	at javafx.scene.image.WritableImage$2.setPixels(WritableImage.java:193)
	at org.jfxvnc.ui.control.VncImageView.render(VncImageView.java:124)
	at org.jfxvnc.ui.control.VncImageView.lambda$accept$18(VncImageView.java:102)
	at com.sun.javafx.application.PlatformImpl.lambda$null$173(PlatformImpl.java:295)
	at java.security.AccessController.doPrivileged(Native Method)
	at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(PlatformImpl.java:294)
	at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)

Interesting as well that the Apps Info Panel shows still a Depth from 24 (32bpp)...
I tried to force RGB_555 on some more places where it looks like it is set/get - but no success yet.
Is there a way to force the complete App to be on RGB_555 ? (that could be as well some feature...)
Many Thanks
Kind Regards
Thomas Schmidt

yes, there are some changes required for supporting 16bit colors. Until now only 32bit(24bpp) or the Colormap 8bit format should work where the highest available server pixelformat is selected by default.

would this issue fixes?


What's the structure of dataset

Hello,
I'm gonna train this model with my datasets. How can I start? Where should the files to be placed?
thanks!

I find the solution myself. pre-process  code is in Pattern_Generator.py


Keyboard Manager to apply Remap a key to a specific keyboard layout

Description of the new feature / enhancement
In Keyboard manager - Option to apply a Remap a key feature to a single keyboard layout, not all keyboard layouts installed.
Scenario when this would be used?
Users with multiple keyboard layouts installed and need to replace keys for various physical keyboard variations.
This could look like this:
https://i.imgur.com/DGl0dOo.png
https://i.imgur.com/uWSFNEr.png
Supporting information
No response

currently not possible due to api limitations to best of our knowledge, we'd solve this via profiles so you can quickly swap


Breaks jest-expo

When using jest-expo as a preset for Jest (I'm working on a detached Expo project, jic) and then trying to use react-native-mock-render by adding this line to my Jest config file:
jest.mock('react-native', () => require('react-native-mock-render'), { virtual: true });

This error occurs when running my tests:

The Expo SDK requires Expo to run. It appears the native Expo modules are unavailable and this code is not running on Expo.

The failing check is at node_modules/expo/src/environment/validate.js:
if (!NativeModules.ExponentConstants) {
  throw new Error(ERROR_PASTED_ABOVE);
}

I believe this happens because both libraries are mocking react-native in a non-Object.assign(rn, rn1, rn2)-form.
Couldn't both libraries work together somehow? I believe this would allow things like mounting (as opposed to shallowing) with enzyme, jsdom, and react-native-mock-render on test suites.

btw this is in my packages.json:
"jest": {
  "preset": "jest-expo",
  "setupFiles": [
    "<rootDir>/jestConfig.js"
  ],
  "timers": "fake",
  "transformIgnorePatterns": []
},

Wondering how relevant this is on detachment, but currently this is important to me too.
Thanks for the homework @lropero - interested if any project maintainers have any hints on your comments/suggestions?

This is also an issue for me

I believe you could implement something custom by creating your own version of mock.js and/or react-native.js that did the mixing and matching in the way that you wanted.
Unfortunately, this is out of scope of what this package is intended to do right now.  I'm going to go ahead and close this issue, but if you have any suggested code changes that would make that work easier for you or add to this project in a way that would make it support your use case I'm happy to review and merge your PR.


UP-4817 - Remove console.log debug message

Checklist

[x] the individual contributor license agreement is signed
[x] commit message follows commit guidelines

Description of change

UP-4817
Console.log message should be disabled for production.
Or in a better way a function to log should be called with a parameter setted to active or not console.log messages.

Changes Unknown when pulling 8e04d30030ba2e0d0ce43f6bd2bde0fa293e1226 on jgribonvald:patch-2 into ** on Jasig:master**.

Coverage decreased (-0.007%) to 22.97% when pulling 5d375e7c5704bc1e81ab96ed284e946c8c6a9ded on jgribonvald:patch-2 into 68baa1987c5b7a20bb8f0c15d8335e5f636e9022 on Jasig:master.

Also applied to rel-4-3-patches as 3ddfbf8889108e1ffa5f67e17195a99d20c7ce40 and f923bdcb41162691c80406248704ecc8502a796d

Coverage decreased (-0.01%) to 22.966% when pulling 5d375e7c5704bc1e81ab96ed284e946c8c6a9ded on jgribonvald:patch-2 into 68baa1987c5b7a20bb8f0c15d8335e5f636e9022 on Jasig:master.


[build] drop py3.6/3.7 support and update CI default to py3.10

This PR:

drops support for python 3.6 and 3.7 (latest packages mostly have a mimum python version from 3.8 for example pytorch 2.0)
update CI also to be up to date
update pytorch dependencies to match with py3.10

Any feedback is welcome :)

@charlesmindee If we want to merge it you should disable the required checks in the GitHub actions merge it and enable the same updated checks again as required (you are the only one with repo Admin rights) :)

@frgfm i personally prefer especially for tests to have 2er steps (3.8 | 3.10 | 3.12 ..) but i am also fine to test it always on the most used python version :)
But all tests was also running with python 3.10 so good to know :)
Now it is up to @charlesmindee :)


Prevent emitting keyPressed event when using the navigation buttons

When using the navigation buttons, the pressed key is also emitted by the keydownEvents property of the MatImageOverlayRef class. As these buttons have already been handled by the MatImageOverlay class, the key should not be emitted by  keydownEvents.

Solved with pr #250


Refactor progress report and include metadata about open executions

It is useful to know how many of corrupted workflows are open because it indicates some level of safety for performing the clean operation.

Coverage decreased (-0.04%) to 68.785% when pulling 964e146430b3cb5ff732ab8b7b98cdd866bb740f on andrewjdawson2016:OpenExecutions into 5945b667cbbbdeb736f72ef9c5c8a77630b95c9c on uber:master.


[FLINK-19473] Implement multi inputs sorting DataInput

What is the purpose of the change
This PR implements sorting inputs for multi input operators/tasks. It is based on the work in #13521
First I sort all inputs individually and after that I do a sorting merge of all the inputs to make sure that operator sees all incoming records with the same key from all inputs.
Brief change log
For a more thorough explanation see the commits messages. Some highlights:

Some of the commits refactor the TwoInputStreamProcessor/MultiInputStreamProcessor etc. to reduce code duplication
Some of the commits extract the instantiation logic out of the processor and moves it to the Task. It makes it a) easier to instantiate in tests b) we need to pass less arguments to the ctor from the Task
One of the commits implements proper AvailabilityProvider handling logic, which did not work before.

Verifying this change
Added tests in:

MultiInputSortingDataInputsTest
SortedDataInputITCase
SortingBoundedInputITCase.java

Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (yes / no)
The public API, i.e., is any changed class annotated with @Public(Evolving): (yes / no)
The serializers: (yes / no / don't know)
The runtime per-record code paths (performance sensitive): (yes / no / don't know)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn/Mesos, ZooKeeper: (yes / no / don't know)
The S3 file system connector: (yes / no / don't know)

Documentation

Does this pull request introduce a new feature? (yes / no)
If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)

@flinkbot run azure

Just one comment regarding commits tags. I mostly use [minor] when it's minor refactoring changes because [hotfix] to me implies a fix for sth that was broken. Lately I have also seen Stephan do commits with just [refactor] ..., that's also an option.

@pnowojski I'd like to double check with you, are you fine with the current state of the PR?


B #2842: KVM probe of machines models stuck

why the libvirt url is hardcoded and not reading the sourced env var.
this is not working then.
http://docs.opennebula.org/5.8/deployment/open_cloud_host_setup/kvm_driver.html#opennebula-configuration
lhttps://github.com/OpenNebula/one/blob/def9661b4aa7c708d51679eb051ce8bebce09d80/src/im_mad/remotes/kvm-probes.d/machines-models.rb#L33


Document combinators, simple frame-mirroring demo

I wrote up some descriptions of how the various combinator bits work, and built an example circuit for simple single-frame mirroring between worlds.
Feathernet sections still in progress, and the notes about signal-dstid and unicast will probably need tweaking when someone actually implements that on the JS side.

I finished Bridged Feathernet section, and removed the Routed one for now.


Count from custom number

This library is distinctly lacking in this regard and it's frankly embarrassing. Why can't I count from two? Or hell, three?

Dear lord I just looked at the source and this is so much better than I originally thought


Captain v1.10.1 - Release Candidate

Changelog
Fixed

When fixing the interaction between the config file and flags while specifying reporters in #16, a subtle bug was introduced which caused an error when specifying reporters via CLI flag and none via config file.

Did we decide to do a merge commit for these? I’ll let you merge.

I'm.... not sure. I think for this one I'll probably just click the squash and merge and maybe we can circle back after planning Monday to chat more about this and land on a final solution (+ some docs/scripts on what to do)


Support from v4

I unfortunately can not merge this PR for a few reasons.

The commit does not target a specific issue(s). This is not a major problem but it is important for history.
The commit touches a lot of code that is unrelated to the goal of the commit.
Formatting changes in a several places are also unrelated (Repeat of 2nd point)
Given the change in device support it would be preferable for the pull request to target a new branch so that testing may validate the changes do in fact work on newly api levels (3.0 and 3.1).
The build failed, not entirely sure why. May be completely unrelated to this PR. Having the PR in a branch that is not master would make this easier to investigate.

I would suggest referring to guides on quality commits and pull requests.
http://blog.ploeh.dk/2015/01/15/10-tips-for-better-pull-requests/

yeah well, I had no intention on requesting a pull when I've made these changes, had a few obstacles and I've solved them(I didn't even fork the repo in the first place), so that is why it is like this... you can take only the part that is relevant to the v4 and ignore the rest.
Again, not that complicated, to do it yourself.
perhaps next time I'll plan a head...


NOISSUE - Add changelog target to Makefile

Signed-off-by: drasko<EMAIL_ADDRESS>What does this do?
Adds Makefile target to generate release notes

Codecov Report

Merging #493 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #493   +/-   ##
=======================================
  Coverage   87.93%   87.93%
=======================================
  Files          53       53
  Lines        2371     2371
=======================================
  Hits         2085     2085
  Misses        189      189
  Partials       97       97

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 9725c27...be2914a. Read the comment docs.


Add routeNameSplitter option from Nuxt 2

Discussed in https://github.com/nuxt/nuxt/discussions/15906

Originally posted by adamndev January 17, 2023
Hey guys
I'm in the process of migrating a fairly large app over to Nuxt 3 and can't find any mention of the routeNameSplitter option from Nuxt 2.
Our routes match the naming conventions from other frameworks including Laravel, so instead of events-attendees-create, we'd generate this route as events.attendees.create. I think this is much cleaner as routes are likely to contain dashes themselves.
Is there any way to replicate this at the moment? And is this likely to be added back in?
Thanks for all the hard work 👌🏻
I got a bit further in and realised that the simple regex used in a hook isn't gonna work and would need quite a bit of logic to figure out. This is a blocker to us migrating our Nuxt 2 app to Nuxt 3. Do you think we could get this added, please?

Added a draft PR. From my POV it could make sense to add the feature back as a normal regex might not be enough here to "fix" it, e.g. via hooks.

On reflection, it seems to be quite an involved piece of coding (that we will need to maintain within Nuxt) for an edge case. Something like this might work if you want to keep the Nuxt page name algorithm:
import { createResolver } from '@nuxt/kit';

// https://v3.nuxtjs.org/api/configuration/nuxt.config
export default defineNuxtConfig({
  hooks: {
    'pages:extend'(pages) {
      const root = createResolver(import.meta.url).resolve('./pages');
      function updateName(pages) {
        if (!pages) return;
        for (const page of pages) {
          let name = page.name.replace(/-/g, '.');
          for (const match of page.file.matchAll(/[\w\-]+/g)) {
            name = name.replace(match[0].replace(/-/g, '.'), match[0]);
          }
          page.name = name;
          updateName(page.children);
        }
      }
      updateName(pages);
    },
  },
});

https://stackblitz.com/edit/github-h24slc
Otherwise you can just set whatever name you want for your pages, based on the file path.

ّI also agree that adding customizable conventions adds the burden of long-term maintenance for Nuxt and also makes it harder to integrate with toolings outside of Nuxt lifecycle to consider customized conventions (ie: a devtools or CLI extension that generates pages).
Using hooks is a nice idea! (perhaps expose as a migration-helper module/nuxt2-3-bridge?)
In general, re using dots for names, we also use them for suffixes (component.server.vue) which can be potentially conflicting however i respect that you might like the alternative convention, it can be opt-in via a module.

Good points @danielroe and @pi0!
Given that there is a suitable workaround, would you vote for not introducing the feature to reduce maintenance effort in the future?

Closing here as there is a workaround possible for user land and to reduce maintenance burden as discussed before ☺


Update OpenAPI docs for V2 API specification

As a follow-on to https://github.com/edgexfoundry/edgex-go/pull/2309, address:

To remain transport agnostic, pagination primitives must be added to the appropriate request and response DTOs. This doesn't preclude the HTTP implementation from populating those values from optional parameters on the use-case endpoint URL.

Individual read and delete endpoints do not have corresponding request and response DTOs.

(See specifically https://github.com/edgexfoundry/edgex-go/pull/2309#event-2967934285.)

Closing as out of date


⚠ Bofrost.fr has degraded performance

In bf8b62e, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 1338 ms

Resolved: Bofrost.fr performance has improved in 471afc5 after 2 minutes.


chore: suppress blib2to3.pgen2.driver output to log

Verified that the outputs are indeed suppressed in local test.
Fixes #149.

[x] Tests pass

@nicain sob why are you not yoshi-python 😢

Please take a look again!


Log warning if glossary definition is found within teacher block

Glossary definitions should avoid being placed within teacher blocks as it will cause some definitions to not appear in the student version of the guide (which can lead to missing links).

This was fixed in #356.


[BUG] SelectMenu cannot be added to ActionRow

Describe the bug
When trying to add a SelectMenu to an ActionRow, an AttributeError is raised.
Reproducing steps
I'm on the unstable branch, with pip freeze giving the following version number
discord-py-interactions @ git+https://github.com/interactions-py/library@042a848cf9f89a8857caef63870c2111718d2aa3
When trying to add any SelectMenu to an ActionRow, the bot crashes. The following code is an (almost) minimal example crashing on the 2nd to last line, there's no need for a bot instance for this to happen.
import interactions

options = [
    interactions.SelectOption(
        label='Overview Page',
        description='List all available commands',
        value='overview',
        default=True
    ),
    interactions.SelectOption(
        label='Parameters Page',
        description='Explain the different command parameters',
        value='parameters',
        default=False
    ),
]
help_selection = interactions.SelectMenu(
        custom_id='help_navigation',
        options=options,
        placeholder='Please select a category',
        min_values=1,
        max_values=1,
)

row_2 = interactions.ActionRow(components=[help_selection])
print(row_2)

What's normally expected
The ActionRow should be created and then outputted to console in the print statement.
What actually happened
Traceback (most recent call last):
  File "test.py", line 28, in <module>
    row_2 = interactions.ActionRow(components=[help_selection])
  File "/home/user/.local/lib/python3.8/site-packages/interactions/models/component.py", line 341, in __init__
    component._json["options"] = [option._json for option in component._json["options"]]
  File "/home/user/.local/lib/python3.8/site-packages/interactions/models/component.py", line 341, in <listcomp>
    component._json["options"] = [option._json for option in component._json["options"]]
AttributeError: 'dict' object has no attribute '_json'

The bug was briefly discussed on discord at https://discord.com/channels/789032594456576001/942850793172774984.
Based on that discussion, the method was likely broken within the last few commits.
Versions

[ ] I am using discord.py versions 1.7 and below with my code.

[ ] I am using 2.0 or higher, or a modified fork.

[ ] I am using dis-snek with my code.
[x] I am not using any of the listed above and am using the library code alone.

I think this (commit)[ca60c2e] broke it

That commit is logically correct, but i'll look into the issue.

ik, the issue is the commit breaks our code what was converting the object before, because now it is converted already

In reference to that commit, it effectively already does the same thing, but its refactored to not use the ._json attr when assigning options for redundancy
But before that commit, select menus broke when they're not in an action row (without doing explicit _json of course)
Moreover, this is (yet again) an actionrow recursive issue that's fixed in the latest commit (2dc1242)


Modify existing skills

Currently, 2 of the existing skills are in zip. Extract them and push them into the repo in a proper format as in Issue #2

I would like to work on this issue . can you assign it to me .

I would like to work on this issue . can you assign it to me .

Lets wait for @dalalvarun for the PR.

Lets wait for @dalalvarun for the PR.

Please review the PR @garimasingh128

Please review the PR @garimasingh128


disable Role implemented

Description

Implemented an endpoint to disable roles. This endpoint will allow admins to disable roles that are no longer required within an organization.
This endpoint allows an authenticated user to deactivate their account.

Related Issue (https://github.com/hngprojects/hng_boilerplate_nestjs/issues/256), (https://github.com/hngprojects/hng_boilerplate_nestjs/issues/65)

Motivation and Context

To provide an endpoint for admins to disable any role within their organization, ensuring that only authorized users can perform this action, and maintaining system security.
The purpose of the user deactivation endpoint is to allow users to deactivate their accounts, enhancing user control and data privacy.

How Has This Been Tested?

For the first issue
a. Write end-to-end backend unit tests for the full disabling process.
b. Write integration tests for the end-to-end role disabling process.
c. Test all instances for disabling a role (e.g., successful, failed, retry).
For the second Issue
a. Ensure the user is authenticated with a valid JWT token
b. The endpoint should accept only PATCH requests
c. The user status on the database should change to deactivated
d. Users should receive an email that the account has been deactivated.

Screenshots (if appropriate - Postman, etc):

Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[x] I have added tests to cover my changes.
[x] All new and existing tests passed.

Fix merge conflicts

Fix merge conflicts

Fixed ma.

There are still conflicts
Call the team leads attention to it when you've merged


[Core] Exempt versioning enums and discriminator enum/unions from documentation required rule

Closes https://github.com/Azure/typespec-azure-pr/issues/3107

:x: There is undocummented changes. Run chronus add to add a changeset or click here.
The following packages have changes but are not documented.

:x:@azure-tools/typespec-azure-core

Show changes

You can try these changes at https://cadlplayground.z22.web.core.windows.net/typespec-azure/prs/710/
Check the website changes at https://tspwebsitepr.z22.web.core.windows.net/typespec-azure/prs/710/


Add support for credentials with a SourceIdentity

Fixes part of: https://github.com/cargo-lambda/cargo-lambda/issues/724
When using cargo lambda deploy it creates a lambda execution role using your current credentials and then verifies it can assume it. If the current credentials have a SourceIdentity, it requires sts:SetSourceIdentity in the trust policy of the role so that it can propagate the SourceIdentity when it assumes the role.  This change adds that permission and then removes it once the role is successfully tested.  I tested this locally using credentials that had a SourceIdentity and it deployed successfully. I also verified the trust policy was successfully modified to be:
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "lambda.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}

I was not able to figure out the formatting error mentioned in my issue.

Thanks! Let me run some tests before merging it.

It appears adding a newline to the error correctly displays the recommendation to use the --iam-role flag so I've updated the PR.


Test samples failed

When I tried the command :
java -jar build/libs/securify.jar -fs src/test/resources/solidity/transaction-reordering.sol
I got an error:

Here is the output of command : solc -version
Version: 0.5.2+commit.1df8f40c.Linux.g++
Thank you.

Do you have the latest version on master?

Sorry， I didn't get your point.  You mean the version of solc ?   The solc in my server is not the latest version.

I meant the latest securify version.

After I pull the newest code, the issue is solved. Thank you.


Send topics for detailed guide links

A Detailed Guide can be tagged to topics (specialist sectors) but this data is currently not being sent to the publishing-api.
Fixes https://govuk.zendesk.com/agent/tickets/1364404
I plan to follow this up with a PR to make sure this kind of error can't be introduced again.

👍


Navigation Events hitting every reducer, triggering navigate actions in other stacks

This will be based on the architecture below, using redux, based on the architecture here: https://reactnavigation.org/docs/guides/redux
/TabNavigator
    /StackNavigator - List
        /UserList - initial
        /UserProfile
    /StackNavigator - Search
        /UserSearch - initial
        /UserProfile

Current Behavior
Currently, if I am in the Search tab, i.e. using the Search StackNavigator, and am on the UserSearch Screen, if I dispatch a Navigate action, to go to the UserProfile, the reducer for each stack will respond to the action and trigger a new state. Thus both stacks will transition to the UserProfile.
However, I only wanted my current stack (the Search stack) to navigate to the UserProfile.
Expected Behavior
I would want to have a concept of current/active stack, so at the very least the state clearly shows which screen is the current, and based on that only dispatches actions to the one reducer, or something along these lines.
If not, how would I work around this problem?

Thanks for reporting.
I was quite sure there was another issue about this precisely, but couldn't find so I'll keep this open.
Somewhat related it https://github.com/react-community/react-navigation/issues/2270 - but anyway yes, at the moment something like what you are describing may happen if you have two routes defined with the same name, as far as I can tell. I actually think this is also the main cause of many reset issues (basically, it gets called on all navs and kaboom - yeah I know it's kinda simplified).
Anyway, the base workaround is to simply have a different name for each route. A more subtle one would be to, since you are in control of the actions/reducers, to hijack the behaviour, ex:
export const bottomTabBarReducer = (state, action) => {
  switch (action.type) {
    case 'JUMP_TO_TAB':
      return { ...state, index: 0 };
    case 'Navigation/BACK':
      return state;
    case 'Navigation/RESET':
      return BottomTabBar.router.getStateForAction(
        NavigationActions.reset({
          index: 0,
          key: 'BottomTabBar',
          actions: [NavigationActions.navigate({ routeName: 'EventsStackNavigation' })],
        }),
        state,
      );
    default:
      return BottomTabBar.router.getStateForAction(action, state) || state;
  }
};

I'll tag this as bug but tbh I'm not sure, it's more related to some feature requests already out there of having the navigators integrate https://github.com/react-community/react-navigation/issues/88

I was also considering creating separate NavigationActions for each stack, to better target a specific stack, but this felt like a more hacky workaround.

hi there! we changed the requirements for issues so we need to have an example that reproduces the problem. if you can provide that i will happily reopen. thanks!


[Retrofit] Treat all projects in LUNA_LIBS_PATH as available to import

Task created for a Pull Request.

This works, but while testing, I found another, related issue: #310 @mikusp take a look whenever you have some time on your hands.


MIP38 Edits TRUE

@LongForWisdom @prose11 Please see my attached MIP38-edits. I had hoped to send these edits as three different pull requests, apologies they are all combined in one. Please see comments on my three separate commits for my tracked changes to compare in your review!

Thank you, @tylerrihn ! :)

@blimpa woooh! I did it haha!


first apss rest of the specs stuff

WIP

This is all a good start. Once the shell's in place, it's a lot easier to go through and make targeted improvements.


Change bevy_core::Name to implement Deref<Target = str>

What problem does this solve or what need does it fill?
Currently, Name implements Deref, targeting Cow<'static, str>. This poses ergonomic issues, as it means there are two levels of indirection if one wishes to dereference to an &str. Additionally, it does not play well with generic code that expects Deref<Target = str>.
What solution would you like?
Change the Deref target to str. As far as I can tell, an immutable reference to a Cow does not offer any more functionality than a &str -- the Cow would need to be either mutable or owned in order to allow Cow-specific behavior. Thus, we should not lose any functionality by making this change.

Yup this stems from my initial misconception that Cow<'static, str> gave you true "copy on write" behavior for Strings. This is not entirely true (cloning an Owned cow results in another Owned reference). We've slowly been untangling code built around that assumption, but we missed this one. Thanks!


feat(go/adbc/driver/flightsql): expose FlightInfo during polling

Fixes #1571.

Filed #1584 to track down the flaky test


server: Log requests and user agents and return 200 to user agents that should not render the registry html

In some cases is desirable  to avoid rendering the html page or miss a cache when the request comes from a certain user agent.
We can implement this by allowing the user to pass a list of ignored user agents when starting staticreg server.
To make it easier, we can also log user agents when staticreg is started with a debug loglevel.

@pditommaso we got a PR in review for this, please take a look!

Cool! I leave the review to somebody else in the team


Update version flag in CONTRIBUTING.md

In commit 7f6a6f1b5e595a675efa899ad2f5809d90d65ba3 the flag to print the
version number changed from 'v' to 'version'.
This updates the CONTRIBUTING.md accordingly.

Codecov Report

Merging #184 into master will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff          @@
##           master   #184   +/-   ##
=====================================
  Coverage      75%    75%
=====================================
  Files           2      2
  Lines          40     40
=====================================
  Hits           30     30
  Misses          5      5
  Partials        5      5

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 f76fae5...5a75c88. Read the comment docs.

@unixlab thank you very much for your contribution


homebridge crashes when trying to access the DoorBird camera

With the most recent version of homebridge, the homebridge system crashes with trying to access the DoorBird camera:
TypeError: details.family.toLowerCase is not a function
at /usr/local/lib/node_modules/homebridge-doorbird/node_modules/ip/lib/ip.js:385:39
at Array.filter ()
at /usr/local/lib/node_modules/homebridge-doorbird/node_modules/ip/lib/ip.js:384:37
at Array.map ()
at Object.ip.address (/usr/local/lib/node_modules/homebridge-doorbird/node_modules/ip/lib/ip.js:379:37)
at DoorbirdStreamingDelegate.prepareStream (/usr/local/lib/node_modules/homebridge-doorbird/src/doorbird-stream.ts:177:31)
at processTicksAndRejections (node:internal/process/task_queues:95:5)
Any suggestions?

Has anybody else seen this behavior? Thank you.

i just fixed the issue by installing the latest version of IP:
npm install ip
Please fix the dependency version number in the package.json for the homebridge-doorbird plugin or put a note in the instructions.
Thank you.

Thanks…I’ll try to push an update in the near future as well.


add QPS, Latency etc metrics to grafana template

Add three new metrics: QPS,  Latency,  Total Unsuccessful Requests By routeId to grafana template. The preview are following:

Test by grafana-6.2.2,  grafana-7.0.5,  grafana-8.5.26

@maoling Please sign the Contributor License Agreement!
Click here to manually synchronize the status of this Pull Request.
See the FAQ for frequently asked questions.

@maoling Thank you for signing the Contributor License Agreement!


Upgrade Node: Updown

Parent ticket with all information: https://github.com/wellcomecollection/wellcomecollection.org/issues/10846

[ ] Node has been updated to the highest possible version
[ ] .nvmrc file has been added/updated

Work in #11004


#164829218 Add Search Functionality and Custom filtering based on parameters

Description
Users can view the time it will take to read an article (in minutes) so they can better gauge whether to read it now or bookmark it for later.
Type of change

[ ] Bug fix (nonbreaking change which fixes an issue)
[x] New feature (nonbreaking change which fixes an issue)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How Has This Been Tested?
Please describe the tests that you ran to verify your changes

[x] End to end
[x] Integration

Checklist:

[x] My code follows the style guide for this project
[x] I have linted my code prior to submission
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes

How should this be manually tested?

Clone the repository
https://github.com/andela/ah-centauri-backend.git
On completing of cloning

cd ah-centauri-backend
git checkout feature/164829218-search-filter-on-articles

Rename the .env.example file into .env and update the parameters with your own keys.

For Centauri team members you can use the keys shared through slack

Start the development server and send the following through postman

Get articles by author
GET /api/articles/q?author=username

A user retrieves all currently created articles by author specified

Get articles by title
GET /api/articles/q?title=title

A user retrieves all currently created articles by title specified

Get articles by created_at
GET /api/articles/q?created_at=2019-04-15 16:43:30.754181

A user retrieves all currently created articles by the created_at date time specified

Get articles by tags
GET /api/articles/q?tags=news,tech,world

A user retrieves all currently created articles by the tags specified

Get articles by all parameters
GET /api/articles/q?author=username&title=title&created_at=2019-04-15 16:43:30.754181&tags=news,tech,world

A user retrieves all currently created articles when all parameters are specified.

Pivotal Tracker
#164829218

@bl4ck4ndbr0wn good job on this.
Could you add the number of articles found in the response
Done. Kindly check


[WIP] Cross chain token transfer.

:x: Build AElf <IP_ADDRESS>7 failed (commit https://github.com/AElfProject/AElf/commit/29a34b84c3 by @shiwk)

:x: Build AElf <IP_ADDRESS>6 failed (commit https://github.com/AElfProject/AElf/commit/69da94fd4d by @shiwk)


OIPC - Create Complaint Flag on Open Requests

As an IAO user
I want to be able to mark a request as receiving an OIPC Review or Complaint
so that I, and the Ministry coordinator can know which requests have active complaints/reviews

Assumptions & Scope
This is the first of several stories aimed at allowing IAO users to flag requests as being subject to an OIPC review or complaint.
There can be multiple complaints or reviews associated to a request.
Applicants can complain about any decision government makes - issuing a fee estimate, a fee waiver decision, the adequacy of a search for records, the decision to take an extension, not responding by the legislated due date, application of severing etc.
Calendar pickers for date fields should all use the same functionality as elsewhere in the app
What is IN scope?
For this ticket, this will cover the creation of the OIPC complaint, and how to add separate complaints on requests that are currently open.
What is NOT in scope?
Behaviour to enter an OIPC review on a closed request will be covered in a separate user story
Queue updates and OIPC review flags will be covered in a separate user story
Notifications and system generated comments will be covered in a separate user story
Acceptance Criteria
Scenario 1: Create OIPC Review

GIVEN an IAO user is in the request details view of a general or personal request
WHEN they click on the Review Flag button
THEN a drop down will appear with the values: OIPC Review and No Review
AND No Review will be inactive

Scenario 2: Create OIPC Review - Select OIPC Review

GIVEN an IAO user has activated the Review flag drop down
WHEN they click OIPC review
THEN the drop down will close
AND they will be brought to the OIPC tracking section on the request view

Scenario 4: Mandatory Fields - Basic

GIVEN an IAO user is at the OIPC tracking details section
WHEN the review is first made
THEN the mandatory fields will be: OIPC No., Received Date, Review Type, Reason, Status

Scenario 5: OIPC Number Field

GIVEN an IAO user is at the OIPC tracking details section
WHEN they select the 'OIPC No.' open-text field
THEN they will have the ability to enter the OIPC number

Scenario 6: Received Date Field

GIVEN an IAO user is at the OIPC tracking details section
WHEN they select they click on the calendar picker for the received date field
THEN the calendar picker will open
AND the user can pick any date from the date today, to a date in the past

Scenario 7: Received Date Field - Complete Selection

GIVEN an IAO user has the received date calendar picker open
WHEN they select they select a valid date
THEN the calendar picker will close
AND the date will appear with the format YYYY-MM-DD

Scenario 8: Review Type Drop Down

GIVEN an IAO user is at the OIPC tracking details section
WHEN they activate the drop down for review type
THEN they will see the following options: Complaint, Review, and Investigation

Scenario 9: Reason Drop Down - Complaint

GIVEN an IAO user is at the OIPC tracking details section
AND the review type selected is Complaint
WHEN they activate the drop down for Reason
THEN they will see the following options: Adequate search, Extension, Fee Amount, Fee Waiver, Duty to Assist, Other

Scenario 10: Reason Drop Down - Review

GIVEN an IAO user is at the OIPC tracking details section
AND the review type selected is Review
WHEN they activate the drop down for Reason
THEN they will see the following options: Application of Exceptions, Deemed Refusal, TPN - 22, TPN - 21, TPN - 18.1, Reg 3, Reg 4, Reg 5, s. 43, Other

Scenario 11: Reason Drop Down - Investigation

GIVEN an IAO user is at the OIPC tracking details section
AND the review type selected is Investigation
WHEN they activate the drop down for Reason
THEN they will see the following options: Other

Scenario 12: Status Drop Down

GIVEN an IAO user is at the OIPC tracking details section
WHEN they activate the drop down for Status
THEN they will see the following options: Mediation, Investigation, Inquiry, Awaiting Order, Closed

Scenario 13: Outcome Drop Down

GIVEN an IAO user is at the OIPC tracking details section
WHEN they activate the drop down for Status
THEN they will see the following options: Abandoned, Withdrawn, Resolved in Mediation, Closed

Scenario 14: Inquiry Fields

GIVEN an IAO user has added an OIPC Flag to the file
WHEN they view the OIPC Details section
THEN the following sections will default to 'No': In Inquiry, In Judicial Review, Subsequent Appeal

Scenario 15: Inquiry Field - Yes

GIVEN an IAO user is on the OIPC Details section
WHEN they check 'Yes' for the Inquiry section
THEN the following additional fields will appear: Order Comply Date, Order No., Inquiry Outcome

Scenario 16: Mandatory Fields - Inquiry

GIVEN an IAO user is at the OIPC tracking details section for Inquiry
WHEN they enter information into any field
THEN all other inquiry fields will become mandatory

Scenario 17: Inquiry Outcome Drop Down

GIVEN an IAO user is at the OIPC tracking details section for Inquiry
WHEN they activate the drop down for Inquiry Outcome
THEN they will see the following options: Decision Upheld, Decision Partially Upheld, Decision Overturned

Scenario 18: Comply Date Field

GIVEN an IAO user is at the OIPC tracking details section for Inquiry
WHEN they select they click on the calendar picker for the Order Comply Date
THEN the calendar picker will open
AND the user can pick any date from the date the OIPC review was received to any date in the future

Scenario 19: Received Date Field - Complete Selection

GIVEN an IAO user has the Order Comply Date calendar picker open
WHEN they select a valid date
THEN the calendar picker will close
AND the date will appear with the format YYYY-MM-DD

Scenario 20: Judicial Review Field - Yes

GIVEN an IAO user is on the OIPC Details section
WHEN they check 'Yes' for the Judicial section
THEN the Yes box will be checked
AND the save button will be active

Scenario 21: Subsequent Appeal Field - Yes

GIVEN an IAO user is on the OIPC Details section
WHEN they check 'Yes' for the Subsequent Appeal
THEN the Yes box will be checked
AND the save button will be active

Scenario 22: Save button inactive

GIVEN an IAO user is at the OIPC tracking details section
WHEN all of the mandatory fields do not have values in them
THEN the common save button for the request will be disabled

Scenario 23: Save button active

GIVEN an IAO user is at the OIPC tracking details section
WHEN all of the mandatory fields have valued in them
THEN the common save button for the request will be enabled

Scenario 24: Save button activate

GIVEN an IAO user is at the OIPC tracking details section
AND the save button is active
WHEN the user clicks save
THEN the OIPC details will be saved

Scenario 25: Add Review/Complaint

GIVEN an IAO user is at the OIPC tracking details section
WHEN they click on the + symbol
THEN an additional OIPC detail section will appear
AND the save button will become inactive

Scenario 26: Remove Review/Complaint

GIVEN an IAO user is at the OIPC tracking details section
WHEN they click on the trash can symbol of a saved OIPC complaint or review
THEN a modal will appear with the text "Are you sure you want to delete this OIPC Review?"
AND the options will be continue or cancel

Scenario 27: Remove Review/Complaint - Continue

GIVEN an IAO user is on the modal for removing an OIPC Review
WHEN they click on the continue button
THEN the modal will close
AND the OIPC review details will be removed

Scenario 28: Remove Review/Complaint - Cancel

GIVEN an IAO user is on the modal for removing an OIPC Review
WHEN they click on the cancel button
THEN the modal will close
AND the OIPC review details will remain

Scenario 29: Remove Review/Complaint - Last OIPC Review

GIVEN an IAO user is on the modal for removing an OIPC Review
AND it is the ONLY OIPC review complaint
WHEN they click on the continue button
THEN the modal will close
AND the OIPC review details will be removed
AND the OIPC review details section will disappear

Scenario 30: Closed Date Field

GIVEN an IAO user is at the OIPC tracking details section
WHEN they select they click on the calendar picker for the Closed date field
THEN the calendar picker will open
AND the user can pick any date from the date today, to a date in the past

Scenario 31: Closed Date Field - Complete Selection

GIVEN an IAO user has the Closed date calendar picker open
WHEN they select they select a valid date
THEN the calendar picker will close
AND the date will appear with the format YYYY-MM-DD

Scenario 32: Outcome Selection - Open and Closed Request

GIVEN an IAO user has activated the Outcome Selection
AND the request is open or closed
WHEN they select the outcome
THEN a modal will appear asking: "Are you sure you are ready to select an outcome? This will complete the review and lock all fields" and the options will be to continue and cancel

Scenario 33: Outcome Selection Modal - Continue

GIVEN an IAO user has activated the Outcome Selection Modal
WHEN they select Continue
THEN the modal will close
AND all fields for the OIPC review will be inactive EXCEPT for the Outcome drop down

Scenario 34: Outcome Selection Modal - Cancel

GIVEN an IAO user has activated the Outcome Selection Modal
WHEN they select Cancel
THEN the modal will close
AND the outcome field will be blank

Scenario 35: Edit - Completed OIPC Review

GIVEN an IAO user is on the tracking section of a completed OIPC review
WHEN they click on the outcome dropdown
THEN the only Option will be amend

Scenario 36: Edit - Completed OIPC Review - Amend

GIVEN an IAO user is on the outcome dropdown of a completed OIPC review
WHEN they select 'amend'
THEN a modal will pop up asking: "Are you sure you want to amend this completed OIPC review? You will need to re-select an outcome to close it again." with the options to Continue or Cancel

Scenario 37: Amend OIPC Review - Continue

GIVEN an IAO user has activated the Amend OIPC Review modal
WHEN they select Continue
THEN the modal will close
AND all fields for the OIPC review will become active again
AND the outcome field will be empty and revert to its original selections

Scenario 38:  Amend OIPC Review - Cancel

GIVEN an IAO user has activated the Amend OIPC Review modal
WHEN they select Cancel
THEN the modal will close

Dependencies? What is the impact of this dependency? (If so, link dependency in the ticket, make it visible in a team´s backlog)
Validation Rules? (If yes, list here)
Design
https://jacklyn808742.invisionapp.com/console/share/3W2O64AP5C/987204834
Definition of Ready

[ ] Is there a well articulated User Story?
[ ] Is there Acceptance Criteria that covers all scenarios (happy/sad paths)?
[ ] If there is a user interface, is there a design?
[ ] Does the user story need user research/validation?
[ ] Does this User Story needs stakeholder approval?
[ ] Design / Solution accepted by Product Owner
[ ] Is this user story small enough to be completed in a Sprint? Should it be split?
[ ] Are the dependencies known/ understood? (technical, business, regulatory/policy)
[ ] Has the story been estimated?

Definition of Done

[ ] Passes developer unit tests
[ ] Passes peer code review
[ ] If there's a user interface, passes UX assurance
[ ] Passes QA of Acceptance Criteria with verification in Dev and Test
[ ] Confirm Test cases built and succeeding
[ ] No regression test failures
[ ] Test coverage acceptable by Product Owner
[ ] Ticket ready to be merged to master or story branch
[ ] Developer to list Config changes/ Update documents and designs
[ ] Can be demoed in Sprint Review
[ ] Tagged as part of a Release
[ ] Feature flagged if required
[ ] Change Management activities done?

@JHarrietha-AOT - this might be the biggest user story I've ever put together - and its mostly because of all the darn drop downs.
Based on some early feedback I've received - I've made some changes to some of the drop down options. Also note that if something goes to judicial review, or subsequent appeal, I think there should be additional fields to fill in to further break things down (eg - Judicial review will have a court number, a decision date, and a specific outcome that differs from Inquiry)
Give it a read, may need some design changes, happy to find time to discuss further.
cc @liseandtea  @lmullane @KyEggleston

Designs with versions following AC can be found here - link included in ticket with all fields (Adding all here for easy access)
OIPC Queue Design: https://jacklyn808742.invisionapp.com/console/share/3W2O64AP5C/975255940
OIPC Flag In-Active: https://jacklyn808742.invisionapp.com/console/share/3W2O64AP5C/975255941
OIPC Flag Active: https://jacklyn808742.invisionapp.com/console/share/3W2O64AP5C/987195648
Single OIPC Details w Investigator Field: https://jacklyn808742.invisionapp.com/console/share/3W2O64AP5C/987195649
Multi OIPC Details w Investigator Field: https://jacklyn808742.invisionapp.com/console/share/3W2O64AP5C/987195650
Single OIPC Details w-out Investigator Field: https://jacklyn808742.invisionapp.com/console/share/3W2O64AP5C/987204833
Multi OIPC Details w-out Investigator Field: https://jacklyn808742.invisionapp.com/console/share/3W2O64AP5C/987204834
Module for (last) Outcome Selected: https://jacklyn808742.invisionapp.com/console/share/3W2O64AP5C/987195651

Note from refinement: Judicial review and subsequent appeal - develop to be flexible for future fields, but not necessary right now.

Refinement Comments:
ReviewType: Complaint, Review, and Investigation
Reason: Adequate search, Application of Exceptions, Deemed Refusal, Extension, Fee Amount, Fee Waiver, Records do Not Exist, Duty to Assist, TPN - 22, TPN - 21, TPN - 18.1, Reg 3, Reg 4, Reg 5, s. 43, Other
Status: Mediation, Investigation, Inquiry, Awaiting Order, Closed
Outcome: Abandoned, Withdrawn, Resolved in Mediation, Closed, Amend - default “Select Outcome”
InquiryOutcome: Decision Upheld, Decision Partially Upheld, Decision Overturned
the position of the flags? - restricted below the watchers. OIPC review beside the watchers
what are the OIPC flag dropdown values? - No Review, OIPC Review. No Review is the default.
can we just enable OIPC flag alone without filling the OIPC review section? - No. They should fill in the OIPC details
is there any relation between review type and reason? any validation is needed? - Yes. a pdf will be shared for the validation
do we have any additional fields for In Judicial Review, Subsequent Appeal? - No for now. But, in future there are chances so build the BE accordingly.
do we have a separate save button for OIPC? - No. The common save button is used for OIPC
inquiry date validation - can enter only dates > today - The label should change to Order Comply Date. Validation is  with future dates. There will be a new field called RecievedDate added with validation of that day and past days.
can the OIPC complaint have more than 1 state(In Inquiry/Judicial Review/ Sub appeal)? - Yes, all can be selected as Yes
when the outcomes are closed for all sections, do we need the OIPC flag on? - it is not connected to outcome so it will be always on if at least 1 complaint added
How the edit should work? if the review already closed, should we allow them to edit again? - in general when the outcome is not selected, they should be able to edit. If the outcome is selected then all columns will be disabled, and if a change is needed, then select the "Amend" outcome and change the values.
No restriction in creating OIPC complaint even if there is an OIPC complaint exists without outcome
can ministry edit the OIPC review section? for ministry, we will just disable all the fields. - Separate US for Ministry View as the details should be flat text
can we close a request if there is OIPC review in progress? - should be able to close but it should be visible in the both dashboard. If all Complaints outcome has been entered, then no need to show in the dashboard
How the delete should work? any validation based on outcome or any other values? - No validations. Keep the delete button active all the time.
is there any axis sync? - Not using the existing axis sync option. A separate ticket will be created to bring all the historical OIPC requests to foi-flow
if they delete all the OIPC complaints, then change the flag to No Review
if they change the OIPC Review to No Review, then show a modal to delete all the OIPC  Details related that request

PDFs shared during the refinement:
https://bcgov-my.sharepoint.com/:b:/g/personal/lise_mino_gov_bc_ca/ESvBsZmrIvdEh_eStCWZIpIBssBb324wqRAcCgmJPrNM-w?e=zm71IX
https://bcgov-my.sharepoint.com/:b:/g/personal/lise_mino_gov_bc_ca/EVzMiVgBYhJMmu2RR1DpBHcBsA9sjlDlXwvRh7X5iO3jmQ?e=Z4o5AD

I've updated the AC For this based on the refinement discussion and notes I have.

@m-prodan @liseandtea
Do we need validations for OIPC No and order No? Currently it allows symbols and special characters. What is the format normally?

@nimya-aot The format for "OIPC No" and "Order No" is F23-00000. There will always be the capital "F" followed by the last 2 digits of the year, dash, then the number the order is in their sequencing. The number sequence is dependent on the amount received/orders created, e.g. F23-01 vs F23-123. Note that  "OIPC No" tends to have 5 numbers in the sequence F23-12345.

@Aman-Hundal Could you please add validations for OIPC No and Order No as Lise mentioned. Also currently ministry can flag the request as OIPV review. Could you please remove?

@Aman-Hundal Labels needs to be changed .could you please check scenario 15?

@m-prodan Do we need to include the closed state scenario on the AC's as per @JHarrietha-AOT design below?

Ministry view is currently being worked on and will get that done soon!. Will adjust labels as well.
In terms of the OIPC No and Order No ->Just want to confirm that validation for these two numbers is required from business/Lise/Jackie? It was not mentioned in the original AC's.

@nimya-aot @Aman-Hundal - Added Scenario 39 to account for when a request is closed, and a user updates the 'Outcome' field, the following modal should appear.

Afterwards, Scenario 33 and 34 would still apply.

@Aman-Hundal - disregard previous message which I deleted related to Nimya's question above.
Regarding OIPC No. and Order No. format validation. I think these can just be VARCHAR with no formatting restrictions (just to acknowledge that these could be different among themselves, or the OIPC may change their numbering standards). Not sure we need to be too restrictive over length or format. @liseandtea thoughts?

@nimya-aot Ministry view is currently being worked on and will get that done soon (ticket 4776). Labelling will be adjusted based on ticket information.
Also for the modal Nimya mentioned, I talked to Jackie and the Modal in her designs (even though different from the code) serves the same purpose as the modal that pops up when an outcome is selected (scenario 32). So the modal is not needed as its already created.
In terms of the OIPC No and Order No ->Just want to confirm that format validation for these two numbers is required from business @m-prodan @liseandtea It was not mentioned in the original AC's (besides these fields just being mandatory/not empty)
Also in terms of recieved date in the refinement notes -> I talked to Divya, the notes were just referring to the Received Date Field (which is currently available in the current code. This did not exist at the time of the dicsussion)
Let me know if there are any other questions.

@Aman-Hundal - see Lise reply above:
"The format for "OIPC No" and "Order No" is F23-00000. There will always be the capital "F" followed by the last 2 digits of the year, dash, then the number the order is in their sequencing. The number sequence is dependent on the amount received/orders created, e.g. F23-01 vs F23-123. Note that "OIPC No" tends to have 5 numbers in the sequence F23-12345."

@Aman-Hundal @sumathi-thirumani-aot Things things I noticed in doing UX Assurance,

Outline on OIPC Flag at the top of the page should be outlined in orange not red like it is now
OIPC Flag should be moved up in line with the watcher and to the left to be slightly closer
When a user clicks "Add Additional OIPC" they are automatically moved up the screen to a place that doesn't make sense (They're should be no auto-scrolling it should stay where they are so they can input the data in the newly added files. There is also a "Please Fill out this field" tooltip that doesn't tie to any section. I have included a screenshot of where it auto scrolls to and the tooltip not being attached to any field.

@milosdes I am in test-rook not dev. In test it is happening in 0000001, 11141026. But is not happening in 09521205 and 11501205. I am in chrome. Is it not happening in any request in dev?

working as expected, so closing

@JHarrietha-AOT I don't think you had a chance to go over points 1,2 and 3 from your last comment. This ticket has already been through QA, so if the UX is good it can go straight back to closed.

@milosdes thanks for flagging this. Two things
There should be padding between Watcher and OIPC Flag at the top of the page.
And there are still requests where I am getting auto-scrolled up when I add an additional OIPC, has this been looked into and fixed?

@milosdes just chatting with @Aman-Hundal he said the two issues I listed above are something he has fixed and will be pushing to test shortly. So no need to action this and moving this to closed


Network Security Group Rules

Please could you help with the Network Security Group rules that would be needed to provide the ability for the Application Gateway to send out logs to storage and log analytics. We are looking to instrument the App Gateway but not allow the gateway complete internet access to any port / any IP address.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: e5f080ad-843f-d7be-eba6-2837993d052b
Version Independent ID: b6f75acf-e3ed-f6c3-a29e-8f440eb0a9dd
Content: Monitor access logs, performance logs, back-end health, and metrics for Application Gateway
Content Source: articles/application-gateway/application-gateway-diagnostics.md
Service: application-gateway
GitHub Login: @amitsriva
Microsoft Alias: amitsriva

@CalumJEadie one way is to whitelist the Azure Public IP Addresses, but that solution is quite tedious.
You can specify a specific storage account or log analytics endpoint using the IP Address of that endpoint. The downside with this method is that if the IP Address of the endpoint ever changes, you will have issues.
The last way is to use VNET Service Endpoints which will create a route from your VNET directly to Azure services.


OLM bundle: add related operand image

The operand image (external-dns) is now built in CPaaS. This change is to be able to pass the built image to the operator instead of the default (hard coded) one.

/assign @lmzuccarelli

/lgtm


Ping Local IP cant figure out

My Pinghost.yaml

targets:

http://www.google.com/;google.com
http://<IP_ADDRESS>/;<IP_ADDRESS>
http://www.dentonknifeworks.com/;dentonknifeworks.com
The <IP_ADDRESS> is a Pi running on my local network it is running an Allsky camera 24/7.  I can ping it but not in the Pinghost.yaml

Am I missing something in the format? the other ones work.
Thanks

Nobody run into this issue? maybe not an issue and just the format that I am giving it.

Does your allsky camera listen on port 80? The default monitoring is setup to use http probes. So your normal ping (icmp) will work fine but http probes will fail.
If your <IP_ADDRESS>/allsky pi has an http server then you can use that address/port (sudo netstat -tapn to find what port it's listening on)
It you want to use normal icmp probes then setup a new job (example) and use icmp as the module

Ok so from what I can see 80 is not being used
pi@allskyBack:~ $ sudo netstat -tapn
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 <IP_ADDRESS>:80              <IP_ADDRESS>:*               LISTEN      614/lighttpd
tcp        0      0 <IP_ADDRESS>:53              <IP_ADDRESS>:*               LISTEN      531/dnsmasq
tcp        0      0 <IP_ADDRESS>:22              <IP_ADDRESS>:*               LISTEN      526/sshd
tcp        0      0 <IP_ADDRESS>:631           <IP_ADDRESS>:*               LISTEN      24819/cupsd
tcp        0      0 <IP_ADDRESS>:5900            <IP_ADDRESS>:*               LISTEN      506/vncserver-x11-c
tcp        0      0 <IP_ADDRESS>:5900       <IP_ADDRESS>:55114     TIME_WAIT   -
tcp        0      0 <IP_ADDRESS>:48007      <IP_ADDRESS>:41557     TIME_WAIT   -
tcp        0      0 <IP_ADDRESS>:5900       <IP_ADDRESS>:55158     TIME_WAIT   -
tcp        0      0 <IP_ADDRESS>:5900       <IP_ADDRESS>:55170     TIME_WAIT   -
tcp        0      0 <IP_ADDRESS>:5900       <IP_ADDRESS>:55194     TIME_WAIT   -
tcp        0      0 <IP_ADDRESS>:5900       <IP_ADDRESS>:55182     TIME_WAIT   -
tcp        0      0 <IP_ADDRESS>:5900       <IP_ADDRESS>:55146     TIME_WAIT   -
tcp        0      0 <IP_ADDRESS>:5900       <IP_ADDRESS>:54194     ESTABLISHED 506/vncserver-x11-c
tcp        0      0 <IP_ADDRESS>:44080      <IP_ADDRESS>:21        TIME_WAIT   -
tcp        0      0 <IP_ADDRESS>:36675         <IP_ADDRESS>:38062         ESTABLISHED 790/vncserverui
tcp        0      0 <IP_ADDRESS>:38062         <IP_ADDRESS>:36675         ESTABLISHED 506/vncserver-x11-c
tcp        0      0 <IP_ADDRESS>:5900       <IP_ADDRESS>:55210     TIME_WAIT   -
tcp        0      0 <IP_ADDRESS>:80         <IP_ADDRESS>:54560     TIME_WAIT   -
tcp        0      0 <IP_ADDRESS>:5900       <IP_ADDRESS>:55102     TIME_WAIT   -
tcp        0      0 <IP_ADDRESS>:5900       <IP_ADDRESS>:55222     TIME_WAIT   -
tcp        0      0 <IP_ADDRESS>:5900       <IP_ADDRESS>:55124     TIME_WAIT   -
tcp6       0      0 :::80                   :::*                    LISTEN      614/lighttpd
tcp6       0      0 :::53                   :::*                    LISTEN      531/dnsmasq
tcp6       0      0 :::22                   :::*                    LISTEN      526/sshd
tcp6       0      0 ::1:631                 :::*                    LISTEN      24819/cupsd
tcp6       0      0 :::5900                 :::*                    LISTEN      506/vncserver-x11-c

It looks like you do have an http server (lighttpd) listening on port 80
tcp 0 0 <IP_ADDRESS>:80 <IP_ADDRESS>:* LISTEN 614/lighttpd

What happens when you run curl -v http://<IP_ADDRESS> from your internet-monitoring pi?

pi@raspberrypi:~/internet-monitoring $ curl -v http://<IP_ADDRESS>

Trying <IP_ADDRESS>:80...
Connected to <IP_ADDRESS> (<IP_ADDRESS>) port 80 (#0)

GET / HTTP/1.1
Host: <IP_ADDRESS>
User-Agent: curl/7.74.0
Accept: /

Mark bundle as not supporting multiuse
< HTTP/1.1 401 Unauthorized
< WWW-Authenticate: Basic realm="Allsky Camera"
< Content-type: text/html; charset=UTF-8
< Content-Length: 14
< Date: Thu, 02 Dec 2021 04:20:18 GMT
< Server: lighttpd/1.4.53
<
Connection #0 to host <IP_ADDRESS> left intact

Cool. The probe will currently fail because it's looking for an http 200 response. It's failing (rightly so) with a 401 code because you're probing it without authentication. You've got a few options to monitor that webpage.
Option 1 (easiest)
allsky seems to have a public webpage accessible via http://your_raspberry_IP/public.php (or in your case http://<IP_ADDRESS>/public.php) which doesn't require authentication. You should be able to add http://<IP_ADDRESS>/public.php to your Pinghost.yaml file.
You can also do a quick test curl -v http://<IP_ADDRESS>/public.php to see if you get a 200 http response back.
Option 2
If you simply just want to ensure it's reachable over the network and don't care about the 401 message. You could add valid_status_codes: [200, 401] to the http_2xx blackbox module. This logic would however also be applied to the other urls you're probing (ex: google.com, github.com, etc...).
Option 3
You could create a separate module that actually passes in the username and password. See the blackbox example
I'd imagine option 1 is probably your best bet but it's up to you.

And Option 1 is working.
Thanks for taking me down that road helped me to understand how this works.