[FR] Verify password server-side

Is your feature request related to a problem? Please describe.
I want to create a GraphQL API through which everything server-side is handled, including email-password authentication. Also, I want to make use of Firebase Authentication. I am able to register users with their email and password server-side, however, I am not able to verify their password when they are logging in through the GraphQL API, since the auth module of the node admin sdk does not support 'signing in', or checking the password in any other way server-side. I know I am able to recreate such a use case by letting the user login with the client side sdk, and after that, sending an id token to authenticate themselves, but that would require the client to have firebase installed, which is something I'd like to avoid.
Describe the solution you'd like
Something like const userRecord = await auth().getUserByEmailAndPassword(email, password) or const isPasswordValid = await user.verifyPassword(password)
Describe alternatives you've considered
Using an ID token sent from the client, but that would require you to install firebase on the client.

We have no immediate plans to support client auth operations in the Admin SDK (although this is something that gets requested every now and then). There are couple of ways you can implement this use case server-side today:

Use the client SDK in your backend app. We use this approach in our own Node.js integration tests: https://github.com/firebase/firebase-admin-node/blob/1862342636e816b61337262254cdfe0cc410c640/test/integration/auth.spec.ts#L335
Use the REST API. We use this approach in integration tests of other languages: https://github.com/firebase/firebase-admin-java/blob/d05cb36f278f66d707184f243cbd7048f7712964/src/test/java/com/google/firebase/auth/FirebaseAuthIT.java#L973-L988

We have no immediate plans to support client auth operations in the Admin SDK (although this is something that gets requested every now and then). There are couple of ways you can implement this use case server-side today:

Use the client SDK in your backend app. We use this approach in our own Node.js integration tests: https://github.com/firebase/firebase-admin-node/blob/1862342636e816b61337262254cdfe0cc410c640/test/integration/auth.spec.ts#L335
Use the REST API. We use this approach in integration tests of other languages: https://github.com/firebase/firebase-admin-java/blob/d05cb36f278f66d707184f243cbd7048f7712964/src/test/java/com/google/firebase/auth/FirebaseAuthIT.java#L973-L988

@hiranya911 is correct. For now, you can either use the Node.js client SDK or the REST API to do so.

@hiranya911 is correct. For now, you can either use the Node.js client SDK or the REST API to do so.

@bojeil-google Is this the REST API you are referring to? https://firebase.google.com/docs/reference/rest/auth#section-api-usage
If so, is this still being maintained / up to date?
While testing firebase Auth I noticed that, firebase library itself makes request to:
https://www.googleapis.com/identitytoolkit/v3/relyingparty/verifyPassword?key=[API_KEY]
However the REST API equivalent of this is:
https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=[API_KEY]
I can't help but notice the differences in the versions of these APIs.
is it safe to use the REST API sign in option in production?

The REST APIs are safe to use in production. We recommend the new format:
https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=[API_KEY]
Over the legacy format:
https://www.googleapis.com/identitytoolkit/v3/relyingparty/verifyPassword?key=[API_KEY]
The legacy format is still maintained. They both map to the same endpoint. However, there are new https://identitytoolkit.googleapis.com/v2/ endpoints which do not have an equivalent API in https://www.googleapis.com/identitytoolkit/v3/relyingparty/...

My understanding is that, in general, the client side SDK is stateful.
i.e. signing in one module will sign in for all modules. On a server, this means signing in during a request handler from one user will also sign in on a request from another user.
Perhaps if the client side SDK is not being used for anything else, then this "sign in" is ok as it's not being
However, as requests handlers can be async, this means multiple sign ins can happen at once. Can we be sure that the client side SDK will handle this securely on the server?
e.g. the following code contains async methods, can we be sure that multiple simultaneous requests wouldn't impact each other (e.g. users getting signed in as someone else because the request happened at the same time)
https://github.com/firebase/firebase-js-sdk/blob/26f9303669b301c10f3e7cd2e1002c200f4cf9a5/packages/auth/src/auth.js#L1693-L1703
If the client side SDK hasn't been designed and tested for this, I think it would be sensible to avoid it - even more reason that it would be great to have this feature from firebase-admin.

If you're using Firebase Emulator, then your only option is to use Node Client SDK, which have problems explained by @penx above.
I think I'll go with storing copies of hashed users password in Firestore. :(
Hope Admin SDK have this feature soon.

+1 to have the server verify passwords and sign in users. Hoping this gets added soon

We have no immediate plans to support client auth operations in the Admin SDK (although this is something that gets requested every now and then). There are couple of ways you can implement this use case server-side today:

Use the client SDK in your backend app. We use this approach in our own Node.js integration tests: https://github.com/firebase/firebase-admin-node/blob/1862342636e816b61337262254cdfe0cc410c640/test/integration/auth.spec.ts#L335
Use the REST API. We use this approach in integration tests of other languages: https://github.com/firebase/firebase-admin-java/blob/d05cb36f278f66d707184f243cbd7048f7712964/src/test/java/com/google/firebase/auth/FirebaseAuthIT.java#L973-L988

Do the rest of the API have any rate limits? I mean, all our users log in from our server IP, maybe it crashes with many requests.


Allow PageTypeField to be used outside of a view context

Issue Summary
The to_representation method of PageTypeField in an API serializer can only be used inside the django request context, since it makes use of self.context:
class PageTypeField(Field):
    # ...
    def to_representation(self, page):
        if page.specific_class is None:
            return None
        name = page.specific_class._meta.app_label + '.' + page.specific_class.__name__
        self.context['view'].seen_types[name] = page.specific_class  # <--- HERE!!!!
        return name

If attempting to serialize a page outside the context (e.g. when generating API documentation or integrating wagtail into an existing DRF API rather than using wagtail's API out of the box), this of course fails, since self.context['view'] won't always be available.
Steps to Reproduce
Serialize a page outside the django request context.
Proposed fix
I wrote a patch for that field class . It's been used in production for a few months now. Here it is in the full class:

class PageTypeField(fields.Field):
    """ Serializes the "type" field for pages. Adapted from wagtail.api.v2.serializers.PageTypeField which requires the data to be serialized from within a wagtail view.

    This takes into account the fact that we sometimes may not have the "specific"
    page object by calling "page.specific_class" instead of looking at the object's
    type.

    Example:
    "type": "blog.BlogPage"
    """
    def get_attribute(self, instance):
        return instance

    def to_representation(self, page):
        if page.specific_class is None:
            return None
        name = page.specific_class._meta.app_label + '.' + page.specific_class.__name__

        # Stay consistent with wagtail, but eliminate the requirement that the serializer be used within a view
        if self.context and ('view' in self.context.keys()) and hasattr(self.context['view'], 'seen_types'):
            self.context['view'].seen_types[name] = page.specific_class

        return name

What next
Happy to make a PR for this tweak if it'll be welcome?
Technical details

Python version: 3.6.6
Django version:2.1.8
Wagtail version: 2.3
Browser version: n/a

The fix sounds sensible to me, however I don't know the API well enough to anticipate any consequences.
FWIW, from a Python point of view the .keys() and the parentheses around the second condition shouldn't be necessary.


How can I validate an e-mail that is not the last received?

I have an acceptance test that generates more than one email. How can I validate all of them? This module is currently set up so that it only allows you to check the most recent e-mail received.

There is no support for checking older emails yet. Only the last message received.

@petemolinero I see you are already working on it on your fork, should I wait for your pull request or do you want me to tackle it?

HI,
I am getting this error when trying to build codecept:  [Codeception\Exception\ConfigurationException]
Module Mailtrap could not be found and loaded
I enabled to module and the config in my suit.yml
class_name: SeleniumTester
modules:
enabled:
- Mailtrap
- WebDriver
- Db
config:
    WebDriver:
        url: 'http://homehero.dev/'
        browser: 'chrome'
    Mailtrap:
        api_token: '01f3cbbd85c10e6831309495602e8124'
        inbox_id: '77268'

Is there anything that I am missing? Thanks

Did you install module?

Yes, I was able to add the Db module and Laraval5 module. Its just with this one that I am having issues.

Well, could you please provide composer.json


Cisco SG300

Hi,
I am new to the module, but love the idea!
I am trying to connect to a Cisco SG300. I can run New-SSH and create the connection, the swich log files show the log in as sucessful.
However, when I run Invoke-SSHCommand -SessionId 0 -Command "show run" I get a timeout error.  -Verbose doesn't provide any additional information, and the switch doesn't log any activity.
Exception calling "EndExecute" with "1" argument(s): "Command 'show run' has timed
out."
At C:\Program Files\WindowsPowerShell\Modules\Posh-SSH\2.2\Posh-SSH.psm1:260 char:25

                    $Output = $_.cmd.EndExecute($_.Async)

                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
FullyQualifiedErrorId : SshOperationTimeoutException

Running the command in a PUTTY session work perfectly.
Any thoughts on what I am doing wrong here?
Thanks
David

For Cisco gear you need to use a ShellStream since Cisco does not have binaries but a shell for all of its commands. Invoke-SSHCommand behaves like Plink.


docs(grid-table): replace link to table-grid with link to table

The table component should be used for applications that need legacy support
Fixes #1, Fixes #2
Description

Scope

[ ] Patch: Bug Fix
[ ] Minor: New Feature
[ ] Major: Breaking Change

 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.

Thanks @benlin1994 !


Fix example testcase

Change connector_id, because old connector was deleted.

Codecov Report
Patch and project coverage have no change.

Comparison is base (1b51b6b) 70.62% compared to head (0d8b72d) 70.62%.

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #65   +/-   ##
=======================================
  Coverage   70.62%   70.62%
=======================================
  Files          32       32
  Lines        1753     1753
  Branches      157      157
=======================================
  Hits         1238     1238
  Misses        478      478
  Partials       37       37

Flag
Coverage Δ

UTO
70.62% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

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


Style don't work / [ICO] or [DIR]

Hello, when i'm using apaxy on windows 8 through vagrant  and i have a little problem: apaxy won't work

here is the pastbin of the main htaccess: http://pastebin.com/29PZ7da9
thank you

I did exactly as the tutorial on the website said as well, but it was sensationally vague: "Download and unzip Apaxy" with no link to any sort of download, so I grabbed the GitHub ZIP and it had all the nice little things but most importantly of all it was missing an actual index file to show up and replace this default directory listing which was and is infuriating.

Ok, I believe that you must first put in http://larsjung.de/h5ai/ and then use Apaxy in the _h5ai/client/theme folder, but the installation tutorial on the website is incredibly vague as well, mentioning files that don't even exist in the download folder :(. There really should exist a video tutorial for this because it's mind boggling how bad these (link above and apaxy) tutorials are.

Sorry to hear you're struggling to get this going. Have you managed to sort it out yet?

Hi GGJesus,
Installing Apaxy on your virtualhost or whole server depends on so many variables with a count as big as Apache Virtualhosts variables.
You should learn the basics of the Apache Directory and Location directives at Apache documentation. http://httpd.apache.org/docs/2.4/sections.html
For example, my setup is completely different from docs because I wanted to use the same Apaxy directory from different virtualhosts, so I used linked dirs (not ideal, better use rewrite directive).
I have downloaded zip file from http://release.larsjung.de/h5ai/h5ai-0.27.0.zip and it does contain an index.html. It is possible that your zip or tar.gz does not have this file, but you have to be exact when reporting issues to developers or projects, else is very difficult to solve the issue or give help.
Hope you take my words in a good sense :)
Cheers.

