Ensure lint warnings are configurable via nowarn

Compiler version
3.3.x
Minimized code

  @nowarn("msg=unused")
  private def summonImpl[A: Type](using Quotes): Expr[This[A]] =
    import quotes.*
    import quotes.reflect.{This as ThisTerm, *}
    ...

Output
False positive under -Wunused:imports must be suppressed as shown.
Expectation
The false positive on the renamed import can be silenced by local @nowarn, but requires using a brittle string.
Even if the message is unusually stable ("unused import"), discovering and copy/pasting strings is an unhealthy workflow.
Parity with Scala 2 would require categories for lints cat=lint-unused-import of some granularity, or possibly dotty message ids id=W100. "Awesome warnings!"
In addition, top-level imports can't be annotated, so Scala 2 uses origin=quotes.reflect.This.
If warnings are easy to silence, then they are easy to enable.
There is a discussion about the need for further parity in -Wconf at https://github.com/lampepfl/dotty/discussions/17635
This problem came up on discord via Alexandru Nedelcu Today at 11:47 AM

Related to https://github.com/scala/scala3/issues/18341


Loadbalancer in swarm mode: Default and recommendation?

I'm using traefik with the docker swarm mode.
I tried to find out what the default behaviour of traefik is for the load balancing in this case. Assuming that we don't explicitly specify
traefik.backend.loadbalancer.swarm
Is the default value true or false? i.e. Will traefik by default use the docker swarm mode load balancer for docker swarm mode services?
As a side question: What is the recommended way? Is it recommended to use traefik for load balancing or to use the load balancer of the docker swarm mode - assuming that a simple round robin is sufficient?

Thanks for your interest in Traefik !
Every question in the issues means features less 😉.
The issue tracker is for reporting bugs and feature requests only.
For end-user related support questions, refer to one of the following:

Stack Overflow using the "traefik" tag
the Traefik community Slack channel


New action request: s3krit/walking-tag-action

Action name
uses: s3krit/walking-tag-action
Reasons
s3krit/walking-tag-action

Intended usage
s3krit/walking-tag-action

I have checked the internal marketplace for similar actions and couldn't find one that works for us.

[X] I have checked the internal marketplace first

:robot: Found these results:

Check
Results
Links

CodeQL on the forked repo
:white_check_mark:
CodeQL run

Security scan:

Check
Result

No .github folder found
⛔

No Workflows found
⛔

No Dependabot configuration found
⛔

No CodeQL Init found
⛔

No CodeQL Analyze found
⛔

Uses Docker container
ℹ

1 Low or medium issues found
⚠

1 High or critical issues found
⛔

:robot: Found these results:

Check
Results
Links

CodeQL on the forked repo
:white_check_mark:
CodeQL run

Security scan:

Check
Result

No .github folder found
⛔

No Workflows found
⛔

No Dependabot configuration found
⛔

No CodeQL Init found
⛔

No CodeQL Analyze found
⛔

Uses Docker container
ℹ

1 Low or medium issues found
⚠

1 High or critical issues found
⛔

:robot: Check completed with result: ✅
Found 0 Dependabot security vulnerabilities:
0 where high and 0 where moderate.
Use this link to verify the alerts.


Feature/upgrade bevy -> 0.15

I kept the changes I made locally for a while, but I found this library useful, and think others might, too.

Looks great! Thank you!


Cache contents of config file

Placing a console.log inside config.js shows that we're loading the config from scratch once per rule. We should be loading the config once per invocation of sass-lint.
I'm referring to using sass-lint from the CLI, and specifying a config file. e.g. sass-lint -c .sass-lint.yml

I actually noticed this while working on the CLI recently and adding some of the extra options. This is definitely something I'd like to address when I overhaul the CLI and add error codes etc.


Add check for valid subdomain during zone creation

What version of UAA are you running?
last one
How are you deploying the UAA?

using cf-release
using cf-deployment
as part of a SAPCP

What did you do?
Creating a zone allows to create a subdomain with _ , e.g. test_domain
however test_domain.mycloud.com is not accessible because tomcat blocks request with 400
see
https://bz.apache.org/bugzilla/show_bug.cgi?id=62371
What did you expect to see? What goal are you trying to achieve with the UAA?
Check in https://docs.cloudfoundry.org/api/uaa/version/4.26.0/index.html#creating-an-identity-zone
for subdomain input
What did you see instead?
Invalid zone created but cannot be used later

Closing due to inactivity.

fixed with #975


Support Map handling from UI

Support #142 java.util.Map handling from UI side

See if LookupTable form for the Java Enum field provides any hint for this


Update optimistic data to match IOU action notification templates, send back additional data needed by Settle Up templates

Fixed Issues

$ https://github.com/Expensify/Expensify/issues/270495
Tests/QA
Once the server responds, the report action may change. This will be fixed in https://github.com/Expensify/Web-Expensify/pull/36977
Request Money

As userA, FAB > Request Money to userB. Be sure to include a note for what the request is for, like Thursday lunch.
Verify that userB receives a report action like Requested $20 for Thursday lunch.

Split bill

As userA, FAB > Split Bill to multiple users. Be sure to include a note for what the split is for, like Thursday lunch.
Verify that all users that were included in the split receive a report action like Requested $20 for Thursday lunch.

Settling up

Settle up any of the above requests.
Verify that a report action is received like Settled up $20.

Requesting Money in a foreign (non-US) currency

As userA, FAB > Request Money to userB in a non-US currency. Be sure to include a note for what the request is for, like Thursday lunch.
Verify that userB receives a report action like Requested $20 for Thursday lunch.
Settle up the above request, and verify that no errors are thrown.

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is correct English and approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web
https://user-images.githubusercontent.com/31285285/233268490-fd640dcb-b19c-4dbf-a1cd-7886874015d1.mov

Mobile Web - Chrome
https://user-images.githubusercontent.com/31285285/233268246-51cf4ef6-307c-498d-9c67-5c90483911d9.mov

Mobile Web - Safari
https://user-images.githubusercontent.com/31285285/233267910-740c3dcb-6715-4025-87c1-f84caaef6c98.mov

Desktop
https://user-images.githubusercontent.com/31285285/233268411-ce314f12-27ec-4de6-b601-a0a8e7bb4ae0.mov

iOS
https://user-images.githubusercontent.com/31285285/233266658-58797c75-a23d-4252-b13f-576ddc52047a.mov

Android
https://user-images.githubusercontent.com/31285285/233267073-c3374fe1-2d22-4e28-b4da-959c6add7249.mov

@Santhosh-Sellavel @dangrous One of you needs to copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button]

@Santhosh-Sellavel I've updated the testing steps, good for another look! I took the HOLD off, turns out both these PRs need to be held on each other, but it's better for this one to go out first

All right thanks will test it out shortly

Can you resolve conflicts, please @jasperhuangg

bump @jasperhuangg

any updates on this one?

Seems Jasper is on OOO

I'm not seeing any errors @Julesssss

thanks, it's possibly my Dev env

I've tried on staging without changes on this PR locally & staging works well! Will try resolving the conflicts and check again

@Julesssss Can't seem to reproduce with https://github.com/Expensify/Web-Expensify/pull/36977 checked out. Perhaps merging main fixed whatever issue was happening:
https://user-images.githubusercontent.com/31285285/233184903-c80cc46d-82ee-4d56-ad9f-1f9e1ab91a6e.mov
Working on getting all the screen recordings completed

@jasperhuangg It's failing for me though!

Is the backend PR deployed for the same?

@Santhosh-Sellavel the Web-E PR has not been deployed yet, and actually needs to wait for this PR to go out first

@Julesssss @Santhosh-Sellavel Just updated all the screen recordings. I've confirmed it works as expected on all platforms while also having https://github.com/Expensify/Web-Expensify/pull/36977 checked out

@jasperhuangg this should be fixed right?

@Julesssss Gotcha, I'll look into this

Hey @Julesssss I think I figured out why this is happening, TLDR nothing is broken.

For any money requests we convert the currency to USD before sending it. So if userA requests in 33 pounds, the userB gets a request for 41 USD.
When userB goes to settle that request, they send back the displayedAmount (41) and currency (USD) they were requested for.
Here, we error if the displayedAmount (41) sent by userB doesn't match the total for the IOU report.
We calculate the total here, which relies on the forex table locally. At least for me, the forex table isn't populated in my local dev env, which means it will incorrectly convert 33 pounds to 33 USD, when it should return 41 USD (it will convert 1:1, i.e. it won't do any conversion).
This shouldn't happen in staging/prod since the forex table should be populated, which means it should be able to correctly convert 33 pounds to 41 USD.

Got confirmation from @iwiznia here that the forex table doesn't get populated on dev, so I bet yours isn't populated either.
I added a QA test case to ensure that converting from a foreign currency to USD works as expected, so we should be good to go!

There seem to be 2 issues at play here:
@Julesssss
I think you get that error on your local dev environment because the forex table isn't populated on our local dev envs, so when it fails to correctly convert GBP to USD. There isn't really we can do anything about this except to add a test case for QA to ensure that non-US currencies work as expected.
@Santhosh-Sellavel
You mentioned you were running it against our staging environment? Can you sign into staging.expensify.com with the account you were using to settle up the money request with? Then can you:

Go to Settings > Account > Policies
Click on your active policy (the one that's outlined).

If it takes you to NewDot, click General Settings, and tell me what the currency is.
If you stay in OldDot, go to Reports > under Report basics tell me what the currency is

If my theory is correct, then the error is happening for you because the currency you have set is a non-US currency.

Currency is picked automatically, for me it is INR

@Santhosh-Sellavel No it does not work.

@Santhosh-Sellavel what seems to be the error? When I try it with US in the workspace currency it seems to work

Here. https://github.com/Expensify/App/pull/17090#issuecomment-1515072650

@Santhosh-Sellavel I'm testing this PR against our Web Proxy (i.e. against production) and I can't seem to reproduce that error using any currency. Can you provide steps/details that you're using to reproduce that error please?
https://user-images.githubusercontent.com/31285285/233529255-024c1956-f381-453b-a656-3e9950f0e5f7.mov

@jasperhuangg
I've just created two new accounts and sent the request for money from one to another account. And try to settle up I get an error. I'm not manually setting currency here and it' by default set as INR
https://user-images.githubusercontent.com/85645967/233706270-f5d4ce0b-3237-45b7-80fa-b77cd25b8974.mov

@jasperhuangg
Also, you can see above after failure multiple settled-up messages are added but it is really not settled. That's also an issue.
cc: @Julesssss

@jasperhuangg Also, you can see above after failure multiple settled-up messages are added but it is really not settled. That's also an issue.
cc: @Julesssss

@Santhosh-Sellavel Got it, I think I know what the problem is and am working on a separate PR (the fix comes in Auth) for this.

@Santhosh-Sellavel You'll need to wait to retest this PR once https://github.com/Expensify/Auth/pull/7785 is deployed. I'll let you know when you can do so.

Cool, Thanks @jasperhuangg!

https://github.com/Expensify/Auth/pull/7785 is on prod and I'm taking this off hold
cc @Julesssss @Santhosh-Sellavel @dangrous

Cool test this now!

@jasperhuangg This step is confusing

Verify that userB receives a report action like Requested ¥2,000 for Thursday lunch. Verify that the amount in the actual IOU below this report action is correctly shown in GBP.

User B is Currency is GBP right?

@Santhosh-Sellavel There should be some text above the IOU action in Japanese Yen like Requested ¥2,000 for Thursday lunch. But the actual amount on the IOU report should be in GBP, does that make sense?

Why should be in GBP?

Normal
https://user-images.githubusercontent.com/85645967/235249216-64fb9bb4-32dc-4b1b-8742-d4a26ddee92b.mov
Currency Change Flow
https://user-images.githubusercontent.com/85645967/235249274-c3cd70b2-5cdd-4837-896c-bcb2d4dea31f.mov

Verify that userB receives a report action like Requested ¥2,000 for Thursday lunch. Verify that the amount in the actual IOU below this report action is correctly shown in EUR.

For some time the report action is shown in JPY is that fine or an issue?

@Santhosh-Sellavel that's fine

Why should be in GBP? I don't get the context User A's currency is EUR. So it should be shown in EUR or JPY or whatever the currency of User B. Confused

Sorted this out via DMs, there was a typo in the testing instructions.

Reviewer Checklist

[x] I have verified the author checklist is complete (all boxes are checked off).
[x] I verified the correct issue is linked in the ### Fixed Issues section above
[x] I verified testing steps are clear and they cover the changes made in this PR

[x] I verified the steps for local testing are in the Tests section
[x] I verified the steps for Staging and/or Production testing are in the QA steps section
[x] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[x] I checked that screenshots or videos are included for tests on all platforms
[x] I included screenshots or videos for tests on all platforms
[x] I verified tests pass on all platforms & I tested again on:

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

[x] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[x] I verified proper code patterns were followed (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I verified that this PR follows the guidelines as stated in the Review Guidelines
[x] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos
Including Web/Desktop alone as changes don't affect UI.
Added here
Note:
Reason for being unable to include other screens, as I running into some unrelated issues while running native builds. If resolved will try to update but that's not a blocker here.

🎯 @Santhosh-Sellavel, thanks for reviewing and testing this PR! 🎉
An E/App issue has been created to issue payment here: https://github.com/Expensify/App/issues/18166.

@dangrous @Julesssss This PR should be ready to go, let's get it merged!

Gonna merge this since we have 3 approvals.

Actually, I'll let @Julesssss do a final review since he encountered some issues that I couldn't reproduce.

Yep, it's on my list for today. Catching up after UK bank holiday.

🚀 Deployed to staging by https://github.com/Julesssss in version: 1.3.9-12 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/roryabraham in version: 1.3.12-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Random sampling with replacement

There is Enumerable#sample(n : Int) which picks a random subset of size n from self without replacement.
But there is currently no direct method for sampling with replacement.
A simple implementation is not hard to write, it could be something like this:
Array.new(n) { enumerable.sample }

But I think it would be nice to have a generic method for that, similar to the existing Enumerable#sample(n : Int).
For example, Python has random.choices (with replacement) for this, which accompanies random.sample (without replacement).
I'm not sure I'd follow the naming, though.
But I do like the idea of having these methods on Random because it's explicit about what's happening (drawing random numbers).
A special case would be creating a random string from a set of characters. I essentially already proposed this in #8993 (the initial discussion was a bit off, don't mind the "password" parts).
I think this is a useful feature and was again reminded of that in the context of #12082.
A generalized implementation for Enumerable might also be useful and should be considered for naming purposes.

Sampling with replacement in Enumerable is significantly harder than in Indexable because each element can only be visited once. A quick search returns this paper, which works for both weighted and unweighted sampling, but it is still not truly usable because uniform sampling means all probability weights are 1.0 / self.size, yet we cannot call Enumerable#size here.
That paper is usable for Indexable, but still needs the ability to sample from binomial and/or beta distributions, which the standard library doesn't provide.


migrate many FromPyObject implementations to Bound API

Split from #3606
This is a series of mechanical transformations from extract to extract_bound for most FromPyObject implementations across the codebase.
The few which remain are mostly blocked on other PRs waiting for review, it'll be straightforward to follow up with those another time.

Thanks for the review; and yes, that's a great idea, I'll push that now as a separate commit.
Have you got access to the approval button when reviewing? If not, perhaps I can look into setting that up and also labelling so you can also apply the CI-skip-changelog label...


In PowertoysRun, add ability to convert between currencies.

Description of the new feature / enhancement
Title. Also is possible, add a purchasing power matric also.
Scenario when this would be used?
It would be very handly when having to convert foreign currencies on the go.
Supporting information
No response

https://github.com/Advaith3600/PowerToys-Run-Currency-Converter
I have made a plugin that will do this functionality.


default router policies unless init --no-router-policies

Everyone who learns how to Ziti stumbles immediately on the fact that the controller does not automatically create a blanket, default ERP, and SERP.
A controller, when initializing, should always do the equivalent of these two commands unless the --no-router-policies flag is set.
ziti edge create edge-router-policy "all-routers" \
    --edge-router-roles '#all' --identity-roles '#all'

ziti edge create service-edge-router-policy "all-routers" \
    --edge-router-roles '#all' --service-roles '#all'

I'd certainly prefer that quickstart created usable policies.
another option is when creating a service to check if it is accessible/usable and output a message with commands to configure policies. Something like this:
$ ziti edge create service super-service ...
...
Service `super-service` need policies to be accessible, here is how you can create them:

    ziti edge create service-policy ...
    ziti edge create service-edge-router-policy ...

Relevant console issue: https://github.com/openziti/ziti-console/issues/181

I'd certainly prefer that quickstart created usable policies.

@ekoby You'd prefer default policies or referring users who want default policies to the quickstart? Not sure if "prefer that quickstart created" or "prefer that over quickstart-created."

@ekoby Now it seems obvious, and I agree that quickstarts should create default policies. ziti edge quickstart and its Docker and Kubernetes counterparts already do this. :relaxed:

With the new "deployments" (aka prod-type), the question to me is, should THOSE do this sort of thing too? I think it's clear that the user should be prompted during intstall that some bootstrapping type script can optionally insert the policies. Kubernetes and docker are harder to do this in. Those should probably output a banner after running, showing the user exactly what to run next if they want default policies and that we STRONGLY recommend them. or something like that. i don't think unattended installations need any sort of 'option' though, there shouldn't be some env var saying "BOOTSTRAP_POLICIES" - the automation should just know it's needed and do it and that should be left up to the operator

The consensus is prod deployments shall never create default router policies. Quickstarts already create default router policies.


Tranvision EPG

Source
https://www.transvision.co.id/channel.html
Notes
Another EPG from Indonesia

The website doesn't have EPG source.
But, for TransVision channels, you can use cubmu.com source.

Transvision.id has long gone in 57b3db1ff1cda44a4642e7c6b98f4b202cedeed6.


plex-mpv-shim: Add version 1.10.3

Closes #XXXX

Relates to #XXXX

[ x] I have read the Contributing Guide.

Avira and McAfee report the app as a virus. I just sent the forms to see if it is a false positive.
VirusTotal results: https://www.virustotal.com/gui/file/da428762ab4db075a6633ba5e643e2eff63ca5f6e0b9d1d963d4263476a5fe03

Avira and McAfee report the app as a virus. I just sent the forms to see if it is a false positive.

I have received the reports. They are all clean. We can move on.

/verify


where is the default save path?

where is the default save path?

Hello @ixqbar. The excalidraw files are currently stored in database. You can export them to any place via the button on the right-top side of the app.

got! thanks!

Even though it's stored in a database, IMHO the question is still valid. I just lost the data for a diagram, and I'm trying to locate the database to see if I could rescue the data.

@dserodio Hello. Sorry for that.
Did you lose all the data, or the data of a single excalidraw file?

It was the only diagram I had, to I can't tell if I lost all the data or not. But the File History feature worked to restore it. Thanks for the help and the quick response.


fix(kit): Combobox  open dropdown on cleaner click

PR Checklist
Please check if your PR fulfills the following requirements:

[x] The commit message follows Conventional Commits
[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)

PR Type
What kind of change does this PR introduce?

[x] Bugfix
[ ] Feature
[ ] Refactoring
[ ] Code style update
[ ] Build or CI related changes
[ ] Documentation content changes

What is the current behavior?
dropdown doesn't open by clicking on the cleaner
What is the new behavior?
dropdown opens by clicking on the cleaner
Does this PR introduce a breaking change?

[ ] Yes
[x] No

I believe the same was also required for InputDate, please see of it is needed for other controls with drop-downs.

I believe the same was also required for InputDate, please see of it is needed for other controls with drop-downs.

I made same changes in InputDateTime, InputDate, InputDateRange, InputMonthRange, InputMonth
Multiselect and InputTime works with cleaner as expected


Status of vcstool

I was just wondering what the status of this repo is. Is it still actively maintained? If not, @dirk-thomas would you be open to let other people maintain it? Given that vcstool is widely used in the ROS community, perhaps moving this repo to the @osrf or @ros organizations

The ROS infrastructure team maintains vcstool in the ROS repositories. Since it has been meeting our infrastructure needs as is, we have not needed to update sources ourselves lately but if there's interest in setting up an organization to grow vcstool maintainers or transferring it to an existing organization we could assist with repository maintenance as well. It is worth bearing in mind, that our efforts would still be split among all of the packages in the ROS infrastructure pipeline.

Thanks @nuclearsandwich for following up here.
I'd also be willing to help maintain this.

Can I get a maintainer to approve my PR to run Actions for #246? Thanks.

I've opened a PR which gets CI back to operational with changes to python versions and flake8. I'll merge that PR into my own fork's default branch next week and port a few of the open PRs here to that fork for preliminary review. Please continue to open PRs on the main repository for the time being so that we can keep all the discussion in one place.

Personally I prefer wstool workflow, so I implemented a basic replacement in bash with yq -> https://github.com/asherikov/wshandler, contributions are highly encouraged.

There's even pypi package https://pypi.org/project/vcstool2/ that turns out to be released from a fork (which was not obvious to me for a while) https://github.com/MaxandreOgeret/vcstool2/issues/5 by @MaxandreOgeret.

I posted discourse.ros.org#33661 solely aiming to raise an awareness of the maintenance status. There has been not an awful lot but some responses; 5 stars to the OP and continued discussions. I take that as arguably "there is enough interest".
My personal proposal is:

Add maintainer(s) with write access so that PRs can be merged.

@christophebedard offered that in https://github.com/dirk-thomas/vcstool/issues/242#issuecomment-1168724748 :+1:

(May need more thoughts) Move/Fork git repo to somewhere more common.

How about https://github.com/ros-infrastructure. As I mentioned in discourse.ros.org#33661, vcstool has nothing to with ROS dependency-wise, and there's no reason I can think of to be hosted under ROS* organization (I'm afraid giving wrong impression "vcstool is tied with ROS" would drive away potential users and contributors who are not interested in ROS). ros-infrastructure just historically makes sense, and the link to ROS as a robotics framework is weaker than other "core" orgs IMO.
I also thought of https://github.com/ros-tooling but I'm not clear about the background of this org. By just looking at the repos hosted there, the functionality is more of "robotics framework", so may not be a good option.

@nuclearsandwich Since you appear to have a write access to this repo, would you mind sharing your thoughts?


unable to install theme:

I tried to install this theme on a brand new install of hugo, but seems not working as expected
hugo new site test
git clone https://github.com/tomowang/hugo-theme-tailwind themes/tailwind
cp -a themes/tailwind/exampleSite/. .

I got the error related to a shortcode not found which is
hugo v0.92.2+extended linux/amd64 BuildDate=2023-01-31T11:11:57Z VendorInfo=ubuntu:0.92.2-1ubuntu0.1
Error: Error building site: "/home/florian/CIDgravity/test/content/post/rich-content/index.zh-cn.md:47:1": failed to extract shortcode: template for shortcode "bilibili" not found

So I tried to remove the file associated with this error, and now I got a blank page on hugo server with warning in logs
WARN 2024/05/23 10:51:06 found no layout file for "HTML" for kind "page": You should create a template file which matches Hugo Layouts Lookup Rules for this combination.
Do you have any solution to make this theme works ?
I tried the same process with other themes, and everything works perfectly
I also tried using git submodule, the issue is the same

Please upgrade hugo to latest version. Some configuration options and methods are only supported in newer hugo version.

Seems working, but only if I run
cd themes/tailwind
hugo server --themesDir ../..

If I copy the content of exampleSite at the root level of my hugo website, I got the following error
Error: command error: failed to load modules: module "hugo-theme-tailwind" not found in "/home/florian/test/themes/hugo-theme-tailwind"; either add it as a Hugo Module or store it in "/home/florian/test/themes".: module does not exist

exampleSite has configuration like theme = "hugo-theme-tailwind"
https://github.com/tomowang/hugo-theme-tailwind/blob/8e78440a54987fa9e4e800ffb9b2e9d880f8540a/exampleSite/config/_default/hugo.toml#L11C1-L11C30
If you use tailwind  as folder you should change the setting.

I tried by renaming my theme folder to hugo-theme-tailwind
And i got error message due to loading time i guess
hugo v0.126.1-3d40aba512931031921463dafc172c0d124437b8+extended linux/amd64 BuildDate=2024-05-15T10:42:34Z VendorInfo=snap:0.126.1

ERROR Failed to read Git log: fatal: not a git repository (or any parent up to mount point /)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
ERROR render of "home" failed: "/home/florian/test/themes/hugo-theme-tailwind/layouts/_default/list.html:34:17": execute of template failed: template: _default/list.html:34:17: executing "main" at <partial "block/time.html" .>: error calling partial: partial "block/time.html" timed out after 30s. This is most likely due to infinite recursion. If this is just a slow template, you can try to increase the 'timeout' config setting.
ERROR render of "section" failed: "/home/florian/test/themes/hugo-theme-tailwind/layouts/_default/list.html:34:17": execute of template failed: template: _default/list.html:34:17: executing "main" at <partial "block/time.html" .>: error calling partial: partial "block/time.html" timed out after 30s. This is most likely due to infinite recursion. If this is just a slow template, you can try to increase the 'timeout' config setting.
Built in 30274 ms
Error: error building site: render: failed to render pages: render of "page" failed: "/home/florian/test/themes/hugo-theme-tailwind/layouts/_default/baseof.html:20:5": execute of template failed: template: _default/single.html:20:5: executing "_default/single.html" at <partial "head.html" .>: error calling partial: partial "head.html" timed out after 30s. This is most likely due to infinite recursion. If this is just a slow template, you can try to increase the 'timeout' config setting.

Yes, the enableGitInfo is used for published date at JSON-LD.

Clone this repo directly and try hugo server -s exampleSite --gc --themesDir=../..
Or remove posts and only keep one post to give a try.


Support etcd scale down enhancement

Signed-off-by: Shreyas Rao<EMAIL_ADDRESS>How to categorize this PR?

/area cost
/area storage
/kind enhancement
/priority normal
What this PR does / why we need it:
This PR enhances etcd crd and druid role to support https://github.com/gardener/etcd-druid/pull/59, which allows druid to take full snapshot of etcd data and delete the etcd data volume on etcd scale down during shoot hibernation.
Which issue(s) this PR fixes:
Fixes #
Special notes for your reviewer:
This PR must go in before next druid release (which will contain https://github.com/gardener/etcd-druid/pull/59)
Release note:

Add `volumeRetentionPolicy` field to etcd crd which will be respected by etcd-druid on etcd scale down and etcd deletion. Default policy is `Delete`.

/cc @swapnilgm

Thanks for the PR. But as you described it makes sense with next release of druid. So, maybe we can close it for now and reopen later. WDYS?

I'm also okay to merge it now as it doesn't change any behaviour and just prepares for the future changes. Though, I agree that it generally is better/easier followable for reviewers when the changes are submitted together.
Anyways, @shreyas-s-rao, do you want this PR to be merged now or rather closed and reopened later?

I'm ok with reopening this PR later, so that review becomes easy. Closing it for the timebeing.


Update 01-introduction.Rmd

Fixed some typos and grammar and clarified a few parts.

Thank you!!! This is very helpful!!


Track cli version

Ticket: https://linear.app/trunk/issue/TRUNK-11730/track-analytics-cli-version-in-upload

this small change will make it easier to just track the cli version, without having to parse it in the etl

We will instead extract the cli_version from the existing format in the ETL


Add log for cardinality error instead of panic

This PR will make the exporter more resilient against malformed input data, as the original exporter crashed (panic'd) for certain input data scenarios (see testdata).

Great work guys, will release tonight!


Utility Arms can't be removed from characters.

No item is created, so there is nothing to remove. However, the effect is still listed on the skill.

I am not seeing this issue on 1.6. I dropped Utility Arms and many other attachments on a character and nothing changed the skills or any other sort of modifier. Checked the attached items to the character and none of those attachments were listed.


CY-3298 Use provided certificates

This PR is intended to provide a mechanism to use the customer's certificates.


Website: landing page footer messaging copy update

Update:

to say:

@bconfortin this should say 'anything' not 'everything'
Please add a line break so 'Bet on anything you want.' sits below
No Limits. Lower fees.

Bet on anything you want.

done. closing


Clarification

Hey Guys
"When the eDiscovery Manager or Administrator role is set for a particular satellite location, the eDiscovery Manager or Administrator will only be able to perform eDiscovery search actions against the SharePoint sites and OneDrive sites located in that satellite location."
Does this include the central tenant location as well or are search actions solely restricted to the applicable security filter?
For example, if my tenant is located in GBR and I have a filter that permits searches in NAM, and a user who is assigned the NAM filter performs a search, will results be returned for both GBR and NAM or just NAM?
Thanks,

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

ID: 7e08a752-f73a-439f-728f-a8fc7e8952af
Version Independent ID: a38b9339-689c-13b8-1bcd-9ac203dbc487
Content: Configure Office 365 Multi-Geo eDiscovery
Content Source: Enterprise/multi-geo-ediscovery-configuration.md
Service: o365-solutions
GitHub Login: @MikePlumleyMSFT
Microsoft Alias: mikeplum

@scottclarke1 "The Region parameter specifies the satellite location for multi-geo tenants to conduct eDiscovery searches in." If you create Compliance Security Filter with NAM as the value for the -Region parameter, the users that you assign the search filter to will be allowed to search only in NAM.
If you don't use the "-Region" parameter in a multi-geo tenant, eDiscovery searches are performed in the central location.

@scottclarke1 - Thank you for submitting feedback.
From our understanding, the issue you raised has been answered by VLG17 so we will close this issue.
Thank you for your contribution to make the docs better! Much appreciated!


Update momentum_cache periodically

Background
We have a SQlite DB momentum_cache.db on our server and we need to update it every 3 hours.
Need to set up a cronjob or equivalent tools to run https://github.com/VolumeFi/trading-bots/blob/main/run_momentum_table.py
_Each update requires running run_momentum_table.py with multiple parameter combinations, including all DEXes we cover, lag = 6,12. The last three parameters can be fixed at<PHONE_NUMBER>00 1000000 for now.
Example:
$ python run_momentum_table.py uniswap_v3 12<PHONE_NUMBER>00 1000000
$ python run_momentum_table.py pancakeswap_new 6<PHONE_NUMBER>00 1000000
Done when

[x] clone the trading-bots repo to the server
[x] set up a cron job that runs run_momentum_table.py with all DEXes PalomaSwap covers and lag = 6,12
[x] keep the crob job running every 3 hours and send alerts when updates fail

Can I can work on this task as an open source contribution ?

this is now on rootedbox@snapshot:~/app/trading-bots and set to run with cron every 3 hours

I see that the .db file is there but

the script is not run every 3 hours
there's only one combination ingested to the db (see text below). We need to run all combinations mentioned in the ticket

('get_high_returns(uniswap_v2, 12, 200000, 100000, 1000000)', '2023-04-25 04:14:27', '{"24H Return":{"agility":36.0971196898,"0x0-ai-ai-smart-contract":18.5154601436,"not-financial-advice":6.0320409808,"floki":42.0514636747,"airtor-protocol":3.7456967714,"dione":6.4370823072,"audius":2.2696526253,"cuminu":37.9397767011,"pax-gold":0.6709357452,"usd-coin":0.0774584113,"a-hunters-dream":3.8935349985,"tether":0.0448755672},"7D Return":{"agility":-62.90527,"0x0-ai-ai-smart-contract":51.15328,"not-financial-advice":45.92771,"floki":8.94063,"airtor-protocol":-27.06862,"dione":59.99923,"audius":-17.14702,"cuminu":-23.98085,"pax-gold":-1.00449,"usd-coin":0.0959,"a-hunters-dream":-17.99088,"tether":-0.05696},"12H Return":{"agility":42.4,"0x0-ai-ai-smart-contract":16.19,"not-financial-advice":12.09,"floki":10.85,"airtor-protocol":5.69,"dione":5.66,"audius":1.23,"cuminu":0.78,"pax-gold":0.4,"usd-coin":0.24,"a-hunters-dream":0.1,"tether":0.01}}')

@rootedbox DB is not being updated
rootedbox@snapshot:~/app/trading-bots$ ls -ltr
total 212
-rw-rw-r-- 1 rootedbox rootedbox  1071 Apr 11 00:53 LICENSE.md
-rw-rw-r-- 1 rootedbox rootedbox  7552 Apr 17 16:40 MomentumScanner.py
-rw-rw-r-- 1 rootedbox rootedbox 65058 Apr 17 16:40 exchanges.json
-rw-rw-r-- 1 rootedbox rootedbox   816 Apr 17 16:40 dex_chain.json
-rw-rw-r-- 1 rootedbox rootedbox   757 Apr 25 01:28 run_momentum_table.py
-rw-rw-r-- 1 rootedbox rootedbox   516 Apr 25 01:28 pyproject.toml
-rw-rw-r-- 1 rootedbox rootedbox 34394 Apr 25 01:28 poetry.lock
-rw-rw-r-- 1 rootedbox rootedbox 11141 Apr 25 01:28 MomentumScanner_techindicator.py
-rw-rw-r-- 1 rootedbox rootedbox     0 Apr 25 01:28 init.py
-rw-rw-r-- 1 rootedbox rootedbox   801 Apr 25 01:28 cache_db.py
-rw-rw-r-- 1 rootedbox rootedbox  1545 Apr 26 04:01 README.md
-rwxrwxr-x 1 rootedbox rootedbox  2946 Apr 26 04:20 getdata.sh
-rw-rw-r-- 1 rootedbox rootedbox  8222 Apr 26 04:31 momentum_scanner_intraday.py
drwxrwxr-x 2 rootedbox rootedbox  4096 Apr 26 04:31 pycache
-rw-rw-r-- 1 rootedbox rootedbox     2 Apr 26 04:34 data.json
-rw-r--r-- 1 rootedbox rootedbox 36864 Apr 26 04:34 momentum_cache.db
-rw-rw-r-- 1 rootedbox rootedbox   141 Apr 26 12:00 test.py


Usage of PSP for controlling safe/unsafe sysctls isn't documented

It turns out that user can annotate PSP with security.alpha.kubernetes.io/sysctls annotation to specify "whitelist of allowed safe and unsafe sysctls in a pod spec". It isn't documented.

I'd rather see them graduate to fields before getting officially documented and used
@pweil-

Ok.  @php-coder let's discuss what else needs to be done on the roadmap to graduate the feature and get this worked into a card for PM

I found that the usage of safe/unsafe sysctls are documented here: https://kubernetes.io/docs/concepts/cluster-administration/sysctl-cluster/ But its usage doesn't relate to PSP at all.
@sttts Could you explain how PSP strategy (pkg/security/podsecuritypolicy/sysctl) is correlated with the current behavior when admin need to pass --experimental-allowed-unsafe-sysctls option to the kubelet?

The design and implementation is documented in https://github.com/kubernetes/community/blob/930ce65595a3f7ce1c49acfac711fee3a25f5670/contributors/design-proposals/node/sysctl.md#proposed-design.

The documentation was added in #7600 and is available at https://kubernetes.io/docs/concepts/cluster-administration/sysctl-cluster/#podsecuritypolicy-annotations
/close


[docs] Missing required dependency for Linux (Debian)

On https://tauri.studio/en/docs/getting-started/setup-linux, it is indicated that the required dependencies are:
$ sudo apt update && sudo apt install libwebkit2gtk-4.0-dev \
    build-essential \
    curl \
    wget \
    libssl-dev \
    libgtk-3-dev \
    squashfs-tools

But on a fresh install of stock Ubuntu, when building an app for the first time, I encountered the following error (snippet clipped from rerunning a build with yarn tauri build --verbose) while the scripts were building the AppImage file:
file command is missing but required, please install it
Error: failed to bundle project

Caused by:
    Shell Scripting Error:`error running appimage.sh`

After running sudo apt install file, I was then able to proceed and successfully built my AppImage. It would be helpful to indicate that this utility is required in the Linux setup instructions.
Thanks for the cool project!

I'm changing the AppImage build script here: #2437 hopefully that'll fix the issues since linuxdeploy is an AppImage, so it includes everything that it needs to run. (I tried it on a fresh Ubuntu 18.04 and didn't have to install the file package). Please let me know if that's still needed after our release (probably tonight!).


🧑💻: To improve the turtle code

To improve the turtle code
:red_circle: Title : Turtle (beginner projects)
:red_circle: Enhancement Aim : To make the code simple and easier and enhance it by adding new features
:red_circle: Changes :

User specific angle for the turtle to turn
If color not specified using default color

Screenshots 📷
N/A

:white_check_mark: To be Mentioned while taking the issue :

Full name: Vuppu Chinmay
What is your participant role? (Mention the Open Source Program name. Eg. GSOC, GSSOC, SSOC, JWOC, etc.)
Contributor at GSSOC-Extd 2024 and Hacktoberfest

Happy Contributing 🚀
All the best. Enjoy your open source journey ahead. 😎

@Chin-may02 you had only raised a PR on your cloned repo itself and merged it, it is not the PR for the main repo.

I shall redo it again
Sorry for the mishap


feat: restart pipeline with recovery

Description
Fixes https://github.com/ConduitIO/conduit/issues/1781 relying on its design document.
Quick checks

[x] I have followed the Code Guidelines.
[ ] There is no other pull request for the same update/change.
[x] I have written unit tests.
[ ] I have made sure that the PR is of reasonable size and can be easily reviewed.

Created this separate issue to tackle what's remaining on this project https://github.com/ConduitIO/conduit/issues/1862. Without that, we're setting the pipeline back to running as soon as we restarted the pipeline.


import account key broken

running on AVD Pixel2 x86 emulator
tested with recent develop branch 737fb150fa6517b2f78835260c8a13ef009a45c1

import key
enter mnemonic
enter label and password
app tells me that "This device doesn not support encrypt sr25519....."

OK, so I try the suggestion

import key
select advanced options -> Encrypt type ed25519
enter mnemonic
enter label and password
app tells me that "This device doesn not support encrypt sr25519....."

same result.
creating a fresh sr25519 account works
moreover, I find it confusing that you use the word "encrypt" for a key that is only meant for signing. May I suggest "account type" or "key type"?

It works well in my env, maybe rebuild the js file will help.
And Thanks for the suggestion, I will use "key type" instead.

I only built the js_service_encointer but forgot to rebuild js_service_kusama as well. I'll check again


Feature #157815733 User Request Details

What does this PR do?
Adds a page where the user can view all the details of a request
Description of Task to be completed?

Show how information about a request will be displayed.
Include buttons that provide users with actions such as editing, canceling and deleting a request.

How should this be manually tested?
Clone this repository under the **ft-User-Request-Details-#157815733 ** branch and navigate to user-view-request.html and open this file in your browser.
Screenshot

What are the relevant pivotal tracker stories?
[Finishes|Delivers #157815733 ]

Nice work. You could make either the background or the card darker to concentrate attention to one place.
right now it seems like one thing

Good design although I would kindly suggest that you use a backgroud image that conveys the context of the app.

Yeah... I'll do that as soon as I get one with a beige theme. I've grown fond of the color in the past week.

Its okay now.
we can distinguish between the background and the card

Beautiful UI. The PR is well documented. @davenmathews

Good job on the UI. PR looks good too


sqlcmd app should be localized

We need an i8n implementation so user-visible strings can be localized. @stuartpa has some ideas for an implementation.

@apoorvdeshmukh  can this be closed?

Yes. I will create another issue for setting up the localization pipeline and for any other follow-up items.


Context-Menus for files

It will be more convenient to visually show operations for files/directories if we had a context-menu when right clicking files/directories.


Problems with App "SampleClientApp" - Error in query execution: Service request failed

[Enter feedback here]
Problems running App "SampleClientApp"
Reproducing steps:

Executed all steps related to AZ CLI.
File "appsettings.json" modification with the correct Digital Twin Hostname.
"SampleClientApp" executed
Inside the CMD app window, the following command was executed: SetupBuildingScenario
Errors:
Step 1: Find all twins
Error in query execution: Service request failed.
Status: 404 (Not Found)

Content:
{ "statusCode": 404, "message": "Sub-domain not found." }
Headers:
Date: Fri, 13 May 2022 00:53:12 GMT
Content-Length: 57
Content-Type: application/json

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

ID: 2f9cef38-32b1-de42-382d-87877e5a4d25
Version Independent ID: 92b09f9b-690e-e3a4-5454-70bfaa65a449
Content: Tutorial: Connect an end-to-end solution - Azure Digital Twins
Content Source: articles/digital-twins/tutorial-end-to-end.md
Service: digital-twins
GitHub Login: @baanders
Microsoft Alias: baanders

The error is present in this tutorial: https://docs.microsoft.com/en-us/azure/digital-twins/tutorial-end-to-end

@pradorodriguez Thanks for the feedback! We are currently investigating and will update you shortly.

Dear Team, I will close this issue since this was a problem with my account.
Seems like Azure Digital Twins did not like to interact external emails (in my case I was using an email xxx@outlook.com).

Dear Team, I will close this issue since this was a problem with my account.
Seems like Azure Digital Twins did not like to interact external emails (in my case I was using an email xxx@outlook.com).

Thanks @pradorodriguez for the follow-up and for closing the issue.
In case it's helpful, this troubleshooting article about 404 errors across tenants might apply to you: Troubleshoot failed service request: Error 404 (Sub-Domain not found)

Thanks @pradorodriguez for the follow-up and for closing the issue.
In case it's helpful, this troubleshooting article about 404 errors across tenants might apply to you: Troubleshoot failed service request: Error 404 (Sub-Domain not found)


Modified stdin from - to --

This allows AssetCompress to work with the newer UglifyJS2.

Looks like a lot more changes than what you originally intended. Any way to clean that up?

That's quite strange. I didn't even check the branch out. I made the edit in the single Lib/Filter/Uglifyjs.php file in the Github editor (since I was just adding a "-"). Not sure why stickler thinks I made all those changes (and I certainly wouldn't use tabs! ;) )

@Jeraimee Are you looking to update the cakephp 2.x compatible version of asset compress?

Yes, I was in the 2.x branch.

Thanks @Jeraimee

Closing as #304 was merged.


Add option to sort shorthand props on jsx-sort-props

You can now require that shorthand props should come before all other props, but still respecting the alphabetical order.

The following are valid situations:
<Component a b="b" />
<Component x z a="a" b="b" />

And the following are invalid:
<Component z x a="a" b="b" /> // should be in alphabetical order
<Component x z b="b" a="a" /> // should be in alphabetical order
<Component a="a" b="b" x z /> // shorthand props should be at the start

[x] Tests
[x] Backwards compatibility

Great, thanks!


Resolve connection reset by peer regression

Fixes #30816 (regression introduced by #30446)

Thanks! @vieux added this to the 17.04 milestone, because it looks like this regression was introduced in 17.04
ping @cpuguy83 @runcom PTAL

LGTM

all green, thanks!


Allow new members without district offices

This only reports an error if the member has been in office for at least 60 days. See https://github.com/unitedstates/congress-legislators/issues/523

Can we make it a warning otherwise? (Does a warning make the tests pass?)

I changed it to a warning .. it'll now print the warning but exit with code 0 (rather than 1 for an error)

Thanks!


API tokens with view-table but not view-database/view-instance cannot access the table

Spotted a problem while working on this: if you grant a token access to view table for a specific table but don't also grant view database and view instance permissions, that token is useless.
This was a deliberate design decision in Datasette - it's documented on https://docs.datasette.io/en/1.0a2/authentication.html#access-permissions-in-metadata

If a user cannot access a specific database, they will not be able to access tables, views or queries within that database. If a user cannot access the instance they will not be able to access any of the databases, tables, views or queries.

I'm now second-guessing if this was a good decision.

Originally posted by @simonw in https://github.com/simonw/datasette-auth-tokens/issues/7#issuecomment-1636031702

I think I made this decision because I was thinking about default deny: obviously if a user has been denied access to a database. It doesn't make sense that they could access tables within it.
But now that I am spending more time with authentication tokens, which default to denying everything, except for the things that you have explicitly listed, this policy, no longer makes as much sense.

Relevant code:
https://github.com/simonw/datasette/blob/0f7192b6154edb576c41b55bd3f2a3f53e5f436a/datasette/app.py#L822-L855

I tried some code spelunking and came across https://github.com/simonw/datasette/commit/d6e03b04302a0852e7133dc030eab50177c37be7 which says:

If you have table permission but not database permission you can now view the table page

Refs:

#832

This might only be an issue with the code that checks _r on actors.

Here's that crucial comment:

If _r is defined then we use those to further restrict the actor.
Crucially, we only use this to say NO (return False) - we never use it to return YES (True) because that might over-ride other restrictions placed on this actor

Confirmed that this is an issue with regular Datasette signed tokens as well. I created one on https://latest.datasette.io/-/create-token with these details:
{
    "_r": {
        "r": {
            "fixtures": {
                "sortable": [
                    "vt"
                ]
            }
        }
    },
    "a": "root",
    "d": 3600,
    "t":<PHONE_NUMBER>
}

Run like this:
curl -H 'Authorization: Bearer dstok_eyJhIjoicm9vdCIsInQiOjE2ODk2MTQ0ODMsImQiOjM2MDAsIl9yIjp7InIiOnsiZml4dHVyZXMiOnsic29ydGFibGUiOlsidnQiXX19fX0.n-VGxxawz1Q0WK7sqLfhXUgcvY0' \
  https://latest.datasette.io/fixtures/sortable.json

Returned an HTML Forbidden page:
<!DOCTYPE html>
<html>
<head>
    <title>Forbidden</title>
    <link rel="stylesheet" href="/-/static/app.css?d59929">
...

Same token againts /-/actor.json returns:
{
  "actor": {
    "id": "root",
    "token": "dstok",
    "_r": {
      "r": {
        "fixtures": {
          "sortable": [
            "vt"
          ]
        }
      }
    },
    "token_expires":<PHONE_NUMBER>
  }
}

I think I've figured out the problem here.
The question being asked is "can this actor access this resource, which is within this database within this instance".
The answer to this question needs to consider the full set of questions at once - yes they can access within this instance IF they have access to the specified table and that's the table being asked about.
But the questions are currently being asked independently, which means the plugin hook acting on view-instance can't see that the answer here should be yes because it's actually about a table that the actor has explicit permission to view.
So I think I may need to redesign the plugin hook to always see the full hierarchy of checks, not just a single check at a time.

This is the hook in question: https://github.com/simonw/datasette/blob/bdf59eb7db42559e538a637bacfe86d39e5d17ca/datasette/hookspecs.py#L108-L110

Built this new test:
@pytest.mark.asyncio
async def test_view_table_token_can_access_table(perms_ds):
    actor = {
        "id": "restricted-token",
        "token": "dstok",
        # Restricted to just view-table on perms_ds_two/t1
        "_r": {"r": {"perms_ds_two": {"t1": ["vt"]}}},
    }
    cookies = {"ds_actor": perms_ds.client.actor_cookie(actor)}
    response = await perms_ds.client.get("/perms_ds_two/t1.json", cookies=cookies)
    assert response.status_code == 200

The test fails. Running it with pytest --pdb let me do this:
(Pdb) from pprint import pprint
(Pdb) pprint(perms_ds._permission_checks)
deque([{'action': 'view-table',
        'actor': {'_r': {'r': {'perms_ds_two': {'t1': ['vt']}}},
                  'id': 'restricted-token',
                  'token': 'dstok'},
        'resource': ('perms_ds_two', 't1'),
        'result': None,
        'used_default': True,
        'when': '2023-08-23T21:59:45.117155'},
       {'action': 'view-database',
        'actor': {'_r': {'r': {'perms_ds_two': {'t1': ['vt']}}},
                  'id': 'restricted-token',
                  'token': 'dstok'},
        'resource': 'perms_ds_two',
        'result': False,
        'used_default': False,
        'when': '2023-08-23T21:59:45.117189'},
       {'action': 'view-instance',
        'actor': {'_r': {'r': {'perms_ds_two': {'t1': ['vt']}}},
                  'id': 'restricted-token',
                  'token': 'dstok'},
        'resource': None,
        'result': False,
        'used_default': False,
        'when': '2023-08-23T21:59:45.126751'},
       {'action': 'debug-menu',
        'actor': {'_r': {'r': {'perms_ds_two': {'t1': ['vt']}}},
                  'id': 'restricted-token',
                  'token': 'dstok'},
        'resource': None,
        'result': False,
        'used_default': False,
        'when': '2023-08-23T21:59:45.126777'}],
      maxlen=200)

Idea: datasette-permissions-debug plugin which simply prints out a stacktrace for every permission check so you can see where in the code they are.

There might be an easier way to solve this. Here's some permission checks that run when hitting /fixtures/facetable.json:
permission_allowed: action=view-table, resource=('fixtures', 'facetable'), actor={'_r': {'a': ['vi'], 'd': {'fixtures': ['vd']}, 'r': {'fixtures': {'facetable': ['vt']}}}, 'a': 'user'}

  File "/datasette/views/table.py", line 727, in table_view_traced
    view_data = await table_view_data(

  File "/datasette/views/table.py", line 875, in table_view_data
    visible, private = await datasette.check_visibility(

  File "/datasette/app.py", line 890, in check_visibility
    await self.ensure_permissions(actor, permissions)

permission_allowed: action=view-database, resource=fixtures, actor={'_r': {'a': ['vi'], 'd': {'fixtures': ['vd']}, 'r': {'fixtures': {'facetable': ['vt']}}}, 'a': 'user'}

  File "/datasette/views/table.py", line 727, in table_view_traced
    view_data = await table_view_data(

  File "/datasette/views/table.py", line 875, in table_view_data
    visible, private = await datasette.check_visibility(

  File "/datasette/app.py", line 890, in check_visibility
    await self.ensure_permissions(actor, permissions)

permission_allowed: action=view-instance, resource=<None>, actor={'_r': {'a': ['vi'], 'd': {'fixtures': ['vd']}, 'r': {'fixtures': {'facetable': ['vt']}}}, 'a': 'user'}

  File "/datasette/views/table.py", line 727, in table_view_traced
    view_data = await table_view_data(

  File "/datasette/views/table.py", line 875, in table_view_data
    visible, private = await datasette.check_visibility(

  File "/datasette/app.py", line 890, in check_visibility
    await self.ensure_permissions(actor, permissions)

That's with a token that has the view instance, view database and view table permissions required.
But... what if the restrictions logic said that if you have view-table you automatically also get view-database and view-instance?
Would that actually let people do anything they shouldn't be able to do? I don't think it would even let them see a list of tables that they weren't allowed to visit, so it might be OK.
I'll try that and see how it works.

I applied a fun trick to help test this out:
diff --git a/datasette/cli.py b/datasette/cli.py
index 58f89c1c..830f47ef 100644
--- a/datasette/cli.py
+++ b/datasette/cli.py
@@ -445,6 +445,10 @@ def uninstall(packages, yes):
     "--token",
     help="API token to send with --get requests",
 )
<EMAIL_ADDRESS>+    "--actor",
+    help="Actor to use for --get requests",
+)
 @click.option("--version-note", help="Additional note to show on /-/versions")
 @click.option("--help-settings", is_flag=True, help="Show available settings")
 @click.option("--pdb", is_flag=True, help="Launch debugger on any errors")
@@ -499,6 +503,7 @@ def serve(
     root,
     get,
     token,
+    actor,
     version_note,
     help_settings,
     pdb,
@@ -611,7 +616,10 @@ def serve(
         headers = {}
         if token:
             headers["Authorization"] = "Bearer {}".format(token)
-        response = client.get(get, headers=headers)
+        cookies = {}
+        if actor:
+            cookies["ds_actor"] = client.actor_cookie(json.loads(actor))
+        response = client.get(get, headers=headers, cookies=cookies)
         click.echo(response.text)
         exit_code = 0 if response.status == 200 else 1
         sys.exit(exit_code)

This adds a --actor option to datasette ... --get /path which makes it easy to test an API endpoint using a fake actor with a set of _r restrictions.
With that in place I can try this, with a token that has view-instance and view-database and view-table:
datasette fixtures.db --get '/fixtures/facetable.json' --actor '{
    "_r": {
        "a": [
            "vi"
        ],
        "d": {
            "fixtures": [
                "vd"
            ]
        },
        "r": {
            "fixtures": {
                "facetable": [
                    "vt"
                ]
            }
        }
    },
    "a": "user"
}'

Or this, with a token that just has view-table but is missing the view-database and view-instance:
datasette fixtures.db --get '/fixtures/facetable.json' --actor '{
    "_r": {
        "r": {
            "fixtures": {
                "facetable": [
                    "vt"
                ]
            }
        }
    },
    "a": "user"
}'

On first test this seems to work!
diff --git a/datasette/default_permissions.py b/datasette/default_permissions.py
index 63a66c3c..9303dac8 100644
--- a/datasette/default_permissions.py
+++ b/datasette/default_permissions.py
@@ -187,6 +187,30 @@ def permission_allowed_actor_restrictions(datasette, actor, action, resource):
         return None
     _r = actor.get("_r")

+    # Special case for view-instance: it's allowed if there are any view-database
+    # or view-table permissions defined
+    if action == "view-instance":
+        database_rules = _r.get("d") or {}
+        for rules in database_rules.values():
+            if "vd" in rules or "view-database" in rules:
+                return None
+        # Now check resources
+        resource_rules = _r.get("r") or {}
+        for _database, resources in resource_rules.items():
+            for rules in resources.values():
+                if "vt" in rules or "view-table" in rules:
+                    return None
+
+    # Special case for view-database: it's allowed if there are any view-table permissions
+    # defined within that database
+    if action == "view-database":
+        database_name = resource
+        resource_rules = _r.get("r") or {}
+        resources_in_database = resource_rules.get(database_name) or {}
+        for rules in resources_in_database.values():
+            if "vt" in rules or "view-table" in rules:
+                return None
+
     # Does this action have an abbreviation?
     to_check = {action}
     permission = datasette.permissions.get(action)

Needs a LOT of testing to make sure what it's doing is sensible though.

Also need to confirm that permissions like insert-row, delete-row, create-table etc don't also need special cases to ensure they get through the view-instance etc checks, if those exist for those actions.

With that fix in place, this works:
datasette fixtures.db --get '/fixtures/facetable.json' --actor '{
    "_r": {
        "r": {
            "fixtures": {
                "facetable": [
                    "vt"
                ]
            }
        }
    },
    "a": "user"
}'

But this fails, because it's for a table not explicitly listed:
datasette fixtures.db --get '/fixtures/searchable.json' --actor '{
    "_r": {
        "r": {
            "fixtures": {
                "facetable": [
                    "vt"
                ]
            }
        }
    },
    "a": "user"
}'

I'm going to implement this in a branch to make it easier to test out.

I tested this out against a Datasette Cloud instance. I created a restricted token and tested it like this:
curl -H "Authorization: Bearer $TOKEN" \
  'https://$INSTANCE/-/actor.json' | jq

{
  "actor": {
    "id": "245",
    "token": "dsatok",
    "token_id": 2,
    "_r": {
      "r": {
        "data": {
          "all_stocks": [
            "vt"
          ]
        }
      }
    }
  }
}

It can access the all_stocks demo table:
curl -H "Authorization: Bearer $TOKEN" \
  'https://$INSTANCE/data/all_stocks.json?_size=1' | jq

{
  "ok": true,
  "next": "1",
  "rows": [
    {
      "rowid": 1,
      "Date": "2013-01-02",
      "Open": 79.12,
      "High": 79.29,
      "Low": 77.38,
      "Close": 78.43,
      "Volume": 140124866,
      "Name": "AAPL"
    }
  ],
  "truncated": false
}

Accessing the database returns just information about that table, even though other tables exist:
curl -H "Authorization: Bearer $TOKEN" \
  'https://$INSTANCE/data.json?_size=1'

{
  "database": "data",
  "private": true,
  "path": "/data",
  "size": 3796992,
  "tables": [
    {
      "name": "all_stocks",
      "columns": [
        "Date",
        "Open",
        "High",
        "Low",
        "Close",
        "Volume",
        "Name"
      ],
      "primary_keys": [],
      "count": 8813,
      "hidden": false,
      "fts_table": null,
      "foreign_keys": {
        "incoming": [],
        "outgoing": []
      },
      "private": true
    }
  ],
  "hidden_count": 0,
  "views": [],
  "queries": [],
  "allow_execute_sql": false,
  "table_columns": {}
}

And hitting the top-level /.json thing does the same - it reveals that table but not any of the other tables or databases:
curl -H "Authorization: Bearer $TOKEN" \
  'https://$INSTANCE/.json?_size=1'

{
  "data": {
    "name": "data",
    "hash": null,
    "color": "8d777f",
    "path": "/data",
    "tables_and_views_truncated": [
      {
        "name": "all_stocks",
        "columns": [
          "Date",
          "Open",
          "High",
          "Low",
          "Close",
          "Volume",
          "Name"
        ],
        "primary_keys": [],
        "count": null,
        "hidden": false,
        "fts_table": null,
        "num_relationships_for_sorting": 0,
        "private": false
      }
    ],
    "tables_and_views_more": false,
    "tables_count": 1,
    "table_rows_sum": 0,
    "show_table_row_counts": false,
    "hidden_table_rows_sum": 0,
    "hidden_tables_count": 0,
    "views_count": 0,
    "private": false
  }
}

So what's needed to finish this is:

Tests that demonstrate that nothing is revealed that shouldn't be by tokens restricted in this way
Similar tests for other permissions like create-table that check that they work (and don't also need view-instance etc).
Documentation

I can use this existing test to add these new tests: https://github.com/simonw/datasette/blob/2e2825869fc2655b5fcadc743f6f9dec7a49bc65/tests/test_permissions.py#L616-L666

I want to test "for this set of restrictions, does a GET/POST to this path return 200 or 403"?


Removes valid branch tracking information

I've just come across this package as I am setting up bumped for the first time on a new project but I'm running into an issue where
git branch --unset-upstream

on line 22 of the dirty.sh file is removing my tracking of master origin/master.
Given that bumped runs the following in sequence:
Detecting problems before publish:
      plugin: bumped-terminal
      command: 'git-dirty'
    Publishing tag to BitBucket:
      plugin: bumped-terminal
      command: 'git tag $newVersion && git push && git push --tags'

The Publishing tag to BitBucket always fails with
post bumped Starting Publishing tag to BitBucket
post bumped fatal: The current branch master has no upstream branch.
To push the current branch and set the remote as upstream, use

    git push --set-upstream origin master

post bumped Process exited with code 128

As the git-dirty command seems to remove the tracking every time before the next step is running git push.

Aside from this repo being separate to bumped and this perhaps falling outside of this repo's responsibility, what is the need for the git branch --unset-upstream anyway?
It seems to me that in any use case it would always result in local tracking information being lost?
Maybe I'm missing something though…
Would love to hear your thoughts.

hmmm not sure what is happening, but the final unset upstream is necessary because at line 15 it set the branch temporaly as upstream.
Maybe we can use a differente mechanism for the same purpose?

For example: https://stackoverflow.com/questions/1800783/compare-local-git-branch-with-remote-branch

I think there are generally 2 options:

If we capture the original upstream setting in a variable, then rather than unsetting upstream we can set it back to the original value.
git diff provided it contains the info you need for the history check you're running at line 17.

I'd say, option 2 is cleaner but I'm not 100% sure what git rev-list --count --left-only @'{u}'...HEAD does/whether you can accomplish the same with git diff.

I think we can use this command:
git diff master origin/master --exit-code

a more generic way is:
g diff master@{u}

where master is the currrent branch or provided by CLI
The point is, it is comparing with upstream and even you define a remote repository, if you don't setup it as upstream the command will fail.

❯ g remotes
origin	git@github.com:windtoday/windtoday-app.git (fetch)
origin	git@github.com:windtoday/windtoday-app.git (push)

windtoday-app master
❯ g diff master@{u}
fatal: no upstream configured for branch 'master'

Actually I don't undertand why it doesn't undertand origin as default upstream...

Hmm the above does work for me without errors.
Is it safe to assume someone is on master?

We could parse the output of git branch -vv to get all info as well:
→ git branch -vv
* master c2950f2 [origin/master] Release 0.0.5

nope, it was an example; it assumes the current branch by default.
About my problem, it was because I had setup push as current. Check here http://stackoverflow.com/a/948397.
We need a way to determinate the second diff parameter

@jannisg sounds hacky buy possible 😄

not possible, because If you haven't a upstream it doesn't output nothing:
❯ git branch -vv
* master 0eced3e Update flush

Thinking...

Throw an error is no upstream is set at all? That seems more of a config issue that anything wouldn't it?

At this moment of the conversation we are agree with replace the current behavior for:
git diff $CURRENT_BRANCH $REMOTE_BRANCH --exit-code

Exploring a way to have $REMOTE_BRANCH available

@jannisg can you check that? http://stackoverflow.com/a/7733266

→ git remote show origin
* remote origin
  Fetch URL: {myrepourl}
  Push  URL: {myrepourl}
  HEAD branch: master
  Remote branch:
    master tracked
  Local branch configured for 'git pull':
    master merges with remote master
  Local ref configured for 'git push':
    master pushes to master (up to date)

I wonder if this would be helpful, see the git for-each-ref  command http://stackoverflow.com/a/3633061/70339

Hey @jannisg, I'm interest in resolve that, do you have any suggestion to go ahead? I'm a little out of the problem right now


Does not compile with Swift 4

Compilation on Swift 4 fails in ImageCache.swift on the following line: https://github.com/Alamofire/AlamofireImage/blob/master/Source/ImageCache.swift#L200
var sortedImages = self.cachedImages.map{$1}
// Source/ImageCache.swift:200:57: Closure tuple parameter '(key: String, value: AutoPurgingImageCache.CachedImage)' does not support destructuring with implicit parameters

We will be adding Swift 4 support shortly. It also looks like you've already opened #266 which adds support. I'm going to close this issue out for now. Please direct all further comments to #266.


openNCA CE release 3.0.2 missing DOSE and DOSEUNI variables cause error but should be allowed and prompt utilization of unit DOSE

This is issue was identified with release 3.0.2 and testcase tc2103. Dataset has no DOSE nor DOSEUNI fields which ordinarily would cause initiate utilization of a unit DOSE value of 1 (one) dose unit.
However, with this test case (haven't identified others at this point) an error is generated that causes the code to exit and stop. This may be occurring within the unit_conversion code since the error message appears after the messages generated from unit_conversion pass within the code.
This behavior doesn't appear to be related to the presence of "DOSE" in RETURNCOLS for the model configuration template as once DOSE is removed, the error persists.
> results_list <- run_computation(data=conc, map=mct, flag=flags, parameterset="PARAMETERLIST")
openNCA computation engine version 3.0.2
Computation Run Date/Time: 2021-07-30 13:50:57
**DOSE  as defined in 'map', do not appear in input concentration dataset
assuming unit dose amounts for:  DOSE
DOSEU  as defined in 'map', do not appear in input concentration dataset**
unit_conversion : Unit Class 1 (Time) time_col:  TMAX TMIN TLAST TLAG KELTMLO KELTMHI THALF LASTTIME MRTLAST MRTEVIFO MRTEVIFP  parameters are scaled from  HR  to  HR  via scaling factor:  1
unit_conversion : Unit Class 4 (Volume) volume_col:  VZFO VZFP  parameters are scaled from  ML  to  L  via scaling factor:  0.001
unit_conversion : Unit Class 5 (Amount/Volume) conc_col:  CMAX CMIN CLAST CEST KELC0  parameters are scaled from  UG/ML  to  NG/ML  via scaling factor:  1000
unit_conversion : Unit Class 6 (1/Time) kel_col:  KEL  parameters are scaled from  1/HR  to  1/HR  via scaling factor:  1
unit_conversion : Unit Class 7 (Volume/Time) cl_col:  CLFO CLFP  parameters are scaled from  ML/HR  to  L/HR  via scaling factor:  0.001
unit_conversion : Unit Class 8: (Amount.Time/Volume) auc_col:  AUCALL AUCLAST AUCLASTC AUC1 AUC2 AUC3 AUC4 AUC5 AUC6 AUC7 AUC8 AUC9 AUC10 AUC11 AUC12 AUC13 AUC14 AUC15 AUC16 AUC17 AUC18 AUCINFO AUCINFP AUCINFOC AUCINFPC  parameters are scaled from  UG.HR/ML  to  NG.HR/ML  via scaling factor:  1000
unit_conversion : Unit Class 9: (Amount.Time.Time/Volume) aumc_col:  AUMCLAST AUMCINFO AUMCINFP  parameters are scaled from  UG.HR.HR/ML  to  NG.HR.HR/ML  via scaling factor:  1000
**Error in `[.data.frame`(data_data, , map_data[, unlist(strsplit(map_data$DOSEULIST,  :
  undefined columns selected**
In addition: Warning messages:
1: In validate_timeconc_data(map, data, flag, verbose = verbose) :
  assuming unit dose amounts for each dose
2: In validate_timeconc_data(map, data, flag, verbose = verbose) :
  Dosing unit: 'DOSEU' isn't present in input concentration dataset

3: In validate_timeconc_data(map, data, flag, verbose = verbose) :
  No tau information provided in 'map'.
4: In validate_timeconc_data(map, data, flag, verbose = verbose) :
  No told information provided in 'map'.
5: In run_computation(data = conc, map = mct, flag = flags, parameterset = "PARAMETERLIST") :
  'TAUs and TOLDs values are not provided via 'flag'! Using values provided via 'data' instead (if present)!
6: In run_computation(data = conc, map = mct, flag = flags, parameterset = "PARAMETERLIST") :
  NAs introduced by coercion
7: In any(k) : coercing argument of type 'double' to logical
8: In run_M1_SD_computation(data = merged_data, map = map_data, method = method,  :
  Flag 'FLGEMESIS' is not present in the dataset
9: In unit_conversion(data = data_data, map = map_data, result = computation_df,  :
  'AMOUNTU' #2# is not present in the dataset provided via 'map'
10: In unit_conversion(data = data_data, map = map_data, result = computation_df,  :
  'DOSEU' value provided via 'map' is not present in the dataset provided via 'data'

The root cause of this issue has been identified. If DOSE units are missing from the input dataset when a DOSE is imputed as a unit dose, they cannot be found in the unit_conversion for processing within Unit Class 14 (Volume/Weight - body weight normalized volumes) or Unit Class 15 (Volume/Time/Body Weight - body weight normalized clearances).
A workaround in advance of a code fix is to add a DOSE unit to the input dataset and ensure that the model configuration template is configured to point to that data field. If this is done, parameter results are generated as expected.

Issue is addressed in openNCA CE release 3.0.3 (not yet committed to repo - will update comment when git history cleaned up and pushed)


Preserve widget state when unmounted?

From Discord, @hydra reports that when using a Switcher to switch between two widgets that contain input fields, the input fields don't remember the selection. This is due to the ability to share widgets between multiple windows, and text inputs track their selection regions using a WindowLocal. When it is unmounted, the information is freed from the WindowLocal, allowing for memory reuse. Unfortunately, when remounting the widget this means the state is reset to the default state.
I'm not sure the best approach to support this. In the situation being discussed in Discord, Cushy should have a new widget to support the concept being requested, which would avoid this problem entirely. Perhaps with the new widget, the current behavior is acceptable?

I was mistaken about Inputs tracking state in WindowLocal. I've fixed the focus handling issue for Inputs so that it behaves more correctly which alleviates the original problem I thought we had.
Despite this being hypothetically possible, the solution exists as I've already been reminded by Input: don't store information you want to preserve across unmounts in a WindowLocal.


Pabbly Connect - Intigration

Problem -
To Create new Funnel for onboarding Company and Staff new push required
Solution-
Push Company Create / Staff Join event to Pabbly webhook
initiated by @vinpahilwani
Verified by @mitulpanch

@Avinash-ecb i need your help in this

2 different workflow given - on pabbly


spring: 104.0.1 -> 105.0.1

Motivation for this change
This was marked as broken and upstream has patched the issue.
Things done

version bump
removed broken marker and comment

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
21.11 Release Notes (or backporting 21.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

(pinging the maintainers here) @Phreedom @qknight @domenkozar  @sorki this ok with you guys?


Errors after update from v0.7.1 on Eloquent BelongsToMany relations

Larastan Version: >= 0.7.2
--level used: 5

Description
When updating from 0.7.1 to 0.7.2 or higher, I suddenly get analyzer errors on chained where() calls on Eloquent BelongsToMany.
Example errors:
  215    Call to an undefined method Illuminate\Database\Eloquent\Relations\BelongsToMany::where().
  242    Call to an undefined method Illuminate\Database\Eloquent\Relations\BelongsToMany::whereNull().
  424    Call to an undefined method Illuminate\Database\Eloquent\Relations\BelongsToMany::where().
  521    Call to an undefined method Illuminate\Database\Eloquent\Relations\BelongsToMany::count().
  539    Call to an undefined method Illuminate\Database\Eloquent\Relations\BelongsToMany::whereIn().
  571    Call to an undefined method Illuminate\Database\Eloquent\Relations\BelongsToMany::where().
  672    Call to an undefined method Illuminate\Database\Eloquent\Relations\BelongsToMany::where().
  683    Call to an undefined method Illuminate\Database\Eloquent\Relations\HasMany::where().

Laravel code where the issue was found
// Line 424 from above
$item->owners()->where('user_id', $user->id)->exists();

These all reported as correct on 0.7.1 and the actual code does actually work as intended.
No other changes where made. I can toggle between a successfull analyzer run and a failing one only by switchting the Larastan version.
This is what the owners() definition looks like:

    public function members(): BelongsToMany
    {
        return $this
            ->belongsToMany(User::class, 'item_role', 'item_id', 'user_id')
            ->using(ItemRole::class)
            ->withPivot('role')
            ->withTimestamps();
    }

    public function owners(): BelongsToMany
    {
        return $this->members()->where('role', '=', 'owner');
    }

It does not complain about uses of members()->where() only of owners()->where(). So it seems Larastan no longer understands that chaining...

Hello! Thank you for your report.
Are generics present in your where() definition?

I updated the question with the implementation of owners(). Thanks for looking into this!

BelongsToMany uses generics:
https://github.com/nunomaduro/larastan/blob/66b4ca1ed512de0bb4195573a04968ef3a941b7b/stubs/BelongsToMany.stub#L6
    /**
     * @return BelongsToMany<Member>
     */
    public function owners(): BelongsToMany

Please do not do what I write, use FQCN in PHPDoc blocks.
Consider repeating this for members().
Has it been resolved?

Yes! Adding the generic types to the doc comments solves it.
Thank you very much for the hint! 🙏


Target existing GKE Cluster

Is it possible to deploy to existing GKE Cluster and namespace?

It should work. We will take a look and respond to the other issue you filled.


Change installation directory to mix escript default

This is a more standard, albeit slightly less convenient, location for the cell escript.

Yea, I'm convinced.  I didn't realize mix escript.install was a thing.


Fix logs tail issue when there are no logs

🔧 Changes
This PR fixes an issue with the auth0 logs tail command when there are no logs returned in the first api call, due to the fact that we're trying to send an empty lastLogID in the query params.
An unexpected error occurred while getting logs: 400 Bad Request: The query 'log_id:[ TO *]' cannot be parsed. Please revise the query or visit https://auth0.com/docs/logs/log-search-query-syntax for help.

📚 References

🔬 Testing

📝 Checklist

[x] All new/changed/fixed functionality is covered by tests (or N/A)
[x] I have added documentation for all new/changed functionality (or N/A)

Codecov Report
Patch coverage: 93.75% and project coverage change: +0.47 :tada:

Comparison is base (f6112ce) 71.67% compared to head (817a6eb) 72.14%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #744      +/-   ##
==========================================
+ Coverage   71.67%   72.14%   +0.47%
==========================================
  Files          89       89
  Lines       11159    11158       -1
==========================================
+ Hits         7998     8050      +52
+ Misses       2658     2608      -50
+ Partials      503      500       -3

Impacted Files
Coverage Δ

internal/cli/logs.go
97.93% <93.75%> (+36.28%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Validate array of objects

Hi,
Thanks for this library, it's been really useful!
I think I've found an issue that might be worth investigating. While trying to validate an array of objects:
{somekey: [ {anotherkey: "value1"}, {anotherkey:"value2"}]}

With the following code:
router.post('/test', function (req, res){
    validate(req.body,{
        type: Object,
        schema: {
            'somekey': {
                type: Array,
                schema: {
                    type: Object,
                    schema: {
                        'anotherkey': {type: String}
                    }
                }
            }
        }
    }, function(err, validatedData){
    ...
    });
});

I get an unknown key error:
{"keyPath":["somekey","0","anotherkey"],"schema":{},"validator":"unknownKeys","message":"Unknown key."}

Is this supported? The tests in schema.js seem to imply that it is, but couldn't get it to work without some tinkering.

router what is that? Are you using express.js?

Yeah.  However I closed the issue as I found it was an error on my part.


Should truncate symbol when displaying them if it contains characters that can be displayed

Will have to verify, but Dai probably does that.

@zhangzhongnan928 I can't reproduce this. If you tap on the token, does it show that it has a TokenScript file applied (it has the Convert to xDAI button)?

I can reproduce this now. Dup of #1443


The Smurfs - gfg potd

Please fill the details before contributing.

⚠Important!!

[x] Done reading CONTRIBUTING.md?

Adding Code PRs?🔥
⚠Do not add multiple files for the same solution!!!

[ ] Added problem statement(Readme.md) with solution?

[x] Contributing new file?
[ ] Appending your code in already existing file?

From Platform:

[ ] Leetcode
[ ] GFG
[x] Interviewbit
[ ] Others(only acceptable after DISCUSSIONS)

Migration PRs?🤝

[ ] Done deleteing file from home directory?
[ ] Added file with correct name and correct directory?

Why you closed it?


Update private-endpoint-dns.md

https://learn.microsoft.com/en-us/azure/batch/private-connectivity#azure-portal
According to the above doc the Azure Batch DNS zone name that should be in place must not contain the region name as a prefix, i.e. westeurope.privatelink.batch.azure.com. It should be created as privatelink.batch.azure.com. The document I am suggesting to be changed is to reflect this change, since the current naming that is displayed causes confusion.

@AbdullahBell
Can you review the proposed changes?
IMPORTANT: When the changes are ready for publication, adding a #sign-off comment is the best way to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

#sign-off

#hold-off per https://github.com/MicrosoftDocs/azure-docs/pull/124148#issuecomment-2327164027

@AbdullahBell
Can you review this old PR and determine whether it needs to be closed or merged?

#please-close


Added a comprehensive html entity map in the Escaper

Hello ZF2,
As you can see, my pull request is really simple, i just wanted to use characters with accents from the extended utf8 table in html entities, thus, i extended the htmlNamedEntityMap to most of the html entities.

You can use characters like ë just as they are. Can you explain why you think this is needed?

This is a security component. The characters you reference are not a security concern and should not be allowed to litter the class and obscure its purpose. It would also break XML serialisations of HTML 5 (as rarely as they are used).
If you need to represent certain international characters as entities, then you should do so via your own view helpers (prior to Escaper being invoked) or address the underlying problem that requires you to use entities in order to represent these characters in output. This looks a lot like the anglocentric kludge of using htmlentities() instead of htmlspecialchars() to cover over a lack of UTF-8 consistency (which is NOT a security issue and so requires no fixing).

I understand the security issue here and why you want to keep this class tidy.
To anwer to Martin-p i have a form and uses a "pattern" in a addition to a "oninvalid" attribute.
i would like to translate the oninvalid message that pops, so i injected the translator and translate it, but the security feature fires me an error.
Also, do you have any doc/readings that explain how a utf 8 character could be used for security abuse ?

i would like to translate the oninvalid message that pops, so i injected the translator and translate it, but the security feature fires me an error.

I don't know what the error is you are seeing, but looking at your PR translating things like ë should not be any problem at all. My guess is you are doing something wrong in your encoding.