specify module version in run command

For whatever reason, I have test.ceylon.random/1.2.2 installed in ~/.ceylon/repo, causing:
/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/bin/java "-Dceylon.system.repo=/Users/jvasileff/Library/Application Support/IdeaIC2016.2/CeylonIDEA/classes/embeddedDist/repo" -Didea.launcher.port=7532 "-Didea.launcher.bin.path=/Applications/IntelliJ IDEA CE.app/Contents/bin" -Dfile.encoding=UTF-8 -classpath "/Users/jvasileff/Library/Application Support/IdeaIC2016.2/CeylonIDEA/classes/embeddedDist/lib/ceylon-bootstrap.jar:/Applications/IntelliJ IDEA CE.app/Contents/lib/idea_rt.jar" com.intellij.rt.execution.application.AppMain com.redhat.ceylon.launcher.Bootstrap run --run test.ceylon.random.run --rep /Users/jvasileff/Dropbox/Repos/ceylon/ceylon-sdk/classes test.ceylon.random
ceylon run: Missing required version number for module test.ceylon.random
Try one of the following versions: 1.2.2, 1.2.3

Ideally the run command would have test.ceylon.random/1.2.3 rather than just test.ceylon.random. Note that it is possible to manually add the version in "Edit Configurations..."

Fixed. If no / is present in the Ceylon module field of the run configuration, the plugin will now look for modules matching the given name in the source files, and use the version of the first result.

Thanks!


Missing resources ?

Currently getting this error trying to run the app :
Can't load ../Resources/Textures/studio015.hdr image
There's confirmedly no actual /Textures/ Directory to be found in the Resource Directory.

I have added missing HDRI: https://github.com/GPUOpen-LibrariesAndSDKs/FireRays_SDK/commit/524dba5d8329f540d28e52eaddb98d8996941378


system-upgrade-controller is missing in k3s-airgap-images

Is your feature request related to a problem? Please describe.
I'm trying to do an airgap installation of k3os by copying the file k3s-airgap-images-amd64.tar to directory /var/lib/rancher/k3s/agent/images. However, the pod for the system-upgrade-controller does not come up.
Describe the solution you'd like
Please include image rancher/system-upgrade-controller:v0.4.0 into the airgap tar ball for v1.17.4+k3s1 (and future releases).
Describe alternatives you've considered
None.

The air gap story could be more coherent, yes, but since v0.3.0 the SUC has been pushing tarballs as checksummed release artifacts (the .tar assets). See https://github.com/rancher/system-upgrade-controller/releases

OK, I'll try that route: I'm going to put https://github.com/rancher/system-upgrade-controller/releases/download/v0.4.0/system-upgrade-controller-amd64.tar also into /var/lib/rancher/k3s/agent/images and watch what happens.

I've finally managed to get the system-upgrade-controller running in an air-gapped environment:

Copy the TAR file system-upgrade-controller-amd64.tar into directory /var/lib/rancher/k3s/agent/images.
Execute sudo crictl images:

IMAGE                                         TAG                 IMAGE ID            SIZE
docker.io/rancher/coredns-coredns             1.6.3               c4d3d16fe508b       44.4MB
docker.io/rancher/klipper-helm                v0.2.3              274808e7f6b83       138MB
docker.io/rancher/klipper-lb                  v0.1.2              897ce3c5fc8ff       6.46MB
docker.io/rancher/library-traefik             1.7.19              aa764f7db3051       86.6MB
docker.io/rancher/local-path-provisioner      v0.0.11             9d12f9848b99f       36.5MB
docker.io/rancher/metrics-server              v0.3.6              9dd718864ce61       41.2MB
docker.io/rancher/pause                       3.1                 da86e6ba6ca19       746kB
docker.io/rancher/system-upgrade-controller   v0.4.0-amd64        7b04ae4440239       33.7MB
docker.io/rancher/system-upgrade-controller   latest              7b04ae4440239       33.7MB

This is not enough. The POD keeps looking for  "rancher/system-upgrade-controller:v0.4.0"
Retag the image without the -amd64 suffix by using command:

sudo ctr image tag docker.io/rancher/system-upgrade-controller:v0.4.0-amd64  docker.io/rancher/system-upgrade-controller:v0.4.0

Watch the result with sudo crictl images:

IMAGE                                         TAG                 IMAGE ID            SIZE
docker.io/rancher/coredns-coredns             1.6.3               c4d3d16fe508b       44.4MB
docker.io/rancher/klipper-helm                v0.2.3              274808e7f6b83       138MB
docker.io/rancher/klipper-lb                  v0.1.2              897ce3c5fc8ff       6.46MB
docker.io/rancher/library-traefik             1.7.19              aa764f7db3051       86.6MB
docker.io/rancher/local-path-provisioner      v0.0.11             9d12f9848b99f       36.5MB
docker.io/rancher/metrics-server              v0.3.6              9dd718864ce61       41.2MB
docker.io/rancher/pause                       3.1                 da86e6ba6ca19       746kB
docker.io/rancher/system-upgrade-controller   latest              7b04ae4440239       33.7MB
docker.io/rancher/system-upgrade-controller   v0.4.0              7b04ae4440239       33.7MB
docker.io/rancher/system-upgrade-controller   v0.4.0-amd64        7b04ae4440239       33.7MB

Now k3s is happy and the POD gets started.

Okay, S-U-C is working now.
But that doesn't make sense in an air-gapped environment:
kubectl -n k3os-system logs pod/system-upgrade-controller-69c695c7fc-r77b4
W0505 17:32:16.344349       1 client_config.go:543] Neither --kubeconfig nor --master was specified.  Using the inClusterConfig.
Or disable S-U-C for air-gapped envs, by using --no-deploy system-upgrade-controller?

The k3os-latest plan is meant to serve as an example. It is was I use to test upgrades and the SUC on k3OS. That said, if you are using k3os-latest plan you are welcome to edit it as you see fit. In this instance, to prevent it from attempting to talk to github.com you can remove the .spec.channel from the plan but then you will want to explicitly specify the .spec.version as a plan without either is in error.

Please, can you clarify who is responsible of downloading the fresh version of K3OS? Is it S.U.C. or the k3os upgrade command?


OAuth login fails

Traceback (most recent call last):
  File "/tmp/backend/capellacollab/core/logging/__init__.py", line 75, in dispatch
    return await call_next(request)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/.venv/lib/python3.11/site-packages/starlette/middleware/base.py", line 84, in call_next
    raise app_exc
  File "/opt/.venv/lib/python3.11/site-packages/starlette/middleware/base.py", line 70, in coro
    await self.app(scope, receive_or_disconnect, send_no_error)
  File "/opt/.venv/lib/python3.11/site-packages/starlette/middleware/base.py", line 108, in __call__
    response = await self.dispatch_func(request, call_next)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/backend/capellacollab/core/logging/__init__.py", line 86, in dispatch
    response: fastapi.Response = await call_next(request)
                                 ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/.venv/lib/python3.11/site-packages/starlette/middleware/base.py", line 84, in call_next
    raise app_exc
  File "/opt/.venv/lib/python3.11/site-packages/starlette/middleware/base.py", line 70, in coro
    await self.app(scope, receive_or_disconnect, send_no_error)
  File "/opt/.venv/lib/python3.11/site-packages/starlette/middleware/base.py", line 108, in __call__
    response = await self.dispatch_func(request, call_next)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/.venv/lib/python3.11/site-packages/starlette_prometheus/middleware.py", line 57, in dispatch
    raise e from None
  File "/opt/.venv/lib/python3.11/site-packages/starlette_prometheus/middleware.py", line 53, in dispatch
    response = await call_next(request)
               ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/.venv/lib/python3.11/site-packages/starlette/middleware/base.py", line 84, in call_next
    raise app_exc
  File "/opt/.venv/lib/python3.11/site-packages/starlette/middleware/base.py", line 70, in coro
    await self.app(scope, receive_or_disconnect, send_no_error)
  File "/opt/.venv/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 79, in __call__
    raise exc
  File "/opt/.venv/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 68, in __call__
    await self.app(scope, receive, sender)
  File "/opt/.venv/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 20, in __call__
    raise e
  File "/opt/.venv/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 17, in __call__
    await self.app(scope, receive, send)
  File "/opt/.venv/lib/python3.11/site-packages/starlette/routing.py", line 718, in __call__
    await route.handle(scope, receive, send)
  File "/opt/.venv/lib/python3.11/site-packages/starlette/routing.py", line 276, in handle
    await self.app(scope, receive, send)
  File "/opt/.venv/lib/python3.11/site-packages/starlette/routing.py", line 66, in app
    response = await func(request)
               ^^^^^^^^^^^^^^^^^^^
  File "/opt/.venv/lib/python3.11/site-packages/fastapi/routing.py", line 273, in app
    raw_response = await run_endpoint_function(
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/.venv/lib/python3.11/site-packages/fastapi/routing.py", line 190, in run_endpoint_function
    return await dependant.call(**values)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/backend/capellacollab/core/authentication/provider/oauth/routes.py", line 33, in api_get_token
    access_token = token["id_token"]
                   ~~~~~^^^^^^^^^^^^
KeyError: 'id_token'

Might be related to https://github.com/DSD-DBS/capella-collab-manager/pull/1030

Resolved by #1079


Implemented TFLogSinks

added a no_default_logger config setting
changed TFLogEntry::log_severity() to TFLogEntry::Severity()
changed TFLogEntry::ToString() to TFLogEntry::Message()
added TFLogEntry::FName() and TFLogEntry::Line()
added TFDefaultLogSink
TFAddLogSink and TFRemoveLogSink now work
Issue #37390

@googlebot I signed it!

Rohan, adding you because it looks like you expressed interest in reviewing in the attached issue. But please comment if that's changed.
Rohan is currently out, so I wouldn't expect an immediate response.

@rohan100jain  Any update on this PR? Please. Thanks!

@rohan100jain  Any update on this PR? Please. Thanks!

@rohan100jain Any update on this PR? Please. Thanks!

Come on y'all. This has been pending since July. Any updates?

Look, I know this is not the most sophisticated logging scheme: this will work just the same for what it already did and allow users to actually redirect TF logging. It is not an asynchronous logging system, so adding multiple sinks will degrade performance. However, this implements the interface that existed in TF for years and lied about it being implemented the whole time.
If you have any questions about whether the code is valid, I'll certainly answer them, but I don't understand why this is taking so long to approve and so many people want to look at it before merging. At the end of the day, it doesn't change the existing behavior one bit, and it's a starting point for someone to make this a better logging system in the future if you ever decide to dedicate resources to this. This is one of many patches I already have to apply to our TensorFlow build, please make this one less.

I too am interested in seeing this make it into tensorflow. This has been needed for a while.

Alright, I see the CI now!
Sorry about the broken build: I was merging this from a patch to 1.15.4, must have made a mistake with that. Will fix today.

OK, fixed. Everything should build cleanly now.

@kkimdev, I addressed all of your PR comments. The ones I fixed, I marked with :+1: , the ones that I don't think should be changed, I marked with :-1: , and there's one on which I need more feedback after you read my reply, it's marked with :confused:

I'm not clear on why all the tests failed in that build. I'm not familiar with looking through Bazel build logs: the only thing I saw was a timeout, I didn't seen any build failures. I don't know if these verification builds isolate one PR or multiple ones, I also don't know whether test build failures just show up as test failures. Please advise.

@kkimdev, would you kick the builds again? It should be good to go now I think. Sorry, I simply don't have the setup to test everything locally.

@kkimdev, I fixed everything I saw in the test builds so far. I've never actually built the Android target, so hopefully it's all there now. The only resource I have to get feedback on those changes are your CI builds. I fixed everything I saw in the CI, but I'm working blindly there. Linux builds should hopefully be fine now after I corrected for that Buildifier check.

@kkimdev, I don't know if it's expensive to run those builds, but would you kick them again if possible? I think they should all pass or be very close with the latest changes...

I'm seeing build failures on MacOS and Windows, but they don't look like they have anything to do with this PR. Should I just ignore these? Should I merge master again?

I'm seeing build failures on MacOS and Windows, but they don't look like they have anything to do with this PR. Should I just ignore these? Should I merge master again?

Yeah please ignore those failures now.  I'm quite busy today but will try to take a look and comment later today.  Thanks for bearing with us!

I'm seeing build failures on MacOS and Windows, but they don't look like they have anything to do with this PR. Should I just ignore these? Should I merge master again?

Yeah please ignore those failures now. I'm quite busy today but will try to take a look and comment later today. Thanks for bearing with us!

No worries. I think we're about done. Once you look at my comments and make your decisions I think we can wrap it up pretty soon.

Please leave a comment when it's ready to be reviewed.  Thanks!

I think I've addressed everything now. Ready to be reviewed

@kkimdev
OK, this is hopefully my last checkin for this branch. I've merged master and cleaned up the test code a bit. Everything should be there now (unless I missed something).

One question, I'll be backporting this into the 1.15 branch, and probably the 2.3 branch. Do you want PRs on those (after this one's wrapped up)?