@augustinpft  what does the apache log or firefox debugger network resources tab report?

I'm having the same issue. I'm using Xampp if that matters.

Assuming C:\Dev\theme\icons\blank.png maps to http://localhost/theme/icons/blank.png (or similar), then you may try:
...
-        AddIcon C:\Dev\theme\icons\blank.png ^^BLANKICON^^
-        AddIcon C:\Dev\theme\icons\folder.png ^^DIRECTORY^^
-        AddIcon C:\Dev\theme\icons\folder-home.png ..
+        AddIcon /theme/icons/blank.png ^^BLANKICON^^
+        AddIcon /theme/icons/folder.png ^^DIRECTORY^^
+        AddIcon /theme/icons/folder-home.png ..
...

Check out the source of the resulting listing, there is probably something like:
<img src="C:\Dev\theme\icons\folder.png" alt="[DIR]">

... whereby the URI isn't valid (i.e. the image can't be reached via C:\Dev\theme\icons\folder.png).

@augustinpft I got the same behavior as you, but I managed to fix it. My mistake was replacing {FOLDERNAME} with the absolute filesystem path to the theme files. Seems like it's supposed to be replaced with the relative path starting from your DocumentRoot to the theme directory. In my case, I was applying Apaxy to my entire DocumentRoot, so I replaced {FOLDERNAME} with nothing and it worked.
@AdamWhitcroft is this correct?


Editor tab row hidden when Create File prompt is shown

VS Code Version: 1.83.0 Stable
OS Version: Windows 11

Steps to Reproduce:

Create a Markdown file with a link to a non-existent file.
Open Markdown Preview and click on the link.

A Create File prompt is shown in the editor region but the editor tabs are pushed up underneath the Title bar row.

You can get the editor tab row back if you reopen the file via the File Explorer but no way to close the Create File prompt otherwise.
Example Markdown file for repo:

Not sure if this might be related to recent pinned tabs row. In my repro, the workbench.editor.pinnedTabsOnSeparateRow is not enabled.

@gregvanl I tried to reproduce but I cannot, curious if maybe you can find any setting you have that would trigger this. Does it reproduce in a fresh new profile?

Didn't repro initially with an empty profile until I'd reloaded the window

DevTools console output when it happens:

Thanks I was able to reproduce now!

Caused by https://github.com/microsoft/vscode/commit/c8ad7f45f8c28d0e3a079a22cfd046e224f63d9b

cc @benibenj

This bug has been fixed in the latest release of VS Code Insiders!
@gregvanl, you can help us out by commenting /verified if things are now working as expected.
If things still don't seem right, please ensure you're on version 4678919d52909efc7c4ab958a2e5c8f45d50ffc3 of Insiders (today's or later - you can use Help: About in the command palette to check), and leave a comment letting us know what isn't working as expected.
Happy Coding!


Opens the folder with the folder '.vscode' instead of the folder from which the last file was opened

Does this issue occur when all extensions are disabled?: Yes

VS Code Version: 1.58.0
OS Version: Windows_NT x64 10.0.19042
Steps to Reproduce:

Open VS Code.
Try to open file (press Ctrl + O or another way).

Expected result:
Opens the folder from which the last file was opened.
Actual result:
Opens the folder with the folder '.vscode'.

Press Esc.
Try to open file (press Ctrl + O or another way).

Expected and actual results are the same:
Opens the folder with the folder '.vscode'.

I believe this is expected behavior, but forwarding to @bpasero so he can decide to close

I thought we are not doing this anymore (@chrmarti might know who I believe originally added this).

/gifPlease

Hi.
In this gif I

Open a file from some folder (frontend-project-lvl3)
Close this file
Close VS Code
Open VS Code
Try to open file

Expected result:
Opens the folder frontend-project-lvl3.
Actual result:
Opens the folder with the folder '.vscode'.

Close the window "Open file"
Try to open file

Expected and actual results are the same:
Opens the folder frontend-project-lvl3.

That is indeed strange, it seems to me that the first time using the dialog you get a different path compared to using the dialog a second time right?

That is indeed strange, it seems to me that the first time using the dialog you get a different path compared to using the dialog a second time right?

Yes, the first time - the path to the folder containing the ".vscode" folder, the second time - the path to the last parent folder.

I can reproduce even when configuring "files.simpleDialog.enable": true so I suspect an issue somewhere in our abstract file dialog service implementation. Here are the exact steps:

open VSCode (1 window) and bring it into empty state (File > Close Folder)
open a single file (File > Open File) from a folder that has a top level .vscode folder
close the editor tab
close the window
open again 1 window (it should open empty)
open a single file (File > Open File) and notice how the user home dir is picked by default
do the exact same action again and see how the previous folder is picked

@alexr00 please pass back to me if you think this is an issue somewhere else, thanks.

Interestingly I was not able so far to reproduce on macOS. I am also not 100% sure the .vscode folder is any relevant in the steps...

I have established that the 'Open Recent' menu has a fixed path where the folder is opened when it is first opened. I can't delete it, 'Clear Recently Opened' doesn't help.
http://joxi.ru/v29Eze4FRGbdJ2

I'm no longer able to reproduce this issue. Please do comment if you still see it happening with version 1.61 (insiders)!


Time not stopping on Windows desktop app

Hi.
I seem to have a problem stopping the time on toggl for Desktop, but when I log in on the website, it has stopped. I can't seem to start a new task because of this issue. It isn't even synchronizing but the connection is running super fast.
Thanks.

Hi there,
Could you contact us at<EMAIL_ADDRESS>and send us your toggldesktop.db file from the C:\Users\Users\AppData\Local\TogglDesktop folder. Please make sure you send the .db file, not the .db-shm or db.wal file.
It may be a corrupt entry that can be resolved with a clearing of the cache but we want to have a backup of your database in case clearing the cache clears your entries. The cache can be cleared via the desktop app cogwheel menu.
Thanks!

haven't been able to reproduce it
please reopen if you still experience this bug


Implement default process & runtime metrics

Fixes #53
Currently only implemented on Linux (still figuring out how to handle this on MacOS), and on a 2 second loop.
Points for discussion:

[ ] Should we move forward without a MacOS implementation since it's usually not used in production environments
[ ] Should the process metric collection be run on a loop, or be requested at-will by the Metrics Backend
[ ] Is the 2 second delay between loop runs okay
[ ] How can we validate these values. Current implementation is copied from the python library

also note the interesting work the perfect folks did in https://github.com/PerfectlySoft/Perfect-SysInfo

Thanks for all the review comments. I finally got around to updating everything. As suggested by @tomerd I've gone with a change in approach. SystemMetricsHandler is now a self-enclosed class that will take care of everything, with MetricsSystem handeling as it's ctor. Enabeling system metrics now looks like this:
MetricsSystem.bootstrapSystemMetrics(
    labels: SystemMetricsLabels(
        prefix: "process_",
        virtualMemory: "virtual_memory_bytes",
        residentMemory: "resident_memory_bytes",
        startTimeSeconds: "start_time_seconds",
        cpuSecondsTotal: "cpu_seconds_total",
        maxFds: "max_fds",
        openFds: "open_fds"
    )
)

What I will probably do for SwiftPrometheus to reduce user-required copy-pasta is add something like
public extension MetricsSystem {
    static func bootstrapSystemMetrics() {
        self.bootstrapSystemMetrics(
            labels: SystemMetricsLabels(
                prefix: "process_",
                virtualMemory: "virtual_memory_bytes",
                residentMemory: "resident_memory_bytes",
                startTimeSeconds: "start_time_seconds",
                cpuSecondsTotal: "cpu_seconds_total",
                maxFds: "max_fds",
                openFds: "open_fds"
            )
        )
    }
}

allowing users to just MetricsSystem.bootstrapSystemMetrics() and I would advice other library owners to do the same.

thanks for updating the PR @MrLotU this is getting closer! left a few suggestions

het @mrlotu, wdyt about https://github.com/apple/swift-metrics/pull/61#discussion_r411646471

I've been quite busy over the last week(s) and hadn't had time to look at this yet. I just read your comment and it looks promising! I will take another stab at it hopefully this weekend.
@weissi I did already take an initial look into your comments and am afraid I'm going to need a bit more help on that end. I've tried using the methods you mentioned (withUnsafeBytes and the likes) but couldn't get it to compile that way. Pointers (no pun intended) would be appreciated 😄

@tomerd I've addressed your comments from https://github.com/apple/swift-metrics/pull/61#discussion_r411646471 to the best of my abilities. Would appreciate another round of review/feedback. 😄

@tomerd I've addressed your comments from #61 (comment) to the best of my abilities. Would appreciate another round of review/feedback. 😄

@MrLotU the API is taking a great shape. left some comments but I feel we are getting super close to nailing down the API

Thanks so much @tomerd! I'll go through all your comments tomorrow and apply fixes where needed 😄

@MrLotU thanks for all the hard work getting this done. I am pretty happy with the API shape. I'd let @ktoso help us decide on the default labels question and @drexin and @ktoso make sure the linux imp is correct.

@swift-server-bot add to whitelist

heya @MrLotU, is this ready for review?

Yup. Have a couple of outstanding questions, but I think we're in a good place 😄

@tomerd Any update on this? It's been stale for quite a while 😄

No problem at all. I can see your points for moving this into a separate project and agree this would be a great way to move forward.
I will hopefully have some time over the coming weekend to get a first draft up as a new module within swift-metrics to get an idea of what public API is needed 👍

Took me a bit longer to find the time, but I've migrated all of SystemMetrics to a new module.
The only change I made to the CoreMetrics module is making the lock public and making withWriterLock public. However this might not be required if SystemMetrics would ship with it's own lock implementation.
All other functionality & API stays the same

thanks @MrLotU, how about instead of exploring the lock we expose withWriterLock and withReaderLockdircetly? this will help not leak the Lock type which we prefer to keep internal. Then you can call self.withWriterLock instead of self.lock.withWriterLock etc?

That'd be a workable solution 👍 Will implement

Awesome work @MrLotU  -- giving it a final review round then and let's find it a home... :)

Thank you very much @MrLotU!
This is now released as part of the new swift metrics extras package! 🎉 🎉 🎉
Closing the PR here then, Thanks again!

thank you @MrLotU

Thanks @tomerd and @ktoso for the continued help & guidance. Super happy with how this turned out 😄


[staging-next] discord: fix autoPatchelfHook not finding libXdamage.so.1

Motivation for this change
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[x] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 119820 at 760b1438 run on x86_64-linux 1

3 packages built successfully:

discord
discord-canary
discord-ptb

2 suggestions:

warning: unused-argument
Unused argument: fetchurl.
Near pkgs/applications/networking/instant-messengers/discord/base.nix:2:21:
  |
2 | , autoPatchelfHook, fetchurl, makeDesktopItem, lib, stdenv, wrapGAppsHook
  |                     ^

warning: missing-phase-hooks
installPhase should probably contain runHook preInstall and runHook postInstall.
Near pkgs/applications/networking/instant-messengers/discord/base.nix:42:3:
   |
42 |   installPhase = ''
   |   ^


fix: carousel not working on Firefox

Fix #615
Test URLs:

Before: https://main--danaher-ls-aem--hlxsites.hlx.page/us/en/products
After: https://615--danaher-ls-aem--hlxsites.hlx.page/us/en/products

@duynguyen - thanks, this is perfect and I just checked in Firefox and it works:  https://615--danaher-ls-aem--hlxsites.hlx.page/us/en/products .


fix: allow self-signed qBittorrent server certificates.

Homarr

Thank you for your contribution. Please ensure that your pull request meets the following pull request:

[ ] Builds without warnings or errors (pnpm buid, autofix with pnpm format:fix)
[x] Pull request targets dev branch
[ ] Commits follow the conventional commits guideline
[x] No shorthand variable names are used (eg. x, y, i or any abbrevation)

Summary
This update improves the getClient method in the QBitTorrentIntegration class to support qBittorrent servers with self-signed SSL certificates. The implementation adds an https.Agent configuration to bypass certificate validation when connecting via HTTPS.
Changes

Added a custom https.Agent with rejectUnauthorized: false to allow self-signed certificates.
Passed the https.Agent to the requestConfig parameter of the QBittorrent client.

Benefits

Ensures compatibility with qBittorrent servers using self-signed SSL certificates and full chain signed certificates.
Maintains functionality for servers running over plain HTTP.

Example Usage
The client now automatically works with:

HTTP Servers: Connections proceed without changes.
HTTPS Servers (Self-Signed): The custom https.Agent handles certificate validation bypass.

This is my first PR for this project so I haven't actually built or tested this.
I can't get the beta to work with OIDC, so this is just speculative.

Not sure if we should allow rejectUnauthorized as it increases the risk of Man in the middle attacks. What's your opinion @manuel-rw. An alternative would be to add the certificate somehow so it can check that they are the same. But maybe I'm also too cautious

An environment variable could also govern this

There is already an environment variable to configure this. It is undocumented. NODE_TLS_REJECT_UNAUTHORIZED. It completely disables certificate verification and should not be used
Self signed certificates aren't problematic on their own, but I highly recommend you to sign one using https://letsencrypt.org/ or something similar. You'll get tons of problems down the chain in other tools too, not just Homarr.
I currently have the same problem while writing #1752 . We should implement a global trusted certificate, that you can upload on your own, which will be passed to the agent: https://stackoverflow.com/a/78248049 This will resolve the issues with self signed certificates while not impacting security.

For what it's worth, I've been using NODE_TLS_REJECT_UNAUTHORIZED: 0 and it doesnt connect in the original homarr. https://github.com/ajnart/homarr/blob/ed3d143b8a24e542e533b5e94a36f2f28f3c5a89/src/server/api/routers/download.ts#L133
I'm talking about securing from socket <-> socket internally. You shouldnt use your real cert everywhere either. That could expose your key. In general, something is better than nothing. When people come to homarr in my instance, they go to a reverse proxy with a LE encryption. Same with any app. But internally, I am also implementing more of a zero trust

For what it's worth, I've been using NODE_TLS_REJECT_UNAUTHORIZED: 0 and it doesnt connect in the original homarr<EMAIL_ADDRESS>
Yes, because the library @ctrl/qbittorrent; does not use the standard fetch API. And ofetch probably does not respect this variable.

I'm talking about securing from socket <-> socket internally

You're talking about... what? Qbittorrent exposes a socket that a client can connect to. In this case, Homarr is the client. Certificates also apply to this connection though, similar as they do for normal HTTP.

When you're hosting things, you shouldnt use your real domain cert everywhere either. That could expose your key and is also another security implication.

Could you elaborate on this? I do not agree.

I'm operating on the impression that this is optional, and in general, something is better than nothing.

Yes, something is indeed better than nothing. However, with untrusted certs you break many tools and you should not allow direct requests to your reverse proxy targets anyway. You should either trust this certificate on all of your clients (which will be hard, especially if you run more tools like Homarr) or use a trusted authority (like Let's Encrypt).

It would seem nice if homarr could talk to qbittorrent via that, especially considering all the arrs, and everything else does.

I'm assuming you're referencing to the Servarr apps. They will also break if you use selfsigned certs. See https://forums.sonarr.tv/t/sonarr-v3-self-signed-ssl-cert-error-when-adding-download-client/25476/2 .

You're talking about... what? Qbittorrent exposes a socket that a client can connect to. In this case, Homarr is the client. Certificates also apply to this connection though, similar as they do for normal HTTP.

I'm talking qBittorrent being configured to serve over SSL. And then the reverse proxy /also/ using a proxy_pass: http_s_://qbitorrent....

Could you elaborate on this? I do not agree. You never need the private key to verify SSL encryption. Maybe https://www.cloudflare.com/learning/ssl/what-is-ssl/ and https://www.cloudflare.com/learning/ssl/what-is-asymmetric-encryption/ would be interesting reads for you.

Alot of people are used to mounting their private.key alongside the fullchain-or-ca.pem or certificate. Or maybe even mounting it. Everywhere. If someone got a hold of these, which is not hard to imagine, MITM and historical tls decryption are problems.
I have an isolated network. Like I said before, I am running Authelia as an IdP and everything is reverse proxied with a LE cert. I'm trying to add internal certificates for docker network traffic.

I'm talking qBittorrent being configured to serve over SSL. And then the reverse proxy /also/ using a proxy_pass: http_s_://qbitorrent.... it can be from a CA that you made, and signed that cert that day. It doesn't matter.

Then is there any reason, why you'd not want Homarr to go over the proxy as well? It just seems to complicate things more.

Alot of people are used to mounting their private.key alongside the fullchain-or-ca.pem or certificate.crt. Or maybe even mounting it. Everywhere. Kind of like docker.sock.

Obviously you should not mount or give your private keys to any third person. Same applies to the Docker Socket as you said 👍

Let me turn the tables. Why would I not want to use HTTPS on my qBt instance and my reverse proxy? Assume they cannot access the qBt instance or whatever anyways, if my firewall isn't a joke. That qBt https instance lives in its own docker subnet (almost) alone. Nginx, Homarr have IP's. But it would be great if it talked via homarr via ssl. No ports are exposed beyond the reverse proxy. OIDC , etc, etc,. I agree that Authelia should be using a valid cert. But I dont care if qBt is. And for the reasons I stated, I prefer it not. But I prefer not to use HTTP.

Thanks for explaining. As mentioned, this can be easily fixed by using a trusted certificate or trusting a self-signed certificate inside Homarr (and every of your clients, including Nginx). Your solution outlined in this PR will fix this problem as well, but it also disables any certificate checks. It is still better than using plain HTTP (or any unencrypted protocol for this matter) but the integrity & safety of the connection is no longer guaranteed. I strongly vote that we allow the user to mount / upload their own certificate (mount seems safer to me, can be used in automated systems, such as Kubernetes clusters, where certificates are renewed or replaced automatically).

I'm open to changing it to allow or look for the existing of files to accomplish that goal, and making the changes only take effect if TLS file(s) exist?

Summary of Changes

Custom SSL Certificates: Added support for QBITTORRENT_SSL_CERT and QBITTORRENT_SSL_KEY environment variables to use a custom SSL certificate and key.
Optional Insecure Fallback: Introduced QBITTORRENT_SSL_INSECURE (default: false) to enable fallback for self-signed certificates.
Default Behavior: Avoids adding requestConfig unless SSL customization is explicitly configured.

Summary of Changes
1. **Custom SSL Certificates**: Added support for `QBITTORRENT_SSL_CERT` and `QBITTORRENT_SSL_KEY` environment variables to use a custom SSL certificate and key.

2. **Optional Insecure Fallback**: Introduced `QBITTORRENT_SSL_INSECURE` (default: `false`) to enable fallback for self-signed certificates.

3. **Default Behavior**: Avoids adding `requestConfig` unless SSL customization is explicitly configured.

Thank you so much for the change.
I apprechiate that you're taking the time to work on this.
I'm wondering whether we should create a wrapper for fetch() and apply this change there globally. Of course, this will not apply to the ctrl/* libraries, because they abstracted the fetch client as I previously mentioned. Hence I suggest the following changes:

Implement a new package that wraps the fetch() function. It abstracts the certificate loading process into this function, so it can be reused in multiple places. To avoid accidential usage of of the standard fetch function, we also need a custom eslint analyzer that will create a diagnostic for usages of the old fetch function (not sure how easy this is...).
Since we reuse the logic also for non-Qbittorrent code, rename the environment variables to reflect this change
Since the ctrl/* libraries do not re-use the fetch API, we could extract the code from @voc0der to another function which we re-use in all initializations of these libraries (eg. Deluge, ...).

This way, self signed certificates are handeled in a common & known way. Error handling can be centralized and we only need to write tests once for the same code. We also avoid code duplication and multiple behaviours for the same functionality.
@Meierschlumpf / @SeDemal / @voc0der  what do you think?

I only kind of agree. IMO it makes sense to have a centralized function 👍🏼 But IMO it would be easier to use if you could add the certificate during the creation of an integration. Because then you also run the test connection which will show you that it's not trusting the self-signed certificate. This should then obviously be exposed through our api somehow? Not 100% sure how to structure it right now.

Good idea, but maybe we can add this in a second iteration? Or do you have any concrete proposal how we could implement this?

I would suggest something in this direction
In the db we would have a new table called sslCertificates and a new nullable field in the integrations table named sslCertificate

Would this new view accept file paths from the environment as an override?
Might I propose not storing it in the database but having the UI work similar to that? Most cert users are not manually going to want to renew.

I think we should discuss this further before implementing it 😉

You mean one specific directory where you can place all your certificates in and then it makes the fetch request to all the integrations with that as ca argument? Is okay for me as well. The only drawback I see is that the certificates has to be added at a seperate location than the creation page and they are not directly linked to the integrations that need them. But if it works other than that, sure!

You mean one specific directory where you can place all your certificates in and then it makes the fetch request to all the integrations with that as ca argument? Is okay for me as well. The only drawback I see is that the certificates has to be added at a seperate location than the creation page and they are not directly linked to the integrations that need them. But if it works other than that, sure!

Yes, that would be my suggestion. We could list the certificates in a dropdown on the integration create / edit page to let the user select them. That way, a certificate issuer (e.g. a script, an issuer in a cluster or just a manual file update) can update the certificate on the fly. What do you think, @voc0der ? Would you also be willing to implement this? From my point of view, the priority for this isn't too high, so it's likely we would prioritize it for a release after 1.0.

I like the ideas and I think I can do it. I'll take a look at how the templating works. If I'm understanding it correctly, each app will have a .key. and .crt (filename not important) they can save the path of, and it will by default try to load that.
Failing to load that, it will try to load insecurely. If no certificate is selected, and they save that configuration, they ignore the SSL altogether.


added Zahid to the list

Added myself (Zahid K) to the list of attendees. Might add a session idea later.

 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.

Thanks for fixing the language and the structure. And welcome to the Selenium open space conference.


Detect 3D does not affect embedded .glb textures, meaning they will not have mipmaps generated or VRAM compression used (regression in 4.0.alpha10)

Bugsquad note: This issue has been confirmed several times already. No need to confirm it further.

Godot version
4.0.alpha-10
System information
Ubuntu 20.04, x64, Nvidia GeForce GTX 1050 Ti, driver version 470.129.06, Vulkan backend
Issue description
This PBR texture looks "grainy" when made in Blender, and exported to a .glb file. The same texture looks just fine when loaded directly on a mesh in Godot, or when imported from a Collada file.
In the attached video, the plane on the left is a .glb import, while the one on the left was loaded directly in Godot.
https://user-images.githubusercontent.com/5769562/174925370-0de99b7e-8f16-4d71-ad20-a8ccc373069f.mp4
Steps to reproduce

Download this PBR texture
In Blender 3.1.*, create a plane, and add the PBR material to the plane
Export the scene to a .glb file (glTF 2.0 format)
Import into Godot by drag and dropping into your res:// folder
Add the imported scene to the World, and observe the grainyness.
You can also create a new MeshInstance3D, add the material (albedo only is necessary), and observe the lack of grainyness.

Minimal reproduction project
Contains only the grainy texture, due to Github upload file size limits.
grainy.zip

The mipmaps are off so there's too much detail and causing a sharpness pattern.

Material has its sampling mode correctly:

However, this does not suffice to have working mipmaps. The texture must have mipmaps enabled in its import options, and this isn't done automatically for embedded textures within a .glb file. I assume the whole Detect 3D process should be able to detect and reimport those textures, or even always import embedded textures from .glb as if they were used in 3D.

Not sure if that goes without saying, but I observe the same behavior with .gltf files (exporting as "glTF Embedded" in Blender).

This was confirmed by @jcostello to be a regression in 4.0.alpha10. 4.0.alpha9 does not have this problem.

Just tested myself in 4.0 alpha 9: imported GLTF embedded textures still won't use mipmapping. On Windows 10 GTX1080.
Doesn't seem to be resolved in alpha 11.

On a side note: Since there already is a separate option for handling embedded images from gltf-files in the Advanced Import Settings, should "Extract Materials" really embed the texture files inside the material resource again, when you have already selected "Extract Textures"? I think those settings should be synched in a way to avoid duplication and confusion.

As of Godot 4.0, by default textures are extracted from .glb models using the project's default texture import settings. This should enable mipmaps as well as VRAM compression (via Detect 3D).
I would like to close this issue as solved. Does that make sense?
@novemberist The problem you hit is a separate bug, as you noted, so we can discuss it there.

Closing based on the above comment.


backend: don't hold boltdb read txn lock on cursor scanning

Large fetches hold the lock when they do not need to do so.

Codecov Report

Merging #7872 into master will decrease coverage by 0.07%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master    #7872      +/-   ##
==========================================
- Coverage   75.69%   75.61%   -0.08%
==========================================
  Files         332      332
  Lines       26203    26208       +5
==========================================
- Hits        19835    19818      -17
- Misses       4935     4955      +20
- Partials     1433     1435       +2

Impacted Files
Coverage Δ

mvcc/backend/batch_tx.go
79.69% <100%> (+1.12%)
:arrow_up:

mvcc/backend/read_tx.go
41.37% <100%> (-3.79%)
:arrow_down:

pkg/transport/timeout_conn.go
60% <0%> (-40%)
:arrow_down:

etcdserver/api/v3rpc/lease.go
89.28% <0%> (-10.72%)
:arrow_down:

pkg/adt/interval_tree.go
82.92% <0%> (-6.1%)
:arrow_down:

clientv3/namespace/watch.go
87.87% <0%> (-6.07%)
:arrow_down:

lease/leasehttp/http.go
61.06% <0%> (-3.06%)
:arrow_down:

etcdserver/api/v3election/election.go
64.7% <0%> (-2.95%)
:arrow_down:

pkg/netutil/netutil.go
62.35% <0%> (-2.36%)
:arrow_down:

pkg/transport/listener_tls.go
73.91% <0%> (-2.18%)
:arrow_down:

... and 11 more

Continue to review full report at Codecov.

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

LGTM.


Print negative on float literals in the ASTDumper

(cherry picked from commit 7c959dbf2144a47c31c2f1e0ec20e83fff80de24)
Negative float literals didn't dump any information on the fact that they were negative. For contrast, int literals dump negative on their AST when appropriate. This pull request adds the same logic from int literals to float literals.
Resolves SR-10131.

@swift-ci Please test

Oops. I'm very sorry, @vinivendra; it looks like we lost this one at the time and now (several months later) it doesn't really meet the bar for 5.1 changes. It's in master, at least.

Oops. I'm very sorry, @vinivendra; it looks like we lost this one at the time and now (several months later) it doesn't really meet the bar for 5.1 changes. It's in master, at least.

Don’t worry about it, the important thing now for me is it being in master :)


fix: snap zone highlight creation ignores empty meshes now

Description

This commit fixes a NullReferenceException which primarly happened when creating a highlight prefab of a snap zone that has other snap zones as children.
Type of change

[x] Bug fix (non-breaking change which fixes an issue)

How Has This Been Tested?
Create a snap zone of an object which has snap zones as children with the generator.

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


Discuss - DB2 Plugin Dependencies

Summary:
The DB2 plugin utilizes the dependency ibm_db, an open source MIT-licensed module which at install time downloads proprietary ODBC binaries that require a client-side license to run. For our offline CLI installation package with DB2, we currently redistribute the ODBC binaries. We need to review our strategy for this plugin and its packaging.
Some options:
-keep repackaging odbc binaries, but note the terms of the license as part of a commercial install and point users to rocket/ibm doc for acquiring the client license. install works, plugin usage fails until license is fulfilled.
-require users to provide the binaries + license themselves. We must test & doc how this process works for our plugin.
-try to get an exemption for ODBC license usage in Zowe
-refactor DB2 to use some other technology (no known tech at time of writing)

@zowe/zlc @SujaySolomonCA @alvin-tan @dkelosky
I create a Waffle issue based on an e-mail thread. We should discuss this during our normal ZLC call.

@jmertic @SujaySolomonCA
John - Could you weigh in on the distribution strategy outlined below for the CLI DB2 Plugin - assuming the plugin hosting is not provided by the OMP for the moment. Is the strategy in compliance with open source licensing and dependency management practices?
Quick recap - one DB2 plugin dependency (ibm_db, MIT License) downloads ODBC binaries (proprietary license) from a public domain at install time. These binaries require a client-side license to operate, which we do not provide.

For users who install via the internet, leave everything as-is. The ibm_db plugin downloads ODBC per normal operation. Install documentation points users to external doc for obtaining ODBC client-side license.
For users who install via our bundled ZIP (offline install), do not repackage ODBC binaries. The user must download and provide these binaries themselves. Zowe install doc should point users to external doc detailing how to download the ODBC binaries, and where to obtain client side licenses.

I presume this is the package you are speaking of?
https://www.npmjs.com/package/ibm_db

Correct, with the ODBC binaries I'm speaking of here: https://public.dhe.ibm.com/ibmdl/export/pub/software/data/db2/drivers/odbc_cli/
(As detailed in the ibm_db package)

OK - thanks for that.
Second question - can you detail the differences between "install via internet" and "install via our bundled ZIP"?

After consultation with the ZLC and OMP, we determined that repackaging the ODBC binaries would not be in the best spirit of open source, so we are shipping just the DB2 plugin. We document steps to acquire the ODBC binaries+ licenses in the Zowe DB2 Plugin installation guide.
This DB2 packaging structure is shipped as of Zowe 0.9.3.


Boxing and Casting on function parameters

in brs it was implemented an auto-box when the code has as object in the parameters, the example below shows how it works, in the RightTest() function param1 type is String  and in LeftTest() function param1 type is roString. Also the param2 is auto-casted to boolean from Integer in the LeftTest()
sub main()
  myVar = "test"
  RightTest(myVar, 1.3)
  LeftTest(myVar, -1)
end sub

sub RightTest(param1 as dynamic, param2)
  print type(param1), type(param2)
  if param1 <> invalid
     print param1, param2
  else
     print "param invalid"
  end if
end sub

sub LeftTest(param1 as object, param2 as boolean)
  print type(param1), type(param2)
  if invalid <> param1
     print param1, param2
  else
     print "param invalid"
  end if
end sub

The output of this code in a Roku:

RBI automatically boxes function parameters and return values. As it turns out, RBI also unboxes function parameters and return values to match a function's declared signature. Consider this example:
sub main()
    boxed = createObject("roString")
    boxed.setString("lorem ipsum")
    print "type(boxed) = " type(boxed) " | boxed = " boxed

    unboxed = unboxing(boxed)
    print "type(unboxed) = " type(unboxed) " | unboxed = " unboxed
end sub

sub unboxing(s as string) as string
    print "type(s) = " type(s) " | s = " s
    return s
end sub

Inside of the unboxing function, s is always a primitive string and never an instance of roString. Similarly, the return value of unboxing is also always a primitive string and never an instance of roString.
brs currently doesn't handle this demotion properly, and throws type mismatch errors at runtime 😢


[CORE-1755] Implement pachctl validate pipeline

This provides offline-only pipeline spec validation.

Of note, this does not validate the objects which would be created by PPS in K8s as a result of the pipeline spec; that is left as future work.


how to build the server code which run in android phone?

I follow the tutorial of  https://github.com/Genymobile/scrcpy/blob/master/doc/build.md,
but the document not show me the step to build and compile the scrcpy-server java code.
I read the file of "meson_options.text ",  and i use the cmd of "meson compile_server",
however i only get the compile_server folder. what i should do? i change the java code
in scrpy-server to compile it. My target is to compile the custome java code and push it to the android Phone.
Please help me !  always thanks !

https://github.com/Genymobile/scrcpy/blob/master/doc/build.md#build
With this step, it compiles both the client and the server.

I follow the offical document, I must be failed. the fish know nothing, even don't know to setup enviroment. the only thing i can do is build the offical code, run   " ./installer_release.sh "


modernization of dependencies

hey everyone, I'm trying to do some maintenance to facilitate future features/fixes.
I'm working at mmarkman/koko

I've found that using DefinitelyTyped requires use of older (deprecated) packages. In response, I think it's a good idea to move towards using typings for the TS dependencies.
Any objections?

Sorry for the late response. This project may not be continued by me, because I don't have enough resource to contribute on this. Therefore, I'm willing to hand this project over to other contributors who are interested and would like to maintain. Please leave comments in #28 if interested.
Sorry again, and thanks.

I have no objections to it, I think it's a good idea and necessary for the future of koko. Do you have your fork building fine with those changes or are you still working on it?

it's building fine but not all features are working @garetmckinley

Alright. Is it something that you'll be able to tackle yourself or would you rather commit the changes to a branch in this repository so we could tag team some of the issues?

I need to clean up a lot of the source and then I'll merge it to a dev
branch on this repo
On Wed, Nov 9, 2016 at 17:41 Garet McKinley<EMAIL_ADDRESS>wrote:

Alright. Is it something that you'll be able to tackle yourself or would
you rather commit the changes to a branch in this repository so we could
tag team some of the issues?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/KokoIRC/koko/issues/26#issuecomment-259579267, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ADe-u-dmcmMF7HexeP3bSjG5Zul-ro6lks5q8nZigaJpZM4Kbz8Z
.

Then we can evaluate how the work can be split if necessary before merging
into master
On Wed, Nov 9, 2016 at 17:43 Max M<EMAIL_ADDRESS>wrote:

I need to clean up a lot of the source and then I'll merge it to a dev
branch on this repo
On Wed, Nov 9, 2016 at 17:41 Garet McKinley<EMAIL_ADDRESS>wrote:
Alright. Is it something that you'll be able to tackle yourself or would
you rather commit the changes to a branch in this repository so we could
tag team some of the issues?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/KokoIRC/koko/issues/26#issuecomment-259579267, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ADe-u-dmcmMF7HexeP3bSjG5Zul-ro6lks5q8nZigaJpZM4Kbz8Z
.


Add non-reactive circuit breaker implementation of Sentinel

This PR adds a spring-cloud-circuitbreaker-sentinel module as the integration module with Sentinel. And add non-reactive circuit breaker implementation of SentinelCircuitBreaker. The implementation follows the interfaces listed in common module.
The reactive part will be available as soon as the reactor adapter module of Sentinel is released (mid-March).
Please run the test cases to verify it.
Related to #12

Added the starter module for spring-cloud-circuitbreaker-sentinel. Plz review :)

I recently added documentation to the project, could you add docs for Sentinel as well?

I recently added documentation to the project, could you add docs for Sentinel as well?

Sure, I'll add the docs for Sentinel soon.

@ryanjbaxter document for Sentinel has been added, please check :)

I also recently enabled checkstyle rules for the project.  Could you pull in the latest changes from master and fix any checkstyle failures when building the project?

I also recently enabled checkstyle rules for the project. Could you pull in the latest changes from master and fix any checkstyle failures when building the project?

@ryanjbaxter I've fixed all the checkstyle failures. Please check.


If a failure message contains a ':' , it is cut off by the parser

E.g. Message in uiatutomator output is :
assertTrue failed, The desired time string is not properly formatted, given, 1:09:50:10
This gets parsed down to the xml file:
assertTrue failed, The desired time string is not properly formatted, given, 1
Possible solution is to add a limit to split method call in Converter.java:85 , so it would be like: String[] errorSeperated = error.split(":", 2);

thanks for letting me know. Try the updated version


Does not work with bun.sh

I have setup a minimal example with bun.sh:
const DraftLog = require('draftlog')
DraftLog(console)
var update = console.draft('Hi, my name is')
console.log('Something else')
new Promise(resolve => setTimeout(resolve, 1000)).then(() => {
  update('Hi, my name is Ivan!')
})

tried node index.cjs — it works
tried bun index.cjs — it simply outputs Hi, my name is Ivan! on another line:

Bun version: 1.1.8
OS: macos 14.5
terminal: iterm

I ended up switching to https://github.com/sindresorhus/log-update for now


[SPARK-17488][CORE] TakeAndOrder will OOM when the data is very large

What changes were proposed in this pull request?
In function Utils.takeOrdered, it will sort all data in memory, when the data is very large, It will OOM. This pr is to add external sorter for function takeOrdered.

Test build #65193 has started for PR 15041 at commit 07ad91b.

Test build #65193 has finished for PR 15041 at commit 07ad91b.

This patch fails to build.
This patch merges cleanly.
This patch adds no public classes.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/65193/
Test FAILed.

Merged build finished. Test FAILed.

Test build #65194 has started for PR 15041 at commit 8c483ad.

Test build #65194 has finished for PR 15041 at commit 8c483ad.

This patch fails MiMa tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/65194/
Test FAILed.

Test build #65197 has started for PR 15041 at commit 40d6395.

Test build #65197 has finished for PR 15041 at commit 40d6395.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/65197/
Test FAILed.

Merged build finished. Test FAILed.

Test build #65202 has started for PR 15041 at commit e7c6b16.

Test build #65202 has finished for PR 15041 at commit e7c6b16.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/65202/
Test PASSed.

Test build #65438 has started for PR 15041 at commit 44fc619.

Test build #65438 has finished for PR 15041 at commit 44fc619.

This patch fails MiMa tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/65438/
Test FAILed.

Test build #3271 has started for PR 15041 at commit 44fc619.

Test build #3271 has finished for PR 15041 at commit 44fc619.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

cc @cloud-fan @hvanhovell

Test build #65759 has started for PR 15041 at commit a1a5c4f.

Test build #65759 has finished for PR 15041 at commit a1a5c4f.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/65759/
Test FAILed.

Merged build finished. Test FAILed.

Test build #65771 has started for PR 15041 at commit 079f6b8.

Test build #65771 has finished for PR 15041 at commit 079f6b8.

This patch fails to build.
This patch merges cleanly.
This patch adds no public classes.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/65771/
Test FAILed.

Merged build finished. Test FAILed.

Test build #65772 has started for PR 15041 at commit dd82d5e.

Test build #65772 has finished for PR 15041 at commit dd82d5e.

This patch fails to build.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/65772/
Test FAILed.

Test build #65773 has started for PR 15041 at commit d1d0afe.

Test build #65773 has finished for PR 15041 at commit d1d0afe.

This patch fails to build.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/65773/
Test FAILed.

Test build #65780 has started for PR 15041 at commit 71f2e4a.

Test build #65780 has finished for PR 15041 at commit 71f2e4a.

This patch fails to build.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/65780/
Test FAILed.

Test build #65781 has started for PR 15041 at commit 64d7f22.

Test build #65781 has finished for PR 15041 at commit 64d7f22.

This patch fails Scala style tests.
This patch merges cleanly.
This patch adds no public classes.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/65781/
Test FAILed.

Merged build finished. Test FAILed.

Test build #65782 has started for PR 15041 at commit 09c68d6.

Test build #65782 has finished for PR 15041 at commit 09c68d6.

This patch fails to build.
This patch merges cleanly.
This patch adds no public classes.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/65782/
Test FAILed.

Merged build finished. Test FAILed.

Test build #65809 has started for PR 15041 at commit 09e0740.

Test build #65809 has finished for PR 15041 at commit 09e0740.

This patch fails to build.
This patch merges cleanly.
This patch adds no public classes.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/65809/
Test FAILed.

Merged build finished. Test FAILed.

Test build #65814 has started for PR 15041 at commit 4b29ded.

Test build #65814 has finished for PR 15041 at commit 4b29ded.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/65814/
Test PASSed.

Merged build finished. Test PASSed.

This is introducing a lot of complexity and I'm still not sure why we'd want to sort here. You do not in general want to sort something to get the result here.

In terms of data security, we can't get all data. Every sql should limit 10 million records. But sometimes it will OOM... My demand is to avoid OOM. @srowen Do you have any idea?

This takes a heavy sort-based path well before it would cause an OOM it seems though. This is a simple Utils method and I'm not sure it should be causing spills to disk. If the problem is that you're running out of memory taking 10M records to the driver, don't you just generally need more driver memory? you're going to be in memory eventually on the driver when the result is produced.

Driver is ok, but executor is running out of memory, this method is called by executor. Our maximum limit of memory is 15G.

Limiting 10 million records is really a corner case. A workaround is to save your sorted query result into a new table and read the new table with your large limit. I don't think this corner case worth introducing the complexity to open source code base.

Ok, I close this PR


🔥🔥🔥 [Form & Generator] The page break does not account for pages beyond the second page.

It is believed that this issue is occurring due to a mistake in the calculation of getDynamicTemplate.

https://github.com/pdfme/pdfme/blob/cf7e8b978f872ec0aea9c64e5f483716f0089cad/packages/common/src/helper.ts#L237
ref: TODO Write test

Related : https://github.com/pdfme/pdfme/issues/428

@hand-dot any luck with resolving this

@kiamesdavies struggling...

@hand-dot Damn I can imagine it breaking other stuffs as well. Took a quick look couple of months ago, and also saw that its a serious challenge.

I am also working on same issue from a week. trying to break tables page by page like one page in actual template will generate lets say 4 pages with data populated in tables and other widgets on same page shifted correctly . any other fields on other pages in actual template should start from new page in new template as well. I am working based to achieve this..

@hand-dot  Found one more issue related to vertical alignment of bodyStyles in table i think its not calculating correct cell height resulting in overflowing the text in cell

I am also working on same issue from a week. trying to break tables page by page like one page in actual template will generate lets say 4 pages with data populated in tables and other widgets on same page shifted correctly . any other fields on other pages in actual template should start from new page in new template as well. I am working based to achieve this..

Uploading pdfme-working-table.webm…
I achieved this result as shown in the video above as per my assumption of single page adjustments we will split and adjust position for each original page individually , and then other page schemas will start from new page always this is helpful as if user is building pdf with multiple pages they need that content on new page so we should start from new page for each actual page and then split and adjust dynamic content accordingly

Uploading pdfme-working-table.webm…

@vpn-dev

is this ok or you were trying something else?

Wow! Looks Okay, Can you submit PR?

@hand-dot do i have to create a fork and then raise a pr, because its showing me unauthorized to push any branch on pdfme main repo

Yes, create a fork 👍

https://github.com/pdfme/pdfme/pull/582


Fix Heading Color in Blog for Dark Mode Visibility

https://github.com/user-attachments/assets/f0058b64-fd05-4c22-86b3-4a77d5ed3a95
In dark mode, the blog heading color is not visible, making it difficult for users to read the titles.


Fix test_watermark

What does this PR do?
Moves watermark tests into HPU device. Extends test suite to cover both, list and tensor input types

@regisss please review


New check: Does METADATA category match what is in production?

To close out https://github.com/google/fonts/issues/720 I need a script/check that tells me, for each family that exists in both github and production, if the categories don't match.

Reassigning this to @felipesanches - its simply grabbing the developer api json -
https://developers.google.com/fonts/docs/developer_api - and then, if the family exists in that json, take it's category key's value, normalizing it against the possible values of METADATA.pb category keys, and then do a simple comparision :)

This could be a check, but it needs a api key. We could conceivably add an api key to the testrunner command line and make it a condition for the checks that need it.
Also, implementing this as a test in the googlefonts testsuite would not be much useful while the proper handling of families described in #1609 is sorted out.
So, this issue will be focused on implementing a standalone script.

This should be enough for that kind of task:
fontbakery metadata-vs-api YOUR_API_KEY_HERE ~/gfonts/ofl/ 2>&1|grep category

One problem though is that doing it involves downloading TTF remote files which slows down the task and you don't really need that in this case.
So, I forked that metadata-vs-api and deleted all code that's not related to the category metadata. With this I got a single bad font reported:

I'll review my code to make sure this is indeed correct before committing this new script.

Maybe both tasks could be accomodated in a single metadata-vs-api script. But then the code would need to be refactored because the current implementation is a bit too much complicated / hard to read right now. I think it definitely deserves a better/cleaner approach.

@davelab6  Please test using the script and reopen the issue if improvements are needed.


How can I make the step a leaf step of the flow?

I want to implement a scenario where a step becomes a leaf step of an if ( if, block of sequential-workflow-designer)  statement, and adding more steps to it is not allowed once it's placed in either the true or false branch,

Hello @kaleem-uet. Sorry I don't understand. Could you draw a mockup?

Hello @kaleem-uet. Sorry I don't understand. Could you draw a mockup?

Hello @kaleem-uet. Sorry I don't understand. Could you draw a mockup?

By leaf step I means.
The system will not allow the user to add more steps after it.

You can limit adding new steps to the branch in two ways:

you can add a proper validation (if (parentSequence.length > 1) ...),
configure the conditional placeholder, check this demo. In the demo you cannot put a new step after the "interrupting icon" step. In your case you probably should have a bit different logic. The conditional placeholder is the feature from the pro version.


Examples do NOT work in Chrome

Trying the autocomplete example http://nowjs.com/examples and it does not work in Chrome, getting the error below:
Uncaught TypeError: Object # has no method 'getGuess'

It should probably have now.getGuess($('#autocomplete').val()); wrapped inside a now.ready block.

Yep that appears to be the issue

Hey I was going to do a pull request and adjust it, but it appears that this is fixed, I'm going to close it.


Update carbon intensity data

Update carbon intensity data for cloud providers.
Remove AWS and Azure as they do not provide data.

"Remove AWS and Azure as they do not provide data."
Any ideas when this can be added back again? Specifically interested in Azure.

Hello, if you know a place where we could find the emissions we will be happy to add them as we did not find them.
The original values in CodeCarbon where made by running CodeCarbon on each regions, so it was not representing the real values.


fix(132): added and integrated back end functionality to recent activity table in dashboard

Added and integrated back-end functionality to the recent activity table in dashboard
Ticket #132
Description
The recent activity table now displays recent markings of interested or rejected from agencies as well as the grant that they marked
Screenshots / Demo Video

Testing
Testing was done by marking multiple grants as interested and rejected under multiple different agencies to test that any combo of agency, grant, and interest code would display correctly in the recent activity table which it did.
Checklist

[x] Provided ticket and description
[x] Your PR title contains the ISSUE ticket number e.g "86: ..."
[x] Provided screenshots/demo
[x] Provided testing information
[x] Provided adequate test coverage for all new code
[x] Added PR reviewers
[ ] Ensure at least 1 review before merging

There looks to be some merge conflicts in the dashboard and index files. Looking at the mockup, I believe the date for the recent activity section should read as "Today", "yesterday", "2 days ago" and so on. Also, I think there should only be 4 displayed (this could be fixed with limiting the query results).


Feature/support web

Add a focus trap only web platform to make it easier to build accessible modals on Web

Opened PR to wrong repo. Closing.


[fix][doc] Optimize URLs for CLI tools page

This PR:

Removes metadata since it should not be shown on the Reference site

Removes broker-tool because https://github.com/apache/pulsar/pull/18051#issuecomment-1280297019

Update URLs to https://pulsar.apache.org/reference to make it more generic and easier to maintain

[x] doc

@SignorMercurio
could you please review this PR from a technical perspective? Thank you!
cc @tisonkun @momo-jun @DaveDuggins @D-2-Ed

@SignorMercurio updated as you suggested, PTAL

@tisonkun

Update URLs to https://pulsar.apache.org/reference to make it more generic and easier to maintain

All commands in the green box are on the same page, so I set them all to https://pulsar.apache.org/reference (users can choose versions then) instead of individual links for lower maintenance costs and a temporary workaround for https://github.com/apache/pulsar/pull/18051#discussion_r998840842

Hi @tisonkun @SignorMercurio I‘ve updated based on your comments:

Remove reference-cli-bookkeeper.md and reference-cli-pulsar-daemon.md
Update URL

PTAL and feel free to approve, thanks.

Generally looks good. I suggest you leave the removing and moving reference cli docs task to @SignorMercurio so that he can simultaneously handle the process.
Otherwise, site build can fail and it takes more effort to recover these files and copy to the pulsar-site repo.
That is, do not remove:

reference-cli-bookkeeper.md
reference-cli-broker-tool.md
reference-cli-pulsar-daemon.md

in this pull request. I think @SignorMercurio will handle it later.

@tisonkun OK, I've updated this PR based on your comments, PTAL

Ping @momo-jun to review

ping @momo-jun


Add DOCTYPE and specify encoding

Since “…” is a non-ASCII character, the encoding of the HTML document should be specified.

Btw, the HTML could be simplified to:
<!DOCTYPE html>
<meta charset="utf-8">
<title>Redirecting…</title>
<script>
  location = '${process.env.REDIRECT_URL}?${querystring.stringify(data)}';
</script>

If you care about non-JS support:
<meta http-equiv="refresh" content="0;URL=${ url }">

Btw, the HTML could be simplified to:

Let's simplify it to that then, including the non JS support! Thanks for the PR 😊

Done.
Note that the code does not sanitize process.env.REDIRECT_URL in any way. My patch didn’t change that (that would have to be a separate patch anyway), but please consider doing so.

but please consider doing so.

Hmm, why/how? That's developer submitted, could that be exploited?

Just pointing it out! As a best practice, anything injected into an HTML document should be escaped based on the context. In this case it only matters if the developer (or someone else) sets a malicious environment value, so it’s not a big deal in this particular scenario. (Still, people might copy-paste this part of the code and use it in other scenarios etc. so it might be worth it to set a good example and sanitize it.)

Good call, would appreciate a follow-up PR!
I think with the latest changes we're now missing a closing bracket for the function?

Geez, how many typos could I make in a single PR?! Updated

I'll add CI so this doesn't happen anymore, thanks for going through the troubles!

Again, would appreciate a follow-up PR with the sanitization 😊


Run R2 Smoketest on INT-FWD

We now have this process automated. Just clone this repo and run this script https://github.com/nasa/opera-sds-int/blob/main/r2_smoketest/run_r2_smoketest_validation.sh
with the following parameters:
final_0.5.2 final_1.0.1 opera-int-rs-fwd 2.0.0
The naming convention of the gold files changed this release so the script needs to be modified a little bit

All tests passed


[flutter_tools] Don't stringify null values in EventPrinter

#74176 added a watcher event for the observatory even when it is null, but this nullable value is subsequently serialized into a string which makes it difficult for tools to interpret.
Fixes #76533
(Pending confirmation on the IntelliJ side in the linked issue that this is fine)

LGTM (from VS Code's perspective). I'll include a fix in the next Dart-Code release to not try to connect to it when it's null. Thanks!


debug_assert that Encode::byte_len is correct

cause the impls so far have been pretty incorrect.

We can't really do this cause AsyncRead isn't a buffer.


Economy Module

Now that I've opened my big mouth and have said everything is up and running smoothly, the boss (my wife) wants to implement a working economy module. I've had no luck researching the various "modules" out there as far as they would relate to Halcyon. (Hell, even the OpenSim stuff was rather pitiful) I know a working economy is possible, InWorldz is doing it. We have a working LandTool.php (or rather a LandTool.aspx) that allows us to sell and buy land. In the DB I can set avatar's balances and avatars can exchange funds. But of course there is no automation to any of this.

Sorry for the delay. I'm not sure why I'm not getting notices for issue updates here, but I plan to correct that.
As you've noticed, Halcyon does have a working money module, but you're missing the external parts to add funds to accounts. Right now, we do this through the website for I'z purchases which inserts the proper rows into the economy database. The table is a pretty simple ledger format, but it is undocumented. What functionality are you looking for? Maybe we can find a way to get a more simple interface written

We're looking at our users being able to visit a secure page on the website where they can enter the amount of our currency they want to purchase. That transaction would be handled by PayPal. Once cleared the amount they purchased would be added to the economy_totals table in the database. With these funds they would be able to purchase land, goods and services from other residents. We'd also like to set up a monthly/weekly stipend system as well for paid "VIP" members.

Working on our economy and I'm running into an issue. When I pay an avatar the funds don't subtract from my total or add to the other avatar's total. In the DB the transaction registers in the table economy_transaction, but economy_totals is unaffected. Thanks to @vinhold we're making progress on our economy setup. But until I can figure out what's up with the economy_totals table this issue really brings things to a halt.

Are the avatars involved located on different regions?  There is a known issue where if somebody else pays you while on another region, the viewer's balance will not adjust until something else causes your balance to update (such as clicking your balance or receiving payment from someone on the same region)

Nope, happens even when the avatars are standing right next to each other.

Okay, I actually misread your prior post anyways.  I've got a cold right now, so my head isn't quite screwed on correctly :-/

I feel ya, I'm in the same boat. slept almost 20 some hours to get to a semi-functional state.

The value in economy_totals is just a cached value to avoid having to calculate the actual balance.  It is optional. InWorldz did not add that table for many years.  Transactions do not create any entries there; that entry is created when a viewer requests the current balance (typically done at login time).  You may be able to force a refresh (depending on the viewer) by clicking on the balance at the top of the viewer screen.  Or just relog.
See AvatarCurrency.cs for that code, here.

There is a trigger in the database for all transactions that updates the balance.
https://github.com/InWorldz/halcyon/blob/master/bin/inworldz-core-base.sql#L358

Oh good point.  If it's missing, it's also summed and the new record created by the getCurrentBalance() implementation, but I mistakenly thought that the issue was that the economy_totals entry for the user was not getting created here at all here.
Rereading, the report said "unaffected", so presumably that means already existing in the table (but not getting updated).  In that case, it's clearly the trigger @ddaeschler mentioned above is not present on your db. Give that a try!

Ok bear with me, SQL is not my strong point. how would I go about checking for that trigger in my DB and how would I go about adding it if it is not?

I haven't written triggers either, but they are bits of stored MySQL code that run when another event happens. In this case, the event is an INSERT happening on economy_transaction.  And in this case, it's an AFTER trigger, so any time a record is inserted to economy_transaction, after it completes successfully, this stored SQL code will run.  I believe it's delimited with ;; because there's a ; inside the BEGIN END.
So I believe it's just the code @ddaeschler linked to above, without the comments... I think if you paste this into MySQL WB and run it, you should be fine:
DELIMITER ;;
CREATE TRIGGER `upd_total_on_new_trans`
AFTER INSERT ON `economy_transaction`
FOR EACH ROW
BEGIN
  IF (SELECT COUNT(*) FROM economy_totals WHERE user_id = NEW.destAvatarId) = 0 THEN
		INSERT IGNORE INTO economy_totals SELECT NEW.destAvatarId, SUM(transactionAmount) FROM economy_transaction WHERE destAvatarID = NEW.destAvatarId;
  ELSE
		UPDATE economy_totals SET total = total + NEW.transactionAmount WHERE user_id = NEW.destAvatarId;
  END IF;
END ;;

@vinhold to the rescue: He's been replying to me in email with several issues we've been working on.

This is the DB Trigger. Run this in the MySQL Workbench for the database:
-- Trigger creation for economy processing. May require setting up a Routine process to make it.
DELIMITER $$
CREATE DEFINER=`root`@`localhost` TRIGGER `mydata`.`upd_total_on_new_trans`
AFTER INSERT ON `mydata`.`economy_transaction` -- This line shows as a syntax error.
FOR EACH ROW
BEGIN
  IF (SELECT COUNT(*) FROM economy_totals WHERE user_id = NEW.destAvatarId) = 0 THEN
  INSERT IGNORE INTO economy_totals SELECT NEW.destAvatarId, SUM(transactionAmount) FROM economy_transaction WHERE destAvatarID = NEW.destAvatarId;
  ELSE
  UPDATE economy_totals SET total = total + NEW.transactionAmount WHERE user_id = NEW.destAvatarId;
  END IF;
END$$
DELIMITER ;

Bob Curtice

Got it working now. Avatars are paying each other. Complete with the Kaching sound. ;-)

Note that the trigger mentioned above by Sonja, came from the DB Schema for the MySQL DB I got from David when I set up my grid. I have maintained it for all changes added to the DB since. :)

Looks like we can close this one now?

Not quite yet, still ironing out some kinks.  ;-)

Closing this issue for now. We've got a working system in the works, thanks to @Vinhold. The finished version will be released for public consumption some time in the future.