@kkimdev, sorry, I didn't notice your other comment, so I made two checkins instead of one. I think you'll need to re-kick the CI.

@kkimdev , lall your comments have been addressed. It should all be there now...

@gbaned I don't see the corresponding CL internally, is this because it didn't pass all the Kokoro tests?

Update: getting internal reviews now, we should be able to land after getting one more lgtm internally! :)

@avitebskiy I had to update quite a bit to be consistent with internal logger behavior and just removed linux tests that didn't work internally for some reason, but the functionality should be merged and available now.  In case if you have a follow-up changes, please keep it coming.  Thanks!


How to get the value of custom column on server side

I can get the values, on server side, of all the normal columns but the custom column values are not there.
How can I get those values of the custom column?
Even when I examin "Request.Form" all the normal columns are there but not the custom ones.

Hi rasikrodri,
I guess you are trying to post all your input fields to server. So, you are required to specified the name of input generated in your custom column.
For example, in the my Custom Type demo (Url: https://appendgrid.apphb.com/Demo/CustomType), you should add the name to the generated input type at line 19~21. Such as:
$('<input>', { type: 'text', id: ctrlId + '_Hour', name: ctrlId + '_Hour' }).appendTo(ctrl);

I will update the demo coding to specify the name soon, thanks!

Thank you for your prompt aswer. This is an amazing plugin!
In my custom column I am placing more than one control, for example: a read only textbox that works as a lable, a checkbox and a dropdow. I need to get the values for all the those controls.  That is basicaly what I have to do.
I create custom columns with all the controls needed and then in some rows I set some of those controls to 'display = none' so that they are not visible according to what the row is all about.

Yeah! That is the main purpose of Custom Type. You can customize the the columns to fit your needs!
appendGrid will be updated from time to time. Feel to come back later and take a look on the new features. Thanks for using appendGrid!
By the way, the demo code is updated that will include the name attribute in generated input type.

Thank You very much. This is working like a charm.


NF

Pre-submission checklist:
Please check each of these after submitting your pull request:

[ ] Are you only including a repo_url if your project is 100% open source? If so, you need to pick the single best GitHub repository for your project, not a GitHub organization.
[ ] Is your project closed source or, if it is open source, does your project have at least 250 GitHub stars?
[ ] Have you picked the single best (existing) category for your project?
[ ] Does it follow the other guidelines from the new entries section?
[ ] Have you included a URL for your SVG or added it to hosted_logos and referenced it there?
[ ] Does your logo clearly state the name of the project/product and follow the other logo guidelines?
[ ] Does your project/product name match the text on the logo?
[ ] Have you verified that the Crunchbase data for your organization is correct (including headquarters and LinkedIn)?
[ ] ~5 minutes after opening the pull request, the CNCF-Bot will post the URL for your staging server. Have you confirmed that it looks good to you and then added a comment to the PR saying "LGTM"?

Deploy preview for landscape failed.
Built with commit 7bd9a12644710cd54d7d63171074ccf2ded84a02
https://app.netlify.com/sites/landscape/deploys/5c8a96578839f1000a20569b

Thanks for this submission but my read of https://netfoundry.io/cloud/#solution suggests that you're not a good fit for the networking section of the landscape. You'll note that we don't have any other VPN, SD-WAN, or similar services listed there.
I would encouage you instead to engage with https://www.lfnetworking.org/ which is in the process of creating their own landscape.

Hi,
Thank you for the quick response. The use cases for Aviatrix (
https://www.aviatrix.com/solutions/) are very similar and they are included
in the CNCF landscape.
Best,
Duane
[image: Photograph]
Duane DeCapite
Head of Product Management
Email<EMAIL_ADDRESS><EMAIL_ADDRESS>Phone: 1-919-280-3131 <1-704-704-7044>
[image: Twitter icon] https://twitter.com/netfoundry  [image:
LinkedIn icon] https://www.linkedin.com/company-beta/17955047/
[image: Facebook icon]
https://www.youtube.com/channel/UCGN6PFj1rZu50yme9YsICmg NetFoundry
|  www.netfoundry.io
On Thu, Mar 14, 2019 at 2:25 PM Dan Kohn<EMAIL_ADDRESS>wrote:

Thanks for this submission but my read of
https://netfoundry.io/cloud/#solution suggests that you're not a good fit
for the networking section of the landscape. You'll note that we don't have
any other VPN, SD-WAN, or similar services listed there.
I would encouage you instead to engage with https://www.lfnetworking.org/
which is in the process of creating their own landscape.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/cncf/landscape/pull/1151#issuecomment-473000656, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AuR8vYrA3ItLu83f9gBT24bxXUXHyjcxks5vWpP-gaJpZM4b034d
.


When doing obs as goblin some gunners can be selected.

I assume this is Gunners spawned from like Shredders/tanks etc.

Let's just scrap this I think, it's inconsequential and quite difficult to fix.


fix pickling ServerDataStream and make it lazy

Two changes:

pickling an unpickled stream used to fail
I would really like ServerDataStream to postpone establishing the connection until it's really necessary for flexibility reasons. Also, it was kind of asymmetric so far that in during the construction it connects immediately but it doesn't so when unpickled.

I don't see where you call connect(). Should it lazily connect when you access context?

get_data() calls connect()
On Wed, 19 Apr 2017 at 11:48 dmitriy-serdyuk<EMAIL_ADDRESS>wrote:

I don't see where you call connect(). Should it lazily connect when you
access context?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/mila-udem/fuel/pull/386#issuecomment-295318299, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAn8Yq3-SCd19Ay-pWmhKSPTLq8kf1oaks5rxizigaJpZM4NBraC
.

Ok, LGTM then.


Add a flag to SkillEventsRequest to indicate if the skill being reported is a "retry" attempt

retry support is being added to NationalSecurityAgency/skills-client#112 - add a flag that will indicate when the request is issued from the skills-client retry support.

https://github.com/NationalSecurityAgency/skills-service/commit/32e3f743f628b608a8585a43c8a7995901dabf54

PR: #579


BTooltip directive not updating content when title changes

Describe the bug
Given the following BTooltip directive usage:
<div v-b-tooltip :title="msg">Hover over me</div>

If I change the value of msg after the tooltip is initially rendered, the tooltip still contains the old value.
This is a regression introduced in v0.24.13 by #2170. That PR made changes to the updated lifecycle method to not update the tooltip's content if it's unchanged. That logic is only checking the binding however and not the title attribute/result of the resolveContent call.
Reproduction
https://stackblitz.com/edit/github-d5nonv?file=src%2Fcomponents%2FComp.vue
Used Package Manager
npm
Validations

[X] Have tested with the latest version. This is still alpha version and sometime things change rapidly.
[X] Follow our Code of Conduct
[X] Read the Contributing Guide.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A, please open a GitHub Discussion instead.
[X] The provided reproduction is a minimal reproducible of the bug.

Is this really a problem? I'd rather remove the option to use title="foo" than getting into trying to get this to work. We'd need to add a mutation observer to the element to watch the change, or find some hacky way to get to the vue prop.
Remember, even vue docs recomend against using directives. They are only ment to manipulate the dom, everything else is quite complex. They don't work great on custom componenents and fail completely on multiroot components.
I'd just note in the docs that this isn't reactive, use the other 9 different ways to do Popover/Tooltip that are reactive.
@VividLemon thoughts?

Id rather just have the composable built out and remove the directive. Seems to be more harm than good.

I feel like people like the simplicity off directives, but are not aware of the limitations. I'll try to find time to do the documentation for them.

Thanks for your replies! Adding a note to the docs at a minimum would be good so others are aware of this new limitation, otherwise you might get more bug reports in the future.

A mutation observe is also probably fine if directives want to be preserved


Quest v0.2/ G6PD: Edit Patient Details

Is your feature request related to a problem? Please describe.
NO
Describe the solution you'd like
Add the ability to edit the user details from the profile page
Describe alternatives you've considered
N/A
Additional context
Add the relevant structure map, retrieve the patient details, validate and save details. Patient Resource version number to be incremented upon save. i.e. meta.versionId
"meta": {
    "versionId": "1",
    "lastUpdated": "2021-10-19T18:12:19.994+00:00"
  },

@pld The task here is to add the editing functionality of the patient resource and not the previously filled in survey via a QuestionnaireResponse. The patient is also saved before responding to a survey

I understand that, the process is the same for patients as for surveys, you complete a Questionnaire and could implement this through edit in a Questionnaire based on a QuestionnaireResponse, so that both of these issues are using the same piece of code


The number of downloads in the app page is still the same about 2 days

When I click on an app info page (like Loupe, but also any other application), it keeps showing the same number of downloads, for about 2 or 3 days now. Previously, the number of downloads was updated every day. So why isn't it working now?

Seems like https://flathub.org/stats is broken, I would think a web server change?


feature: warn for type alias without docstring

Is your feature request related to a problem? Please describe.
Where used, type aliases without docstring are rendered with no link to their definition.
Describe the solution you'd like
Issue a warning when a symbol refers to a type alias with no docstring such that is can be identified.

Can you elaborate with examples/snippets/screenshots? I'm not sure to fully understand.

I believe it's linters territory: warning users that a public object does not have a docstring. But since mkdocstrings works with docstrings, maybe we could consider adding such a check. This will have to wait for Griffe to have proper warning configuration options :slightly_smiling_face:


[Bug]: Multidatabase configuration does not recognize the endpoint

What happened?
With the configuration for the multidatabase support, the endpoint from the auxiliary configuration file is not recognized and the exception is thrown (method GetEntityNameAndPrimaryKeyRouteFromRoute of the Rest service line https://github.com/Azure/data-api-builder/blob/3176820ac95fe973ad51bca5cdc1599c7b4dc088/src/Core/Services/RestService.cs#L459).
There is an invalid assumption that we have to consider only the default data source to recognize the paths and assigned entities.
There are 2 places that naively implement this approach: RestService.GetEntityNameAndPrimaryKeyRouteFromRoute and SqlQueryEngine.ExecuteAsync (https://github.com/Azure/data-api-builder/blob/3176820ac95fe973ad51bca5cdc1599c7b4dc088/src/Core/Resolvers/SqlQueryEngine.cs#L138). The assumption is that via GetDefaultDataSourceName() we find the ISqlMetadataProvider.
The case I am reffering to, is that we have 2 configs: first one (global) is not exposing the endpoints, however the second one has one or more endpoints. When trying to hit it from the rest request, then always the enpoint is assumed to be tied to the global configuration file which is not true.
Proposed solution: to find the ISqlMetadataProvider by the enity/endpoint name instead of the default data source name.
Version
0.8.52 3176820 for #1790
What database are you using?
Azure SQL
What hosting model are you using?
Static Web Apps (SWA)
Which API approach are you accessing DAB through?
REST
Relevant log output
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

Hi @kliszaq, thank you for your suggestions!
While merged into main for evaluation, multiple database support is not yet a feature in any released version of DAB (0.9.5-rc, 0.8.52/SWA) nor are multiple database sources supported on REST. Since REST only supports one data source, all entities are expected to be present in the provided runtime config file.
Let's continue the discussion in:

The multiple data source RFC #1638 to further discuss an empty entities property in the root config file.
The parent issue tracking REST support for multiple data sources: #1753 , to for ensuring RestService does not make the assumption of a default data source when multi data source support is designed/implemented.

Closing this issue so that we can consolidate into the two issues mentioned above.

Closing as "duplicate"


How to get started?

Hi I have downloaded the code and then what? How do I run? and modify existing code? I am pretty new to client side development in nodejs so can anyone help me out?

Hello, welcome to frondend development. This library works with react a popular frontend framework. I recommend you begin with a simple react app. There are many getting started tutorials available, search for create-react-app as a quick way to get started on a react app.
Once you have a react app up and you know how to add your own components to it, start using react-stockcharts. This is my recommendation, but different people learn in different ways, so YMMV.
Good luck with your journey.

Yes I have created react apps..but I am struggling to start react-stockcharts.After I download how do I see one example?

the plunker examples should give you an idea, also almost all the examples under https://github.com/rrag/react-stockcharts/tree/master/docs/lib/charts could be directly used to get started.


Allow labs with network device nodes multiple cluster nodes

Today we're using affinity to keep the network device pod in the same lab on the same host due to some multus and Linux networking issues.
For scale, we'd like to allow Kubernetes to put pods of the same lab on to different kubelets/nodes. It will also just eliminate the complexity of using affinity rules.
This may be a tough issue to solve with multus that may require trying other CNIs.

Most CNIs puke with Multus. Bottom line is, if we want to do this, we need a networking plugin that won't break when multiple interfaces are used. That's the main reason we're using affinity rules - so we can just use the bridge CNI


ConfigOptions does not have a declared listenAddress or upstreamProxy property in your index.d.ts typings file.

This has been fixed by https://github.com/DefinitelyTyped/DefinitelyTyped/pull/42567.


IPSO  - The message " Romania, TOATE JUDEȚELE ȚĂRII, Piatra Neamț, Bacău, Roman, Iași, Divizia Moldova, Târgu Mureș, is not a city in Romania" is displayed instead of the job locations

ENVIRONMENT: production
URL: https://scrapers.peviitor.ro/
Browser: Chrome
Device: Laptop
OS: Windows 10
STEPS TO REPRODUCE:
1.Open the URL in the browser
2.Search for "IPSO" Company
3.Open "Run Scrapers" button
4.Check the job locations.
EXPECTED RESULTS:
Job locations should be the same on Scrapers-UI as on the company website.
ACTUAL RESULTS:
The message " Romania, TOATE JUDEȚELE ȚĂRII, Piatra Neamț, Bacău, Roman,
Iași, Divizia Moldova, Târgu Mureș, is not a city in Romania" is displayed instead of the job locations
ATTACHMENTS:

Fixed can you retest? Please ignore where it's mentioned "all is not a city in Romania" as this will work in the future update!

retested, all good


Character note animations do not play.

Describe your bug here.
The character note animations are not playing even though they ARE in the game AND in the .json file, it seems the game is having a hard time loading these for no reason, and causes the character to teleport to the spot, even though the idle animation works.

and here is the JSON file.

please help, on 0.4.2 it used to just crash but now its loading in, something with the code is preventing this from working.
Command Prompt/Terminal logs (if existing)
No response
Are you modding a build from source or with Lua?
Source
What is your build target?
Windows
Did you edit anything in this build? If so, mention or summarize your changes.
No.

singDIRECTION. not direction.

its singUP, singDOWN, singLEFT, singRIGHT


Home/End keys fail with error when reading terminal

Problem
Elvish prints errors whenever the "Home" and "End" keys are pressed. The respective errors are:
error when reading terminal: bad CSI: "\x1b[7~"
error when reading terminal: bad CSI: "\x1b[8~"

Also, I'm not sure if this is related, but when pressing "Ctrl+LeftArrow" and "Ctrl+RightArrow" I'm getting these errors respectively:
error when reading terminal: bad G3: "\x1bOd"
error when reading terminal: bad G3: "\x1bOc"

Steps to reproduce

Start elvish.
Press any of the keys previously mentioned, e.g. "Home".

System information

OS: Artix Linux
Terminal: rxvt-unicode 9.22-5

~> cat ~/.elvish/rc.elv
use readline-binding

~> go version
go version go1.9.3 linux/amd64

I will study the escape sequences of urxvt once I can get hand on it.

Most urxvt keys are now supported. \o/


Added GraphQL Client Example and updated read me

Added an example for the GraphQL package, a simple Dart CLI application, using the GitHub public API, just like the flutter example. I also updated read me for the GraphQL package.

@micimize excellent. Just resolved a merge conflict with the GraphQL package read me.

Codecov Report

Merging #261 into beta will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             beta     #261   +/-   ##
=======================================
  Coverage   39.75%   39.75%
=======================================
  Files          26       26
  Lines         986      986
=======================================
  Hits          392      392
  Misses        594      594

Continue to review full report at Codecov.

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

:tada: This PR is included in version 1.0.1-beta.5 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Add quantile metric.

At the moment, the metric doesn't return the quantile value as part of its name like<EMAIL_ADDRESS>(metrics like NDCG would display ndcg@3). It's just quantile. Eventually, we need a better interface for metrics to support non-trivial distance measures. This PR only handles the basic implementation of mean pinball loss.

Add quantile loss as metric, currently simply named quantile. We can call it something more "formal" like mean_pinball_error if it's deemed better.
Add quantile parameter, which requires parsing vector of floats. We have similar structures for tree param with mono and interaction constraints, but for integer instead.

Extracted from https://github.com/dmlc/xgboost/pull/8750 .

Added a fix to parameter validation.


ORC-1578: Fix SparkBenchmark on sales data according to SPARK-40918

This is a clone of

#1734

This is resolved via 97867e7da


AB#26732 Fix: Throw 401 if token is expired and refacture guards

This is outdated and works fine in the SSO branch.


machine: add available 3rd party drivers list

This PR brings back the deleted list of 3rd party drivers. I believe this was missed when moving the docs as this list is referenced by other parts of the documentation.

Oof.  Yeah, this needs to be updated...

Sorry about the delay on this one. Pushed changes requested by @mstanleyjones

Deploy preview failed.
Built with commit 20ee3cf3922753efac5072daee186988ac712d7d
https://app.netlify.com/sites/docker-docs/deploys/582b16e271e20a75653be073

Rebased and force-pushed into your branch to trigger a rebuild. Please don't push changes directly into your master since it freaks me out to force-push into someone else's master.... :)


update uplc Data parsing

plutus now has an official thing for this
https://github.com/input-output-hk/plutus/pull/5391

cc @Quantumplation do you remember what's missing here that you didn't do?

Integer parsing, cause it's a pain

Right ok,thanks :)

Most parsing seems fine, but the following programs have unintended output since they exceed the i64 boundaries
(program 1.0.0 (con data (I -18446744073709551618)))
(program 1.0.0 (con data (I<PHONE_NUMBER>3709551618)))

A fix is underway...


Add initial box viewing and creation.

Still needs ability to set name and description for new box.
Fixes #15 and #21
Also, still need to do some tests for the BoxController.

We may want to scale these by screen size.
Also, do we want to allow boxes to have duplicate names? As far as UI is concerned I think it might be less confusing if the names have to be unique.
Final thing -- we should probably make sure the + button is always at the front if we stick with this box layout, because otherwise it gets covered if there are too many boxes.

Yeah, I've not looked into the framework too much as to how to do that
I think we do want to do that, because otherwise it gets complicated in terms of implementing that, especially as people are unlikely to actually try and do multiple with the same name, let's just not bother restricting that (because it would need to be unique on a per-user basis, not just overall)
Yeah, good plan.

I think allowing duplicate box names will make the interface more complicated, and it'll be very hard to require unique names later on if people already have duplicates. For example, we might want to have a user-facing function like "move all of the uploaded pokemon into a specified box". People will want to select one of their box names to specify a box, but that won't work well if the box names can be duplicates. It will become even harder if we eventually want to allow boxes within other boxes.

I disagree. As a user, I would be annoyed if I had to make box names
unique. Selecting a box for moving things to is easy with non unique names.
That's not a problem, just show them all in a list in the same order. I
don't see what the problem is there.
I see no reason to limit it, and it would be annoying to limit.
On Sun, 14 Feb 2016, 20:24 not-an-aardvark<EMAIL_ADDRESS>wrote:

I think allowing duplicate box names will make the interface more
complicated, and it'll be very hard to require unique names later on if
people already have duplicates. For example, we might want to have a
user-facing function like "move all of the uploaded pokemon into a
specified box". People will want to select one of their box names to
specify a box, but that won't work well if the box names can be duplicates.
It will become even harder if we eventually want to allow boxes within
other boxes.
—
Reply to this email directly or view it on GitHub
https://github.com/porygonco/porybox/pull/50#issuecomment-183969281.


Create list of functions in R and SAS

Go through the R library and list the functions available.  Go through the SAS library and list the functions available.  Create a spreadsheet comparing the two.  Assign an order of importance to each function in R, not yet available in SAS.

function_list.xlsx

Edited one.
Function List.xlsx


the example does not support rotating certificates

ISSUE TYPE

Bug Report

ROLE VERSION
1.3.0

CONFIGURATION
see the example.
OS / ENVIRONMENT
FreeBSD
SUMMARY
The example for the API server does not support rotating key. When the certificate expires, you need to update the certificate.
STEPS TO REPRODUCE
n/a
EXPECTED RESULTS
there should a way to update the certificate.
ACTUAL RESULTS
there is not.

actually, this is a bug in trombik.x509_certificate.

see https://github.com/trombik/ansible-role-x509_certificate/issues/25


Add a more prominent link to the docs.

Here...

Good idea! I should move that site to gh-pages while I'm at it, right now it's hosted somewhere else...

:+1:


Make mouse wheel bind actions know amount of scroll

Required for a solution of ppy/osu#2881.
Mouse wheel actions are actions which is bind to mouse wheel. The amount of scroll and whether it is a precise scrolling is informed. In this way we can bind opposite direction of wheel easily for example.
When this type of action is fired then it first searches for IMouseWheelBindingHandler and then searchs for usual IKeyBindingHandler.
Also, I made KeyCombination.FromInputState to receive scroll delta if any and essentially rewrote #1648 with a simpler solution.

Is the eventual plan to move amount, isPrecise to its own class/struct? i think this needs to be done at some point.


remove previous code and gfn files

and stores thescripts from main-new-al in a separate directory called main-new-al

Oh yeah cool, I'll restore those files.


Update to Windsor 3.x

Looks like it's time to update to the latest Windsor.  Might also be worth investigating if Nancy's built in web-request lifestyle can be supported with containers without a memory leak now.  I'll have to look into the Windsor release notes.
Also worth checking to see if the "transient" lifestyle isn't leaking as well.  I recall there are some rules around releasing transient components properly.

I am currently in need of a bootstrapper with support for Windsor 3.x. I hope I am not being too forward, but I would like to know if it is a work in progress, or is it some where in the todo pile? Or really should I look for a way around or write one myself?

You are welcome to fork and submit a pull request. Chances are if you
just update the dependencies (it uses nuget) everything will probably
work. I want to do a bit of extra work around per-request containers
but that isn't important.
As for my time availability I'll be on Vacation starting tomorrow, so
I'll probably have a bit of time to do the update if you don't end up
doing it.


Improve hackatom test contract code

Reduce uploadCustomContract/uploadContract to just one function to make visible in the test which contract we is uploaded
Add meta data to getHackatom() to avoid spreading it all over the place

only changes test code if i understand

Exactly. I didn't like searching too long to know which contract was uploaded in a given test


Project Selector (OmniSharp: Select Project) missing .sln files

Issue Description
Not all of the .sln files in the workspace directory are available for selection in the project selector. The proper .sln cannot be selected resulting in "no definition found" messages when attempting to go to definition.
Steps to Reproduce
Open a directory with VSCode that contains 236 .sln files in various nested directories > Navigate to a file 6 folders deep (methods definition results in no definition found) > click the project selector in the status bar > "select 1 of 104" projects is displayed > the .sln (one folder level up from the file) does not display in the list of options.
Note that opening the 4th nested directory with VSCode allows the correct .sln to display in the dropdown, be selected, and properly go to definition.
Expected Behavior
All .sln files are available for selection in the project selector.
Actual Behavior
.sln files are missing from the project selector.
Environment information
VSCode version: 1.36.1
C# Extension: 1.20.0
Dotnet Information
.NET Core SDK (reflecting any global.json):
 Version:   2.2.301
 Commit:    70d6be0814
Runtime Environment:
OS Name:     Windows
OS Version:  10.0.14393
OS Platform: Windows
RID:         win10-x64
Base Path:   C:\Program Files\dotnet\sdk\2.2.301\
Host (useful for support):
Version: 2.2.6
Commit:  7dac9b1b51
.NET Core SDKs installed:
1.0.4 [C:\Program Files\dotnet\sdk]
2.1.101 [C:\Program Files\dotnet\sdk]
2.1.201 [C:\Program Files\dotnet\sdk]
2.1.202 [C:\Program Files\dotnet\sdk]
2.1.302 [C:\Program Files\dotnet\sdk]
2.1.505 [C:\Program Files\dotnet\sdk]
2.1.602 [C:\Program Files\dotnet\sdk]
2.2.301 [C:\Program Files\dotnet\sdk]
.NET Core runtimes installed:
Microsoft.AspNetCore.All 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.1.9 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.2.6 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.App 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.1.9 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.2.6 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.NETCore.App 1.0.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 1.1.2 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.0.6 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.0.7 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.0.9 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.9 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.2.6 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
To install additional .NET Core runtimes or SDKs:
https://aka.ms/dotnet-download

Visual Studio Code Extensions

Extension
Author
Version

csharp
ms-vscode
1.20.0

@Rubiss It sounds like our project selection UI doesn't really scale to this level. I can't imagine that trying to select between ~100 items in that dialog is pleasant. Do you think the option "omnisharp.defaultLaunchSolution": null, would work better for you?

@rchande Unfortunately setting omnisharp.defaultLaunchSolution to the solution not showing in the projects dialog still does not allow it to load as the default. The dialog isn't that bad if you know what you are looking for :) Anyways, I can understand how it might not scale for this many solutions in nested directories. Thanks for looking into it.

@rchande Please find the attached directory structure image to a .sln that doesn't show.

I have removed file and folder names for safety

I recently ran into a similar issue with just two projects. The issue lies in findLaunchTargets
It finds all the cs files in your workspace, but will place a limit of options.maxProjectResults on the number of files it can handle. It will then parse out a list of projects from these files. Unfortunately if the first project in your workspace has more than 250 cs files in it then it will simply ignore the next workspace folder and you will not be able to select it as the OmniSharp target project.
A workaround I was able to use was to set "omnisharp.maxProjectResults" to a large number, and it started allowing me to select both of my projects again.

Thank you @modavi. I have confirmed that increasing the value of "omnisharp.maxProjectResults" resolves the issue for me as well. I agree with your observations, that configuration seems misused as a limiter for cs file results. The usage does not align with the description of the configuration.

The maximum number of projects to be shown in the 'Select Project' dropdown (maximum 250).

Thanks for the workaround! This issue also impacts our large codebase - the majority of our sln files can't be opened by default as they're not found due this issue.

I also met this, but unluckily my setting was already at 250. I also noticed some inconsistencies with really large folders with a lot of solutions, when sometimes you get a lot of results and other times just a handful.
As a workaround, would it be possible to implement a command to open a solution opened in the editor?
The workflow would look like this:

Using the tree navigate to the sln file
open the sln file as if you want to edit, opening it in a new tab (eventually preview)
Ctrl + Shift + P > "Open current sln file as project" or something similar.

This would bypass the issue with searching for files and give more flexibility.

I just hit something like this.  I was able to set Omnisharp to a specific .csproj but the overall .sln was not in the Omnisharp: Select Project list.  This was preventing autocomplete in a Tests.csproj from seeing my application code.
My issue was that in my settings.json I had files.exclude set to exclude **/*.sln.  Omnisharp: Select Project appears to respect this setting.  User error I suppose, I assumed I was just cleaning up my file explorer by excluding these files.

Thank you @modavi. I have confirmed that increasing the value of "omnisharp.maxProjectResults" resolves the issue for me as well. I agree with your observations, that configuration seems misused as a limiter for cs file results. The usage does not align with the description of the configuration.

The maximum number of projects to be shown in the 'Select Project' dropdown (maximum 250).

Closing as the issue is resolved.


Cant work with Workload Identity

To use GCS as our storage and push our reports to there, I need to provide JSON for target.gcs.credentials, however this is not the way Workload Identity works actually. In pkg-helper-gcp.go file,
`// NewGCSClient creates a new GCS.client to send Results to GCS Bucket
func NewGCSClient(ctx context.Context, credentials, bucket string) GCPClient {
cred, err := google.CredentialsFromJSON(ctx, []byte(credentials), storage.ScopeReadWrite)
if err != nil {
zap.L().Error("error while creating GCS credentials", zap.Error(err))
return nil
}
client, err := storage.NewClient(ctx, option.WithCredentials(cred))
if err != nil {
	zap.L().Error("error while creating GCS client", zap.Error(err))
	return nil
}

return &gcsClient{
	bucket,
	client,
}

}`
Above function forces users to provide JSON credentials, otherwise logs are error	GoogleCloudStorage.Credentials has not been declared

I’ll take a look on it

I’ll take a look on it

In addition, I tried passingtarget.gcp.credentials: "" and target.gcp.secretRef: "secretName"
but still, have the same log output.

I merged a fix for it, I try to release it at the end of the week. Do you want a test build you can try?

So how can I access the test build?

I created a tag [2.19.0-RC1](https://github.com/kyverno/policy-reporter/tree/v2.19.0-RC1) which you can test. Just overwrite the image.tag value with this one.

Tested it, still having the same error.
              gcs:                 enabled: true                 # GCS (Google Cloud Storage) Service Accout Credentials                 credentials: "{}"                 # receive the credentials from an existing secret instead                 secretRef: ""                 # Mounted secret path by Secrets Controller, secret should be in json format                 mountedSecret: ""                 # GCS Bucket                 bucket: "trivy-docs"                 # minimum priority "" < info < warning < critical < error                 minimumPriority: ""                 # list of sources which should send to GCS                 sources: []                 # Skip already existing PolicyReportResults on startup                 skipExistingOnStartup: true                 # Added as additional properties to each gcs event                 customFields: {}                 # filter results send by namespaces, policies and priorities                 filter: {}                 # add additional s3 channels with different configurations and filters                 channels: []
is the configuration I use. The error log is same as in the first post in this issue.

In the pod logs, you see it as "1.7151700083750553e+09	error	GoogleCloudStorage.Credentials has not been declared"

okay, will fix it and prepare another build

You can test tag 2.19.0-RC2

It says "GoogleCloudStorage configured" now :) Thank you. But I wonder, since there is no information on docs, what is the time interval for that? I mean, it writes to GCP Buckets for every 5 mins, 1 hour or so...
Again, thanks for quick build and solution.

there is no interval, it writes each event for new results as soon as a new result happens


hotkeys: Fix drafts scrolling logic (and maybe extract it to be reused for streams)

The new drafts scrolling logic is pretty good, but isn't quite right -- if you have dozens of drafts and scroll down, the scroll position jumps twice each time that you get to the bottom of the feed; first, a small motion to show the rest of the bottom message, and then again to scroll half a screen down.
I think we might want to do more like 3/4 screen jumps, and not have that first jump happen at all.
We may be able to borrow some ideas/logic from the message view logic in navigate.js and message_viewport.js.

We will also need to fix this in streams settings.

Yeah, probably best to get this working right before copying/extracting it for that purpose, though :)

@zulipbot claim


Struggling with permissions and roles and users

I'm struggling with Dexie Cloud, although I've been using Dexie itself over a number of years.
I'm going to need user roles and access control based on that, and I can see some of that possibly in the API, although I'm not sure my use case will work with Dexie Cloud or not. There's a conceptual level of documentation for the Cloud stuff which I've either not found or not understood, so far.
I'm using Sveltekit.
Anyway, one thing I found in the reference function list is db.cloud.permissions which sounds like I will need at some point, and perhaps it will help me sleuth it out.
But what does this code below mean? I just have a database like an old style Dexie database but with the stuff from the documents applied to it to make it Cloud. What is databaseObject and how do I make one?
// When table is not mapped to a DexieCloudEntity subclass:
const o = db.cloud.permissions("friends", databaseObject);

I don't recall mapping anything to anything, but databaseObject is obviously going to need to be set. What is a "database object", why do I need it, what is the relationship between that and a collection "friends"? It says it returns the following:
export interface PermissionChecker {
  add(...tableNames: string[]): boolean;
  update(...props: string[]): boolean;
  delete(): boolean;
}

I'm not sure what sense that makes to me. "add" "update" and "delete" look understandable, so I guess it's a list of permissions. Why does it have table names in it (I'm passing the table/ collection name in, right?) What's the "thing" it's checking the permissions of, exactly? The current user, I suppose?
I wonder if, say, you just had followed the install instructions for Dexie Cloud, and were not using React.... what's a minimal code I'd need to read whatever these permissions are, and is there an example I've not found which does that?

Thanks for valid questions that I could assume more people would wonder...
I'll do my best to explain here as a draft for doc update. I suppose more samples would explain better also.
databaseObject
This is an object returned from the DB. For the typical friends database, this could be the result from:
const databaseObject = await db.friends.get(friendId)

or
const databaseObjects = await db.friends.where('age').above(25).toArray();

Permissions
Current user can have various permissions depending on the permissions configuration of the realm that the object belongs to (pointed out by it's realmId property) but also depending on whether the current user is the owner of the databaseObject or not.
Use db.cloud.permissions() to find out what permissions current user has. The return value is an observable, so in Svelte, you can to treat it as a readonly store:
<script>
  import { add } from "dexie";

  const friend = await db.friends.get(friendId);
  const can = db.cloud.permissions("friends", friend);
</script>

<div>
  {#if $can.update("age")}
    <button on:click={() => db.friends.update(friendId, {age: add(1)})}>Birthday</button>
  {/if}
  {#if $can.delete()}
    <button on:click={() => db.friends.delete(friendId)}>Delete friend</button>
  {/if}
  {#if $can.add("friends")}
    <button on:click={openAddFriendDialog}>Add more friends</button>
  {/if}
</div>

update permission
The permission to update a property on an object is determined by whether current user owns the object or not, and also if the object belongs to another realm than your own default private realmId, whether current user has enought permissions for that. This is determined by the permissions or roles properties of the member objects for that realmId.
delete permission
Same principle as for the update permission.
add permission
This permission is only tied to the realmId of the object. There is no way to add an existing object. This permission tells whether current user has permission to add new objects in the same realm as this object.
See https://dexie.org/cloud/docs/access-control

Please reply with additional questions! It's easy that I could have missed out some more details.

One side note! This code only helps the app avoid to breaking the access control rules. The app can try to break those rules and succeed locally, but the real permission checks are done server-side, so when the actions are synced, any transaction that broke the rules will be rolled backed.

Roles is an observable of an object (I've just updated these docs that used to suggest it to be an array), so a correct example should be:
let roles = db.cloud.roles

{#each Object.keys($roles) as roleId}
  <span>{$roles[roleId].displayName} </span>
{/each}

I have the /public and /my API things working, but of course they don't need auth beyond the user token.
I created some roles using the CLI with a json input file as per the example... and they appear very prettily in my UI.  I'll put that in git and I can probably re-run it to redefine the roles later.

now I need to figure out how to assign roles to users
Roles - an array of strings which are the names  in that JSON file above - are a property in the Members' table... but how to set it that property? Not through the client obviously, which would be insecure.
So it's got to be through the UI at https://manager.dexie.cloud/, or the CLI.

I looked at the help for npx dexie-cloud  and can't find anything which looks like a way to assign roles.
I can't see how to do that in https://manager.dexie.cloud/ either.

I want to assign at least a couple of different roles and then confirm (say) that one of them ("admin") can list other users etc, and that the other can't. Then I'll make the admin user list the other users, if I can...

Roles can be assigned by realm owners or members that have the permission to {manage: "members"} or specifically to {update: {members: ["roles"]}}. They have this permission client side and this is access checked server side on sync just like the other permissions.
You may also edit a member using the rest api. The admin gui for assigning roles must be managed using your own code - client side or server side.
Regarding logging, you could add log entry objects to a Dexie table (such as db.logs). If you skip specifying any realmId property on the object, each user will only sync their own log entries but they will also be accessible via REST API /all/logs for API clients with GLOBAL_READ scope in their JWT to download all logs. A query can specify things like ?date>20240620. There should be some strategy to clean up old log entries though - either on the client or a server side job the does it via REST.

Roles can be assigned by realm owners or members that have the permission to {manage: "members"} or specifically to {update: {members: ["roles"]}}. ...

You may also edit a member using the rest api. The admin gui for assigning roles must be managed using your own code -

But how?
I mean I know how to write code. I just know what code I need to write in this case to make this do what I know must be possible.
Looking at the REST API
I found the REST API page again via google, although it must be linked somewhere as I stumbled across it it a few days ago and wrote some tests of the bits which don't require privilege. I should have bookmarked the location at the time.
Looking at that, my user has scope ACCESS_DB and I reckon I'll need GLOBAL_READ and GLOBAL_WRITE to manipulate other users to (a) see them and (b) assign roles to them.
I played at hitting /token to request more access (test only, using the secret I won't have in any app) and that just 401s. Reading the next section of the documentation, which I didn't understand until I'd tried to code the thing and failed, it says:

You can only request a subset of the scopes that your client has.
So that was never going to work. Perhaps it may be better to include that higher up the doc. But then I'm not sure if the 401 means "You can only request a subset of the scopes that your client has." or that I've made some other error in the credentials I provided.

So that's not the answer to the puzzle. Joy.

The clientId and secret is stored in your dexie-cloud.key file. You can also generate additional clients/secrets using the CLI. The default client has full access. Using it you can request tokens with any scope on the /token endpoint.

I got through some of this, but I still can't find the key bit of documentation. I tend to end up using google etc to find stuff here. Perhaps separating out the basic Dexie stuff from the Cloud stuff would help me a bit?

I built a "proxy server" which is secure and in which I store the secrets I don't want in the client.
The client stuff works as per the docs with client tokens etc. When I want to use the Dexie Cloud API, for example to list or edit a user, I proxy that call through my secure server.

The secure server validates & verifies the bearer token for all accesses. Validation responses are cached in memory, and token expiration etc handled. This Sveltekit hooks.server.js stuff. You need CORS code there for the Authorization header pre-flights.
I white list my "super user" (me!) in code and allow me to access an /admin part of the secure server.
That part of the server gets (and caches...) a "super user token" with the minimal priviledges I need.
The server then makes a request to Dexie Cloud to /users or whatever, passing the super user token and using the format required by Dexie. The proxy's good for this as I can keep the client simple and consistent and deal with any Dexie specific things in one layer. Plus I can securely log (to a MongoDB) from this place.
The response is returned to the super user. The super user token stays on the server in a memory based cache.

[x] I have that listing /users. I don't love that paging style (how can I count users?)
[x] I can patch via /users (Dexie uses a POST for that) a user and edit the data field. Note that that field MUST be an object and can't be a string. If a request is for JSON and returns an error, the response is HTML. I parse it back to data.

The Problem:  I can't work out how to edit the user role!
I'll fiddle around with it, maybe I'll work it out, but if anyone knows how to edit a user role that'd be helpful
The "roles" aren't even listed in the user list, although I can (and do) list them via /public/roles
That's my final step, then this can be closed:

[ ] Assign one of the existing roles to a user.

Roles are set per member, not per user. Unlike users that are server-only - and handled outside the client-server replication, members are replicated and can be update client-side as long as the user has permissions to do so in your realm ({ update: { members: ["roles"] } }). Will you be using a single realm for your app? If so, you can manage roles in members only.
A single realm means that all users will share all data with each other but the permissions will decide what parts of the data that can be manipulated. This can be valid for certain applications. The flexibility with using multiple realms is that ic supports a multi-tenant model. The same user can have different roles within different realms.
If we would build a Slack replica, we would probably let each channel be represented by a realm - everyone in it would see everything but some of the members would have reaonly access. The channel creator could decide who to invite and give appropriate permissions to anyone invited. (S)he could also give permission to other members to manage the channel.

[x]  I have that listing /users. I don't love that paging style (how can I count users?)

Yep, the paging-style of the /users endpoint should be optional or there should at least be a count of total users in the initial result. I can agree.

[x]  I can patch via /users (Dexie uses a POST for that) a user and edit the data field. Note that that field MUST be an object and can't be a string. If a request is for JSON and returns an error, the response is HTML. I parse it back to data.

The  /users endpoint has a strict schema documented here, unlike the endpoint for replicated data where you can have any properties of the types that the application decides. There's only one metadata property where you can put anything you need in it - the data property. It needs to be an object but you may store anything you like in it as long as it is plain JSON (also unlike indexedDB replacated data that can contain exotic types like Date, Uint8Arrays etc.

Roles are set per member, not per user. Unlike users that are server-only - and handled outside the client-server replication, members are replicated and can be update client-side as long as the user has permissions to do so in your realm ({ update: { members: ["roles"] } }). Will you be using a single realm for your app? If so, you can manage roles in members only.

Thanks
I'm not sure I understand the difference between a "member" and a "user" yet.
I'll go away and fiddle with it to see if I can make it work. However as none of my clients can have any secrets [and still be secure], I'd be surprised if I can update roles at the client. I'd have expected to need the Super User Token, which I can generate only on a dev box or my proxy server. I'll try...
..but I need to get /public/roles editing working first, which I hope is similar to /users so I can reuse the code etc.
I don't understand the "realm" thing, but I expect if I need it, I will figure it out.  I expect one will suffice.

I got secure user editing going plus deactivate/ delete. I'm GDPR qualified, but I'll leave the full deletion as a manual process. Nice to have the feature though. I went the other way and stopped me accidentally deleting myself; I don't want admins doing that!

[x] How to re-activate a deactivated user?
To deactivate you set deactivated to an ISO date. But to get it back active... you set it to a boolean false

1 users
I have a single realm, rlm-public.  Users can create themselves, and my "super user" can list, edit and delete them using the Dexie Cloud API, through my proxy server which elevates my super user's privilege. I have a Sveltekit app which lets the user sign in and all that. If the user is the "super user", then they can:

list all the other users in the system
edit them
disable their accounts

So that's users part of the problem which I can see is workable: we can build something on that and it will work in a real system. Some example code from this at he bottom here. It's work in progress, we're not close to production with this yet!
2 roles
Not looking so good here. I'm going to need to be able to assign roles to those users, and also to edit or delete roles, especially the ones I uploaded from the initial template!

I managed to create some roles with the JSON upload. I can't edit them by re-uploading that though, but I can add more roles. Which I can't then get rid of!
I found the /public/roles API interface and I can list roles using that and the approach as per users above. The API paths seem inconsistent - roles are at /public/roles, users (who must use those roles...) are at /users.

2.1 delete a template role

I tried the simplest thing which is to delete one of the unused roles, say friend-maker.
I'm using the same code as for deleting a user - DRY and all - so it ought to work in principle, but it fails with the error:
'Given key is expected to be array according to schema ([realmId+name]) but was a string'

I'm not sure what that's asking for exactly. This must be possible (and the error doesn't contradict that).
I can't put an array in the url. The docs make it sound like realmId isn't needed for rlm-public, and my user is my super user of course.
I've tried every way I can think of, like but nothing works.:
'https://zlil*.dexie.cloud/public/roles/[rlm-public+friend-maker]'
'https://zlil*.dexie.cloud/public/roles/[rlm-publicfriend-maker]'
'https://zlil*.dexie.cloud/public/roles/rlm-publicfriend-maker'
The docs say:
/* DELETE method deletes any object in given table that matches the given primary key.
 * If primary key is compound, the JSON representation of the key shall be given.
 * Always encode <table> and <primaryKey> using URL encoding (encodeURIComponent() in JS).
 */

I tried various combinations of encodeURIComponent() but there's nothing here which would need escaping anyway. I'm pretty sure the URI MUST be a string, but the error message says it's after an array.  I could JSON.stringify() it...
A DELETE request can have a body, is that what I need? I don't think so - it's saying that it has a string (what string, from where?), and it doesn't like it.
Does anyone have an example of a successful role delete?

3  /user endpoint example code which works
I'll happily post examples of successful user CRUD stuff.

This can (and will!) be optimized once I have the whole thing down.
Note I strictly validate the email address so I know I can pull a [cached] SU token for it safely.
wretch is just fetch with some sugar. It works fine in this case for users.

// This one works with for example path=`/users/emailAddress`
// If you're patching a user then `data` is an array with a single entry which has to
// be an object with the changed fields in it.
export const post = async (path, editorsEmail, data) => {
	// Editing... Needs an SU access token, so.. get that 1st.
	const accessToken = await getSuToken(editorsEmail, cache)
	const r = await wretch(`https://${PUBLIC_DEXIE_DB}`)
	 	.headers({'Authorization': `Bearer ${accessToken}`})
		.url(path).post(data).json()
		.catch(error => {
			// It returns html if it doesn't work ... parse it out
			let msg = stripHTML(error.message)
			throw new Error(msg)
		})
}
// Get endpoint JSON for entity
export const get = async (path, email) => {
	const accessToken = await getSuToken(email, cache)
	const r = await wretch(`https://${PUBLIC_DEXIE_DB}`)
		.headers({'Authorization': `Bearer ${accessToken}`})
		.get(path)
		.json()
}
// Delete entity. Works for users, not roles though!
export const del = async (path, email) => {
	const accessToken = await getSuToken(email, cache)
	const r = await wretch(`https://${PUBLIC_DEXIE_DB}`)
		.headers({'Authorization': `Bearer ${accessToken}`})
		.delete(path)
		.catch(error => {
			console.log(error)
			let msg = stripHTML(error.message)
			throw new Error(msg)
		})
}

Roles table has compound keys [realmId+roleName]. The url part that represent the key should then be the json representation of the array [realmId, roleName] with urlEncoding on top.
Conceptually:
DELETE /all/roles/${encodeURIComponent(   JSON.stringify(     ["roles","friendMaker"]   ) )

Thanks!
That's a different path (from that in the docs which was /public/roles), but it doesn't error out, so some progress!
An example path is:
/all/roles/%5B%22roles%22%2C%22readonly%22%5D
That returns as JSON an empty array [], but I refresh my roles table (via /public/roles or /all/roles, both work the same) and it doesn't update... I think delete isn't working for me.

Sorry, the example was wrong - first argument in the array is the realmId not the table, my fault. I just updated my sample

@phil-w Are you considering on your use case that everything on rlm-public is completely.... well.... public?
That means a user just needs your particular db url to get access to all the data (read only of course but still, everything is available through API or a small Dexie Cloud local setup)
Asking because I..... neglected that and now I have to migrate all the data to a new realm hehe...
You can test by just doing a GET request to https://[YOUR_DB_ID].dexie.cloud/public/[ONE_OF_YOUR_COLLECTIONS]
You should see all the collection's data without an auth header set

Thanks for the doc fix, which allowed me to test first the fail case (always the right way!) and then fix & test the other path. That now works. I can now delete the roles I don't want from the UI. I don't need to create them because I can already do that via JSOn upload. Don't want to write UI I don't need (and have to secure!).

...  Are you considering on your use case that everything on rlm-public is completely.... well.... public?
That means a user just needs your particular db url to get access to all the data (read only of course but still, everything is available through API or a small Dexie Cloud local setup)
Asking because I..... neglected that and now I have to migrate all the data to a new realm hehe...
You can test by just doing a GET request to https://[YOUR_DB_ID].dexie.cloud/public/[ONE_OF_YOUR_COLLECTIONS]
You should see all the collection's data without an auth header set

No! I just haven't got that far yet! I figure if I can't create users and have roles then I can't use it anyway, but it looks like I shall probably get there with the users and roles - just one more step (assigning roles to users and removing them...) and then I can move on from that.
So I think that means that I will need multiple realms, because users are obviously going to need private data in my application. Assuming that's possible, I'll keep going (next task: work out how to assign a role to a user.
Please shout if that makes no sense, @as I'm wasting my time if it doesn't fit in here.

@phil-w Yeah you're good, just take into consideration that the roles are created for a specific realm, so you might need to eventually recreate whatever roles you are going to need linked to your main realm
You can absolutely work with just one realm if everything needs to be shared and protected behind an auth screen, just make a single realm and link everything (including roles) to it.
Think of realms as regular database, each realm has its own data, owner, roles, even tables and all realms but the public one need authentication [as any database should! right?]; Any user can be added (as a member) to a realm, that provides them with read access and you add roles (again, on the members collection) to allow write/delete and finally, every user has its own "db" [aka private realm] linked to its account if they are authenticated, so if you want them to have private data you can allow them to write to their personal realm and even share it with other users.
there are some use cases for using the public realm, like using it to hidrate backend configurable stuff on an offline app, but you are usually going to want a shared "private" realm for your data.
Users are backend only and realm independent so you are good on that.

@Wolfhergang, thanks! I'll re-read multiple times that when I get to that point!  Perhaps this should be a discussion?

I want my user's data to be shared between sign-ins of that user across multiple devices, and to be inherently backed up in the cloud, but it's going to be private to that user, not shared with others. So that's the user's private realm I guess. They are not going to be sharing it with other people, ever.

There will probably be some "global data" which I'll maybe put in IndexedDB - look up tables for example. That sounds like a shared private realm.

I can see no reason I'd ever want public  access to anything in there at all.

I now have role deletion; request authentication; and super user access via proxy server running. Had some problems with Android native, where the "origin" for the JWT is https://localhost, so my call to /token/validate needs to first decode the Jwt to get the actual origin out of it, then put that in the fetch for the validation of the token.

A possible improvement to [Wolfhergang](https://github.com/Wolfhergang) would be that if I don't specify origin, assume I don't care and validate it anyway.

If it helps anyone, I mean:
const claims = jose.decodeJwt(key)
let origin = claims.origin

const r = await fetch(`https://${PUBLIC_DEXIE_DB}/token/validate`, {
  method:'GET', headers:{ 'Content-Type': 'application/json', 'Authorization': bearer, 'Origin': origin }
})
if (r.status === 200) {
  token = await r.json()
  ...

... there is a new-ish Slack channel that might be used for this kind of discussions and quick questions, that depends on @dfahlander plans for it.

Yes, here's a link to the new slack channel for dexie-cloud. The link will expire in 14 days. You're welcome to connect. I'm still trying out how to use Slack for this purpose.


Blob is not enabled in remote project?

Hi,
I have a NuxtHub project running with AI, KV, and database smoothly on Cloudflare. But blob is not working. I get the following message when running locally:
Remote storage blob is enabled locally but it's not enabled in the remote project. Deploy a new version with blob enabled to use it remotely.
I have r2_buckets defined in wrangler.toml, and the following defined in nuxt.config.ts
  hub: {
    remote: true,
    database: true,
    kv: true,
    blob: true,
    cache: true,
    ai: true,
    vector: true,
  },

appreciate anyone's help on this.
Thanks!
Gary

Are you using a local wrangler.toml ?
Could you share the r2_buckets defined there?


Issues with refreshing API keys used for creating topics

We are refreshing our API keys.
We are facing the following issue.
The topic terraform state has reference to the old api key and secret. The terraform state file has multiple topics in it.
The old api key and secret is deleted already. So when I am trying create a new topic , I am getting error as 401 since terraform is trying to fetch the existing topics in the state file which has old api key and secret.
I expected the previous topics to be updated with the new API key and secret.
However, it fails because it is attempting to refresh the existing state, which contains the outdated API keys.
How can we update the existing state file with new keys ( without manual updation). We have many state files for the topics. It will be very tedious and error prone to manually update the api key and secrets.
Any help will be appreciated since its impacting our production topics as well.
Error message
Error: 401 Unauthorized: Unauthorized
with confluent_kafka_topic.topics["topic-1"],
on main.tf line 22, in resource "confluent_kafka_topic" "topics":
22: resource "confluent_kafka_topic" "topics" {

Thanks for creating the issue @rekaparathalwar!
See this doc:  and let me know whether it helps.


add output_folder option for generated files

This PR adds an optional output_folder to the config file to describe where you would like to place generated files.
It requires the folder already exist and include a trailing slash so that a fmt.Sprintf("%sfilename", g.outputFolder) is a valid path.

hi, thank you contributing. I have a question about the trailing slash in the config that you mentioned is required for formatting.
I think you could use filepath.Join to concatenate folder and file.  Then with and without slash it would work.


Windows support?

Do you have windows support or have any plans to add it?

Sorry no plans currently.

sad :(


Moves all free plan beta checks to use free plan soft launch beta

Needs https://github.com/Expensify/Web-Expensify/pull/32022
Fixed Issues
$ https://github.com/Expensify/Expensify/issues/178653
Tests

Does not apply to QA: force permissions.canUseFreePlan to return false and permissions.canUseFreePlanSoftLaunch to return true
On oldDot, on a new account on a new domain, go to Settings > Policies > Group and check you can see the free plan option, click it and you should be taken to newDot workflow page, close that modal
On oldDot delete the newly created policy
Refresh newDot
Check the big plus button has the option to create a new workspace and that it works

Tested On

[x] Web
[ ] Mobile Web
[ ] Desktop
[ ] iOS
[ ] Android

Confirmed on Web.

🚀 Cherry-picked to staging by @AndrewGable in version: 1.1.2-1 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅

@Expensify/applauseleads please QA this PR and check it off on the deploy checklist if it passes.

🚀 Deployed to production by @timszot in version: 1.1.2-7 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅

🚀 Deployed to staging by @iwiznia in version: 1.1.2-9 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by @timszot in version: 1.1.3-1 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


License of imagetoraster

In filter/imagetoraster.c there is ASL 2.0 Licence, but in COPYING file GPLv2.
What is correct?

This is messy and will get fixed with the cups-filters 2.x release. Then all will be under Apache 2.0 witl GPL exception, the same license as CUPS.


Issue with operating on multiple subqueries

I have the following query, where I have two different measures that I want to determine a percentage difference between.  The problem seems to be that in the top level select, I can only operate on one of the subquery returns.  My explanation is likely subpar, so an example:
SELECT (("oneday" - "current")/"oneday") as "difference"  FROM
(SELECT "StaleConnections"/"TotalConnections" as current FROM "missions" WHERE "measure"='loading' AND $timeFilter),
(SELECT "StaleConnections"/"TotalConnections" as oneday FROM "missions_lookback_1d" WHERE "measure"='loading' AND $timeFilter)
It returns nothing at all in Grafana, however, if I replace one of the aliases with an actual number like below, then it works.
(when I make the call straight to influx, I get back two sets of results, one for "missions" and one for "missions_lookback_1d", but not the calculated difference between the two that I want.)
SELECT ((.067-current)/.067) as "difference"
FROM (SELECT "StaleConnections"/"TotalConnections" as current FROM "missions" WHERE "measure"='loading' AND $timeFilter),
(SELECT "StaleConnections"/"TotalConnections" as oneday FROM "missions_lookback_1d" WHERE "measure"='loading' AND $timeFilter)
Then I'll get a value.
If, as in the second query example (that works) I use "current", which comes from mission, my result will be named "missions.difference".
If instead I flip it so that I'm not using "current", but instead use "oneday", which comes from missions_lookback_id, I'll get a result that will be named "missions_lookback_1d.difference"
I've used several different versions of Influx for this, although 1.5.2 is the most recent I've tried.
Is there another way to make this work?  Oh, and the examples above come from Grafana, which is why the queries have those timefilters.  I can give you the raw queries if needed.

Did a little more digging here and showing some data too:
If I query a single series for what I call the current data, I get this:
SELECT sum("StaleConnections")/sum("TotalConnections") AS "current" FROM "monitor"."autogen"."missions" WHERE "measure"='loading' AND time > now() - 1h GROUP BY time(5m) FILL(null)
name: missions

time
current

2018-06-21T13:50:00Z
0.07766990291262135

2018-06-21T13:55:00Z
0.07686084142394822

2018-06-21T14:00:00Z
0.08333333333333333

2018-06-21T14:05:00Z
0.08009708737864078

2018-06-21T14:10:00Z
0.07928802588996764

2018-06-21T14:15:00Z
0.07928802588996764

2018-06-21T14:20:00Z
0.0784789644012945

2018-06-21T14:25:00Z
0.07766990291262135

2018-06-21T14:30:00Z
0.07766990291262135

2018-06-21T14:35:00Z
0.07766990291262135

2018-06-21T14:40:00Z
0.07766990291262135

2018-06-21T14:45:00Z
0.07686084142394822

I can also select from the other series, the result of which I call "lookback":
SELECT sum("StaleConnections")/sum("TotalConnections") AS "lookback" FROM "monitor"."autogen"."missions_lookback_1d" WHERE "measure"='loading' AND time > now() - 1h GROUP BY time(5m) FILL(null)
name: missions_lookback_1d

time
lookback

2018-06-21T13:50:00Z
0.07253463732681337

2018-06-21T13:55:00Z
0.07253463732681337

2018-06-21T14:00:00Z
0.07905460472697637

2018-06-21T14:05:00Z
0.07579462102689487

2018-06-21T14:10:00Z
0.07579462102689487

2018-06-21T14:15:00Z
0.07579462102689487

2018-06-21T14:20:00Z
0.07579462102689487

2018-06-21T14:25:00Z
0.07497962510187449

2018-06-21T14:30:00Z
0.07416462917685411

2018-06-21T14:35:00Z
0.07334963325183375

2018-06-21T14:40:00Z
0.07253463732681337

2018-06-21T14:45:00Z
0.07253463732681337

When I make the full request to try and operate on the subselects (actually, just return them), it doesn't work.  I'm scoped to whatever the first subselect is:
SELECT sum(lookback) as "lb", sum(current) as "cur" FROM (SELECT sum("StaleConnections")/sum("TotalConnections") AS "lookback" FROM "monitor"."autogen"."missions_lookback_1d" WHERE "measure"='loading' AND time > now() - 1h GROUP BY time(5m) FILL(null)),(SELECT sum("StaleConnections")/sum("TotalConnections") AS "current" FROM "monitor"."autogen"."missions" WHERE "measure"='loading' AND time > now() - 1h GROUP BY time(5m) FILL(null)) WHERE time > now() - 1h GROUP BY time(5m) FILL(null)
name: missions_lookback_1d

time
lb
cur

2018-06-21T13:45:00Z
0.07253463732681337

2018-06-21T13:50:00Z
0.07253463732681337

2018-06-21T13:55:00Z
0.07253463732681337

2018-06-21T14:00:00Z
0.07905460472697637

2018-06-21T14:05:00Z
0.07579462102689487

2018-06-21T14:10:00Z
0.07579462102689487

2018-06-21T14:15:00Z
0.07579462102689487

2018-06-21T14:20:00Z
0.07579462102689487

2018-06-21T14:25:00Z
0.07497962510187449

2018-06-21T14:30:00Z
0.07416462917685411

2018-06-21T14:35:00Z
0.07334963325183375

2018-06-21T14:40:00Z
0.07253463732681337

Hi! I am having the same issue, did you came back with a solution? Is it maybe because the subqueries give you same time, and the influx just pick one of them ?

@ezeheinke I did not come up with a very elegant solution.  What I ended up doing to solve the problem was creating three more measurements.  So previously I had a measure called missions, now I have

missions
missions_lookback_1d
missions_lookback_7d
missions_lookback_30d

I get those simply by projecting the timestamp 1,7, and 30 days forward with the exact same data that I passed in for today (so, same data for 4 measures / series).  Then I have another process that pulls that data back out of Influx using the following queries that perform the percentage processing:
SELECT last("StaleConnections")/ last("TotalConnections") AS "connections" FROM "monitor"."autogen"."missions" WHERE time > now()- 5m  GROUP BY time(5m) FILL(null);
SELECT last("StaleConnections")/ last("TotalConnections") AS "connections_1d" FROM "monitor"."autogen"."missions_lookback_1d" WHERE time > now()- 1m  GROUP BY time(5m) FILL(null);
SELECT last("StaleConnections")/ last("TotalConnections") AS "connections_7d" FROM "monitor"."autogen"."missions_lookback_7d" WHERE time > now()- 1m  GROUP BY time(5m) FILL(null);
SELECT last("StaleConnections")/ last("TotalConnections") AS "connections_30d" FROM "monitor"."autogen"."missions_lookback_30d" WHERE time > now()- 1m  GROUP BY time(5m) FILL(null)
and then saves that back into Influx in a new measure called "staleness".
Not elegant at all, requires too much data storage and a second set of processing I wish I didn't have, but it works.

When I make the full request to try and operate on the subselects (actually, just return them), it doesn't work. I'm scoped to whatever the first subselect is

Unfortunately, I've bumped into the same problem. Trying to use values from the second or any other subquery does not work.

Same with me.
E.g. this query returns results for the first field (a) and nulls for the second field (b):
SELECT sum("a"), sum("b") FROM
(SELECT "count" AS "a" FROM "foo" WHERE $timeFilter),
(SELECT "count" AS "b" FROM "foo" WHERE ("prop" = 'value') AND $timeFilter)
GROUP BY time($bin) fill(none)

Interestingly enough, similar query works for a different measurement (table).

I also get the same result as @mnicky

Just a short note on the possible cause for this problem:
To me it sems that the result set of such a query contains multiple values arrays (in the same series), having identical time stamps in some rows, and theses values arrays are not merged properly. For example, in one query I got the following result from the DB, but the client (Chronograf) did only display the row(s) from the second values array:
Shall the issue be opened again?

Query (as entered in Chronograf) and result received by browser
select *
from (select count("GridMs.TotW") as "c"
      from "pvmon"."autogen"."modbus_bat"),
     (select sum("t") as "s"
      from (SELECT last("GridMs.TotW") AS "t"
            FROM "pvmon"."autogen"."modbus_bat"
            WHERE time > :dashboardTime: AND time < :upperDashboardTime:
            GROUP BY "name"
            order by time desc limit 4)
      order by time desc)
order by time desc

{
  "results": [
    {
      "statement_id": 0,
      "series": [
        {
          "name": "modbus_bat",
          "columns": [
            "time",
            "c",
            "s"
          ],
          "values": [
            [
              0,
              7716352,
              null
            ],
            [
              0,
              null,
              -10376
            ]
          ]
        }
      ]
    }
  ],
  "uuid": "7b01d0cc-904c-4a8a-844c-c74fb9d57115"
}

InfluxQL does not support what you are attempting to do.  Upgrade to InfluxDB v2.x and use Flux.  All of these use cases are easily supported in Flux.

it sems that the result set of such a query contains multiple values arrays (in the same series), having identi

I meet the same problem. But it worked in "telegraf" database .why it worked?

InfluxQL does not support what you are attempting to do. Upgrade to InfluxDB v2.x and use Flux. All of these use cases are easily supported in Flux.

I meet the same problem with influxdb 1.8.9, but the influxQL worked in 'telegraf' database.
`> SELECT last(a), last(b) from (SELECT mean("usage_idle") as a FROM "monitor_90d"."cpu" WHERE time >= now() -15m GROUP BY time(10s) fill(previous)), (SELECT mean("usage_idle") as b FROM "monitor_90d"."cpu" WHERE time > now() - 1d - 15m and time < now() - 1d GROUP BY time(10s) fill(previous))
name: cpu
time last              last_1

0    94.14043051483989 94.27239095992935`


chore: update cypress version to 12.4.1 in factory/.env

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


[Chore] finalize delete method and add tests

What needs to be done
Remove the timer when an item has been removed from map, add tests to validate
Additional context

closed by the above PR


[Issue] Improvement of documentation for hook types

[X] Make sure you've installed the latest version using instructions in the wiki

Output from azd version
azd version 0.6.0-beta.2 (commit c4a201e55a13eba77f9037b296a90e0f81b00dbe)
Describe the bug
Not a bug, but a request for improvement of the documentation. The newly release hooks come in two flavors:

command hooks
service lifecycle hooks

In both cases the user of azd can specify the script to be executed in line or as a file. It should be highlighted in the documentation that azd considers the following paths for the execution:

for command hooks: the root of project is the starting point of the path
for service lifecycle hooks the path specified in the project attribute of the service is the  the starting point of the path

The commands and/or location of the scripts must be available in accordance to this path. This is logical, but not immediately obvious, so some hint in the documentation would be helpful.
To Reproduce

Create a hook directory in the root of your azd project
Add a script file into the directors
Create a service lifecycle event hook in the azure.yaml that references the hook directory, but specify it like ./hook/yourfilename in the run section of the hook.

This will lead to a error message here in case of the predeploy hook:
ERROR: deploying service: failed invoking event handlers for 'predeploy', 'predeploy' hook failed with exit code: '127', Path: '/tmp/azd-predeploy-1465749944.sh'. : exit status 127

Expected behavior
Improvement of the documentation for the hook implementation that the location of the script file must be defined relative to the path defined in the project attribute of the azure.yaml
Environment
n/a
Additional context
n/a

pr: https://github.com/MicrosoftDocs/azure-dev-docs-pr/pull/4415 (currently in review)

Oh sorry @lechnerc77 I just realized that PR is in a private repo so you aren't able to see it. But yes, that is a PR with the improvements! I can post another comment here once they are live. They will be on this page: https://learn.microsoft.com/en-us/azure/developer/azure-developer-cli/azd-extensibility later today.

@lechnerc77 the changes are now live🙂

@gkulin Looks good, thanks for the update and improvements!


Missing disable/enable onClickOutside function props?

Are disableOnClickoutside() and enableOnClickOutside() still supposed to be passed as props to the wrapped component in 5.x? As far as I can tell, they are not being passed down.

Open PR #107


reorg block with claim update will remove claim

When we update a claim, we update the outpoint it came from which will point to the latest update of the claim. If that update is part of a transaction in a block that is orphaned from a reorg, it will also delete the the claim since it is tied to the outpoint of the last update.
Ideally, claim versioning could prevent this problem as then only the claim version would be impacted by the reorg, which is what we would expect.
For the near term, I need to think about this one. What we might want to do, is in the event this happens, the claim will be missing. So if we get an update for a claim that doesn't exist, we should create instead of posting a warning to the logs. This is not a terrible idea because it is assumed that if there is an update in a transaction, that the blockchain has already validated this and it has the claim in the claimtrie.
This is a very RARE scenario. 1 block reorgs, happen 1 per week if that, and the chance that a block contains a claim update is also pretty rare. So together this will probably not happen in production any time soon and if it does, it is such a tiny fraction of the overall claims.
I only found this debugging another issue, where I had to delete 5k blocks which is what a reorg does when it orphans blocks.

@lyoshenka This is basically the claim version question as well. How do we want to handle claim versions. One proposal was to have versions and then the claim table. The claim table is alway up to date and you can check versions in the version table.
However, in this case, a reorg would remove the claim because it is tied to the transaction it was last updated with. This is certainly useful for setting bid_state. However, we should come up with a solution for this too. We could have a sync job that looks for this and creates the claim again and ties it to the transaction of the latest version if we have the claim version table. Do you have any immediate thoughts on this? I can think more in depth about it as well.

Its fine to remove claims from chainquery if the transaction containing the claim is removed from the blockchain.
I'm happy to talk architecture details. Can you write down how chainquery deals with reorgs now, maybe with diagrams? I have some thoughts on how it should work but it would help to understand what happens now.

moving to groomed for tech design,
created epic, add additional issues for implementation

added issue for technical design