Trying to expand the elipse

Hey,
I am trying to create 2525C SID S-G-UCFRMS icon, which consist of 3 other icons:

icn["GR.IC.FIELD ARTILLERY"],
icn["GR.M1.MULTIPLE ROCKET LAUNCHER"],
icn["GR.IC.ARMOUR"]

Since the icon is not being genrated well (the point is too big and the double arrow is outside the elipse), I am trying to expand the elipse by giving it more space in upper and bottom so i will then use the "translate" to push the arrow back inside the elipse. but unfortunatly I am not succedding with it..
This is the SVG path who create the elipse:
path d="M125,80 C150,80 150,120 125,120 L75,120 C50,120 50,80 75,80 Z"
Any idea which value should I give here?

If you look in the dev folder, there is a SVG called octagon.svg, this can be opened in incscape and then you can draw paths and extract the path from the generated xml.
I would guess that you would like to have something like:
m 125,75 c 25,0 25,50 0,50 H 75 C 50,125 50,75 75,75 Z

Keep in mind that this change of icn["GR.IC.ARMOUR"] will change ALL armour icons.
Another solution would be to first make your own override symbols, them sort of icn["YTK123.ARMOUR"= ... and then override the symbol code as described in the documentation.
https://github.com/spatialillusions/milsymbol/tree/master/docs#msaddlabeloverrideslabelfunction-type


Cleanup validation and unify execute Measurement/Phase

What type of PR is this?
/kind cleanup

What this PR does / why we need it:
Removes unnecessary checks, adds validation for Measurements and unifies Measurement execute with Phase execute.
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:
Does this PR introduce a user-facing change?:

Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:

/assign @Argh4k

/LGTM

/assign @mborsz


AssertationError: Shortcodes disappear from the 4th post from your feed

Describe the bug
After several attempts with one account and several unsubscriptions among others, I deduced that the shortcodes are not retrieved at the 4th post of your feed.
Indeed, by using this account via the following command instaloader -l <my_account> -p ####### :feed, only 3 posts are recovered before failing with the error described later.
By using an older account, it seems that the error does not recur.
To Reproduce
Steps to reproduce the behavior:

(Maybe creating a new account is needed to reproduce the bug)
Just launch instaloader -l <your_account> :feed

Expected behavior
The program connects successfully and retrieves 3 posts from your feed before failing with the following error.
Error messages and tracebacks
Logged in as <my_account>.
Retrieving pictures from your feed...
[  1] <some_account> :feed/2019-12-13_21-08-24_UTC_1.jpg exists :feed/2019-12-13_21-08-24_UTC_2.jpg exists [...] unchanged json
[  2] <some_account2> :feed/2019-12-13_20-13-13_UTC.jpg exists [...] unchanged json
[  3] <some_account3> :feed/2019-12-12_11-57-49_UTC.jpg [...] json
Traceback (most recent call last):
  File "/usr/bin/instaloader", line 11, in <module>
    load_entry_point('instaloader==4.2.10', 'console_scripts', 'instaloader')()
  File "/usr/lib/python3.7/site-packages/instaloader/__main__.py", line 414, in main
    storyitem_filter_str=args.storyitem_filter)
  File "/usr/lib/python3.7/site-packages/instaloader/__main__.py", line 151, in _main
    post_filter=post_filter)
  File "/usr/lib/python3.7/site-packages/instaloader/instaloader.py", line 49, in call
    return func(instaloader, *args, **kwargs)
  File "/usr/lib/python3.7/site-packages/instaloader/instaloader.py", line 706, in download_feed_posts
    for post in self.get_feed_posts():
  File "/usr/lib/python3.7/site-packages/instaloader/instaloader.py", line 675, in get_feed_posts
    yield from (Post(self.context, edge["node"]) for edge in feed["edges"]
  File "/usr/lib/python3.7/site-packages/instaloader/instaloader.py", line 676, in <genexpr>
    if not edge["node"]["__typename"] == "GraphSuggestedUserFeedUnit")
  File "/usr/lib/python3.7/site-packages/instaloader/structures.py", line 66, in __init__
    assert 'shortcode' in node or 'code' in node
AssertionError

Version
Instaloader: 4.2.10 (installed via pip install instaloader)
Python: 3.7
OS: 5.3.7-2-MANJARO x86_64 GNU/Linux
Additional context
The account concerned was created on December 14, 2019.
It is possible that the problem is related to the issue #467. The context being different and the link between the error not obvious, I preferred to create a new issue.

Issue #467 (Duplicate of #449) has been closed and appears to be resolved.
However, the error reported here still occurs with the same account.

Suspected link to exit #503.

Just wanted to say, that I'm having the same issue on multiple occasions on multiple accounts.

We fixed this with dc458a3f3c8f7d174c5c5596508c4f57685a7181 which will be included in the upcoming version, Instaloader 4.4. To already try it out, upgrade Instaloader with:
pip3 install --upgrade<EMAIL_ADDRESS>

Effectively, I can now download more than 3 photos from the feed. Thanks for the correction, I close the issue.


docs: transition v4 to v5

Motivation and Resolution
Solve #539  and #564
Add in the guides a page to explain where users have to change their code using Starknet.js v4.
Could you comment if you identify other subjects?
Usage related changes
Development related changes
Checklist:

[ ] Performed a self-review of the code
[ ] Rebased to the last commit of the target branch (or merged it into my branch)
[ ] Linked the issues which this PR resolves
[ ] Documented the changes in code (API docs will be generated automatically)
[ ] Updated the tests
[ ] All tests are passing

@penovicp if you don't have any more suggestions we can merge this!


ci: compile choco openssl with --x86 for 32-bits

related to: https://github.com/baresip/re/pull/780
Build openssl for either 32-bit or 64-bit intel.
no solution for ARM yet ...

Nice, thanks!


Use VSTS config from buildtools tempaltes

cc @chcosta @ryanbrandenburg

Is latest in the branch always going to be ok, or do you have a plan to version this?

Is latest in the branch always going to be ok, or do you have a plan to version this?

Yeah, that was one of my concerns too. We need to be really careful about this since its basically a 'floating' dependency. Do you have any ideas on how to reduce risk here?
My thinking is to keep branch names aligned. This repo (and almost all aspnet repos) have dev, release/2.1, release/2.0 etc, and so does aspnet/BuildTools.

I don't have any ideas at the moment (I haven't put any thought into it).  Aligning branch names may work in the short term but seems like such a weak dependency that it's likely to become problematic.  This is definitely something that deserves some thought as you're blazing the trail here.

Yeah, let's think about this more as we move forward. I'm not too concerned about it because we have been able to use almost identical .appveyor.yml and .travis.yml files. As long as we preserve the template "API", I think we will be ok.


Retry if AWS request fails

Sometimes AWS has a server error: HTTPError: Response code 503 (Service Unavailable). If this is the case, maybe retry the request.

This may be built-in with maxRetries... see http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Config.html#constructor-property


Signin rhp

Details
Implementation to send sign in to RHP
Fixed Issues
$ https://github.com/Expensify/App/issues/20558
PROPOSAL: https://github.com/Expensify/App/issues/20558#issuecomment-1593859489
Tests

Open a public room as unauthenticated user (i.e. https://staging.new.expensify.com/r/8813851443373010)

Click on sign-in

Click on the back button, should see the public room instead of closing the app

Enter sign-in in RHP
//Validate claim

Enter a new email and enters the validation code

Verify the app loads with the authenticated data

Open in an incognito mode, sign in with another account and post something in the public room

Verify the message appears in the public room for the first user that claimed the anonymous account

Repeat the process again from step 4, but in step 5 enter the email of an existing account

Offline tests
N/A anonymous users only work online
QA Steps
Same as test steps
PR Author Checklist

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Screenshots/Videos

Web
https://github.com/Expensify/App/assets/13544910/ede9af0d-1d6f-4b97-9e3a-daaee155c7d8

Mobile Web - Chrome
https://github.com/Expensify/App/assets/13544910/3ca3964a-10b6-44fe-b123-ee49bac257ad

Mobile Web - Safari
https://github.com/Expensify/App/assets/13544910/4b30a6ee-23f5-4123-b641-da4fd6e8d517

Desktop
N/A Public rooms are not supported in desktop

iOS
https://github.com/Expensify/App/assets/13544910/8267612c-1f04-4036-8c47-486905228026

Android
https://github.com/Expensify/App/assets/13544910/a4473f53-9e97-435f-9de1-aaebcd24dc94

@daordonez11 @mollfpr for the test steps, also add the case to verify that the logged in user can send a message and other users receive it without refreshing the browser (you can use the same steps from here).

Screen.Recording.2023-08-07.at.23.16.25.mov
@daordonez11 Could you confirm if this issue already notice before and will be fixed later?

@marcochavezf  what do you think of that issue, I have 2 ideas.

Send to home if user is already logged in (dismissModal)
Use something like authenticated views so Hmmmmm not found is shown.

I think 1 is easier but users would still see for a fraction the view. Which one do you think we should use?
Thanks for the report @mollfpr I did see it once I think it can also be reproduced by pressing back button.

Screen.Recording.2023-08-07.at.23.16.25.mov
@daordonez11 Could you confirm if this issue already notice before and will be fixed later?

@marcochavezf what do you think of that issue, I have 2 ideas.

Send to home if user is already logged in (dismissModal)
Use something like authenticated views so Hmmmmm not found is shown.

I think 1 is easier but users would still see for a fraction the view. Which one do you think we should use?
Thanks for the report @mollfpr I did see it once I think it can also be reproduced by pressing back button.

My first question is, why the validation code is set after refreshing the page? I think it's fine to show the sign-in modal when the user enters the URL, but it's weird that the form is displaying the validation code and trying to submit it

So basically this occurs because the state of the component is mantained, since this was originally an unprotected view the user does not see it but its just the "final" state of the page. We could use something like clearLocalSignInData before leaving the page but tbh I don't think showing the signin should be enabled when you are already logged in. Me recommendation would be to auto dismiss the modal if the view is accessed via url and the user is already logged in.
cc @mollfpr @marcochavezf

Me recommendation would be to auto dismiss the modal if the view is accessed via url and the user is already logged in.

@daordonez11 @marcochavezf I agree with this.

Me recommendation would be to auto dismiss the modal if the view is accessed via url and the user is already logged in.

@daordonez11 @marcochavezf I agree with this.

Sounds good, let's go with that solution!

Ok guys had to implement a last detail in order for notifications and new scenarios to work. Final commit includes that implementation. Currently uploading videso with new implementation. So ready again for review with new scenario @mollfpr!
cc @marcochavezf

Reviewer Checklist

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

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

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

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

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

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

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

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

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

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

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

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

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

Screenshots/Videos

Web

Mobile Web - Chrome

Mobile Web - Safari

Desktop

iOS

Android

Hey @mollfpr  thanks for the update and hope you get better! I'll check the NAB's and the error tomorrow, I definitely need to make sure rhp is not shown if you are already logged in, probably with more than one check. I'll let you guys know when it's ready.
cc @marcochavezf

Thanks for the report @mollfpr the issue was happening because navigation was not ready at that point so dismissModal did nothing. Just uploaded a commit with the NABs and the fix with the navigation promise. The easy way of replicating was just opening a new tab with the sign in modal url 😂.
cc @marcochavezf

PS: Solved conflict that appeared today!
cc @marcochavezf @mollfpr

Thanks, @daordonez11. Seems looks good now. I'll be finishing the records in an hour.

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by https://github.com/marcochavezf in version: 1.3.56-0 🚀

platform
result

🤖 android 🤖
failure ❌

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/roryabraham in version: 1.3.56-24 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅

Hi 👋🏼
The SignInPageLayout was dependent upon isSmallScreenWidth for it's layout to look correct. However, this displayed the SignInPageLayout in the RHP. The intention was for it to look and behave how it would in a small screen, but the isSmallScreenWidth was still true on wide screens.
We addressed this bug in https://github.com/Expensify/App/issues/28025

Hello
You have forgot to take out extra padding for RHP, which caused https://github.com/Expensify/App/issues/31445.


fix: use proper podspec file name in package.json

The podspec file is called CapacitorDatepick.podspec, but in package.json appears as CapacitorPick.podspec, so the real file wont be published and people won't be able to install
closes https://github.com/stewwan/capacitor-datepick/issues/1

Thanks @jcesarmobile


Instructor being able to carry on with the chat after tool calls

Is your feature request related to a problem? Please describe.
with parallel tools I can have the tool call schema returned back from the instructor, and call the tools with something like [fc.execute() for fc in resp].
however due to the absence of resp.choice[0].message and tool id, I cannot carry on with the tool calls to eventually get the "final response model".
Describe the solution you'd like
For parallel tool calls return the response.choices[0].message, and perhaps list[Tuple[str, BaseModel]] where the str represents the too_call_id.
This roughly assembles what I mean - https://github.com/jxnl/instructor/compare/main...jingkaihe:instructor:main?expand=1#diff-59f88d98b085181dcc486f53a31d55bee047d87d8b61f176f4f172b5d3d338b4L36-R54
That being said it is not ideal to break the convention of instructor always returning the response model.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

no longer required since i realise I can simply follow up via dump the tool call results as dyndantic model again back to the chat.


support edit jdk file path

Codecov Report

Merging #111 (bcfe425) into main (1c01288) will decrease coverage by 0.25%.
The diff coverage is 0.00%.

@@             Coverage Diff              @@
##               main     #111      +/-   ##
============================================
- Coverage     25.56%   25.31%   -0.26%
  Complexity      147      147
============================================
  Files            77       77
  Lines          1197     1209      +12
  Branches         71       71
============================================
  Hits            306      306
- Misses          875      887      +12
  Partials         16       16

Flag
Coverage Δ

unittests
25.31% <0.00%> (-0.26%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

...om/github/shoothzj/dev/module/config/Settings.java
0.00% <0.00%> (ø)

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 1c01288...bcfe425. Read the comment docs.


Decryption issue?

I received a keybase-gpg encoded message from a friend:
-----BEGIN PGP MESSAGE-----
Version: Keybase OpenPGP v2.0.51
Comment: https://keybase.io/crypto
...
-----END PGP MESSAGE-----

I saved the entire blob into a file and used keybase pgp decrypt -i to decrypt it:
seth@schroeder:~$ keybase pgp decrypt -i rory.txt
▶ ERROR decrypt error: unable to find a PGP decryption key for this message

However: gpg -d < rory.txt worked fine.
What am I doing wrong?

Could you please give us the output of gpg --version, just in case?

sorry - I should've included it:
seth@schroeder:~$ gpg --version
gpg (GnuPG) 1.4.20
Copyright (C) 2015 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Home: ~/.gnupg
Supported algorithms:
Pubkey: RSA, RSA-E, RSA-S, ELG-E, DSA
Cipher: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH,
        CAMELLIA128, CAMELLIA192, CAMELLIA256
Hash: MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Compression: Uncompressed, ZIP, ZLIB, BZIP2

Hmm, I know 2.1's given us trouble before, but I don't remember any problems with 1.4. I'll have to stare at that error path for a little while...

The gpg install came from the GPGTools suite for Mac, if it matters.

So, I just tried again, and keybase is prompting me for the passphrase but isn't accepting what I use for gpg. Is there a different one to use?

Seth, can you send us gpg --list-packets < rory.txt? My guess is you don't have this particular GPG key registered with keybase, so keybase pgp decrypt can't decrypt rory.txt.

@maxtaco - sure. But I think the key signatures are the same (see second code block):
seth@schroeder:~$ gpg --list-packets < rory.txt
:pubkey enc packet: version 3, algo 1, keyid 22CE58DD73A4D513
	data: [4094 bits]

You need a passphrase to unlock the secret key for
user: "Seth <redacted>"
4096-bit RSA key, ID 73A4D513, created 2011-04-05 (main key ID B37C37DB)

:pubkey enc packet: version 3, algo 1, keyid 5A008680BDC0DD5D
	data: [2047 bits]
:encrypted data packet:
	length: 432
	mdc_method: 2
gpg: encrypted with 2048-bit RSA key, ID BDC0DD5D, created 2016-02-15
      "Rory <redacted>"
gpg: encrypted with 4096-bit RSA key, ID 73A4D513, created 2011-04-05
      "Seth <redacted>"
:compressed packet: algo=2
:onepass_sig packet: keyid 0736305E5E51F46F
	version 3, sigclass 0x00, digest 10, pubkey 1, last=1
:literal data packet:
	mode u (75), created<PHONE_NUMBER>, name="",
	raw data: 66 bytes
:signature packet: algo 1, keyid 0736305E5E51F46F
	version 4, created<PHONE_NUMBER>, md5len 0, sigclass 0x00
	digest algo 10, begin of digest 4d c8
	hashed subpkt 2 len 4 (sig created 2016-02-15)
	subpkt 16 len 8 (issuer key ID 0736305E5E51F46F)
	data: [2048 bits]

seth@schroeder:~$ keybase pgp select
▶ ERROR You already have a PGP key registered (AEE8 800B 11E4 C46A 25C4 8E83 8D86 D63C B37C 37DB)
Specify the `--multi` flag to override this check
seth@schroeder:~$ gpg -d rory.txt

You need a passphrase to unlock the secret key for
user: "Seth <redacted>"
4096-bit RSA key, ID 73A4D513, created 2011-04-05 (main key ID B37C37DB)

So I  think my theory was right. You can import your second PGP into your local keybase keyring with keybase pgp select --multi

That didn't seem to work:
seth@schroeder:~$ keybase pgp select --multi
#    Algo    Key Id             Created   UserId
=    ====    ======             =======   ======
1    4096R   8D86D63CB37C37DB             Seth <seth@redacted>
2    4096R   0DB933422B87558D             Seth <seth@otherredacted>
Choose a key: 1
You've already selected this public key for use on Keybase. Would you like to update it on Keybase? [Y/n] y
▶ INFO Posting update for key aee8800b11e4c46a25c48e838d86d63cb37c37db.
▶ INFO Update succeeded for key aee8800b11e4c46a25c48e838d86d63cb37c37db.
seth@schroeder:~$ keybase pgp decrypt -i rory.txt
▶ ERROR decrypt error: unable to find a PGP decryption key for this message

and what if you try to select key #2?
On Mon, Feb 15, 2016 at 9:21 PM, Seth Bromberger<EMAIL_ADDRESS>wrote:

That didn't seem to work:
seth@schroeder:~$ keybase pgp select --multi
Algo    Key Id             Created   UserId
=    ====    ======             =======   ======
1    4096R   8D86D63CB37C37DB             Seth seth@redacted
2    4096R   0DB933422B87558D             Seth seth@otherredacted
Choose a key: 1
You've already selected this public key for use on Keybase. Would you like to update it on Keybase? [Y/n] y
▶ INFO Posting update for key aee8800b11e4c46a25c48e838d86d63cb37c37db.
▶ INFO Update succeeded for key aee8800b11e4c46a25c48e838d86d63cb37c37db.
seth@schroeder:~$ keybase pgp decrypt -i rory.txt
▶ ERROR decrypt error: unable to find a PGP decryption key for this message
—
Reply to this email directly or view it on GitHub
https://github.com/keybase/client/issues/2032#issuecomment-184477354.

Key #2 is for work and has never been used by Keybase, which is where my friend got the encryption. Nevertheless:
seth@schroeder:~$ keybase pgp select --multi
#    Algo    Key Id             Created   UserId
=    ====    ======             =======   ======
1    4096R   8D86D63CB37C37DB             Seth Bromberger <seth@redacted>
2    4096R   0DB933422B87558D             Seth Bromberger <seth@otherredacted>
Choose a key: 2
▶ INFO Bundle unlocked: 0DB933422B87558D
▶ INFO Generated new PGP key:
▶ INFO   user: Seth Bromberger <seth@otherredacted>
▶ INFO   4096-bit RSA key, ID 0DB933422B87558D, created 2012-04-20
seth@schroeder:~$ keybase pgp decrypt -i rory.txt
▶ ERROR decrypt error: unable to find a PGP decryption key for this message

Ah, you're right that second key was a red herring, sorry about that.
One last favor, can you paste the output of:
gpg --export -a 8D86D63CB37C37DB
Weirdly, the key you have on keybase has a subkey equal to the primary, which should never happen...  I wonder how that corrupt key showed up on our server.. Thanks!

(This outputs your public key only of course, and won't reveal any private key material)

No worries. I really appreciate your time on this:
seth@schroeder:~$ gpg --export -a 8D86D63CB37C37DB
-----BEGIN PGP PUBLIC KEY BLOCK-----

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
AqX21uWThgcxCSksyRLVUvHE0A==
=3UJY
-----END PGP PUBLIC KEY BLOCK-----

My gpg keychain shows a subkey of 73A4D513.

Right, but weirdly, this output you just showed me shows no such subkey.   Try gpg --export -a 8D86D63CB37C37DB | gpg --list-packets | grep 73A4D513. On that key you sent me, nice dice.  Very weird.

Ack, I take it back!  One scond...

seth@schroeder:~$ gpg --export -a 8D86D63CB37C37DB | gpg --list-packets | grep 73A4D513
	keyid: 22CE58DD73A4D513

Ok, well sorry to lead you down two dead ends.  My current guess is that it's a bug in the Go OpenPGP crypto library (wouldn't be the first).  However, this sort of thing is hard for me to debug since I don't have your private key. If I was going to start debugging it (no promises I can get to it right away), I'd maybe focus a little bit on what happens when you have a subkey with flags 2E, which is unusual.  Usually people use RSA keys for encryption or signing, but not both.  I'll make a ticket for it, but this seems like a pretty a obscure bug, so it might not be top priority.  Thanks for all of your patience and feedback and help!

...ok, so what's your recommended course of action? Revoke and create new keys? (If so, what parameters?)

I would recommend just using gpg for now, what do you think?

I don't want to recommend trying a new key, because I'm slightly concerned it won't solve the problem!

Yeah, I can certainly do that. When you say "Usually people use RSA keys for encryption or signing, but not both", do you mean that people usually create two subkeys, one for encryption and one for signing?

Yes, or they use the primary key for signing, and the subkey for encryption.  In fact, I don't believe GPG gives you the option to use the same subkey for both as of 2.0.x.
(BTW the flags are:
 key_flags :
    certify_keys : 0x1
    sign_data : 0x2
    encrypt_comm : 0x4
    encrypt_storage : 0x8
    private_split : 0x10
    auth : 0x20
    shared : 0x80

So your subkey is sign_data | encrypt_comm | encrypt_storage | auth

For instance:
 gpg --edit-key<EMAIL_ADDRESS>gpg (GnuPG/MacGPG2) 2.0.28; Copyright (C) 2015 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Secret key is available.

pub  1024R/8DEF4F9B  created: 2016-02-16  expires: never       usage: SC
                     trust: ultimate      validity: ultimate
sub  1024R/09FB5927  created: 2016-02-16  expires: never       usage: E
[ultimate] (1). Test 7 Key<EMAIL_ADDRESS>
gpg> addkey
This key is not protected.
Please select what kind of key you want:
   (3) DSA (sign only)
   (4) RSA (sign only)
   (5) Elgamal (encrypt only)
   (6) RSA (encrypt only)

OK, but creating a key within the gpg keychain app creates keys with exactly the same properties I have now.

also, looking at keys that I'm tracking, Chris Coyne's key capabilities are the same as mine.

...as are yours :)

Hah, right you are! We generated these keys a while ago.  Should update...
So now I don't have any great theories unfortunately.  PGP decryption works for me...

OK, I stopped / killed all keybase processes and restarted. Now when I do a keybase pgp decrypt -i rory.txt, I get the following dialog (with the depicted error message when I enter my passphrase for the key):

I believe it wants your keybase passphrase, can you try that?

OK, sorry for the dumb question - what's my keybase passphrase? Is that the same thing I enter to sign in to https://keybase.io?

Yes.  Our philosophy is "one passphrase for all of keybase."  So when you import your PGP private key into your local keybase keychain, it's the same passphrase as when you log into the web site, etc.

ok, that got rid of the dialog box but I'm still getting ▶ ERROR decrypt error: unable to find a PGP decryption key for this message. Oh well - thanks again for all the help.

I have the same issue after upgrading keybase to version 1.0.14-1. This works for me:
$ gpg --decrypt < encrypted_file

but this gives an error:
$ keybase pgp decrypt -i encrypted_file
▶ ERROR decrypt error: unable to find a PGP decryption key for this message

I have selected my only PGP key with keybase:
$ keybase pgp select
▶ ERROR You already have a PGP key registered (***<censored>***)
Specify the `--multi` flag to override this check

Try:
keybase pgp select --only-import

@maxtaco - that worked for me, anyway! Thanks. Should I close this or wait for @valo to confirm?

I had the same issue, and keybase pgp select --only-import worked for me too. I will note that I had multiple encryption subkeys.

When I try keybase pgp select --only-import I get:

▶ ERROR ImportKey error: GPG error: exit status 2

keybase version 1.0.23-20170522181119+8a8aea0
gpg (GnuPG) 2.1.21
If I try using gpg2 directly on the command line, it works.

@westonruter  can you do keybase log send?

@maxtaco log id 961283e4af1a8b623747071c.

thanks, cc to @zapu  for the triage

hello @westonruter , thanks for using Keybase!
importing seems to fail with:
gpg: key 92E87D4A08202E450FD03462DC17BE6AE6CCB271: error receiving key from agent: End of file - skipped
gpg: key 0369DBEA635050295553C3A92C7256B4A75F9F86: error receiving key from agent: End of file - skipped
gpg: ATENCIÓN: no se ha exportado nada

would you mind describing your setup so I can see what we are compatible with and what might be causing problems? Thanks

@zapu I'm on OSX 10.12.5. I installed Keybase via the OSX installer. Keybase PGP has worked up until recently, and the only thing I think changed was a Keybase app update. When Keybase stopped working, I installed gpg2 via Homebrew yesterday, and I can use gpg2 directly with the keys I have in ~/gnupg/pubring.gpg.

Can you show of which gpg2 ?
Also can you verify that they keys would actually export with gpg2 invoked manually? Carefully, without anyone looking or anything sniffing, try gpg2 --export-secret-key -a (careful, your secret key will be printed out if that succeeds).
Thank you and sorry for the inconvenience.

Yes:
$ which gpg2
/usr/local/bin/gpg2

$ readlink $(which gpg2)
../Cellar/gnupg/2.1.21/bin/gpg2

$ gpg2 --export-secret-key -a
-----BEGIN PGP PRIVATE KEY BLOCK-----
...

Hello,
I am facing a similar issue, but I could not solve it even with the help of above thread
your log ID : 591bbb04059392d8e9db9b1c
keybase pgp select --only-import does not work for me and I am on version
keybase --version
keybase version 4.6.0-20191010081014+134c2d892b
I have the public and private key but I seem to get an error
terraform output password | base64 --decode | keybase pgp decrypt
▶ ERROR decrypt error: unable to find a PGP decryption key for this message
I have also posted a detailed version on https://stackoverflow.com/questions/53513795/pgp-key-in-terraform-for-aws-iam-user-login-profile/58347607#58347607
TIA

Passphrase Welcome2KeppelLand
-----BEGIN PGP PRIVATE KEY BLOCK-----
Version: Keybase OpenPGP v2.0.76
Comment: https://keybase.io/crypto
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
=LN7p
-----END PGP PRIVATE KEY BLOCK-----
-----BEGIN PGP MESSAGE-----
Version: BCPG v1.58
hIwDMjIbfLbPrAQBA/9QsVqgQYFuy0TID1iBwbS+aisj92j97+CZOIUTtD0rUk77
Vo00+J/ZeHJdqRoXf1ycD83OkunBELkaox+0SSeoEL8nou4mfrY+gipRPMvCkanj
34Z7LM33bM1lhdsJb6uDcgUQmaUhU4jE1TG0/vNaYxuomYP3U2i78xBwJMxLT9LA
4gGJcPlamCdr5vKw/j0Tl6XH8zJsvGTcv3hyUtmXf0J1GtfR/HZNZRZtJEL5VqPK
jps0fXCTbWGHL75N65IClKd/3D8TV51JTOQounfrlLLuGl5bymYFgWT0/ovn2bQw
MvJk3pQKy6pdIN8KpZJD8IX36Vmf2pRXcs8ckNqXOcBOdx+NrOHLo1FbUO5CTyWv
tPHYMHDNqZT4PgOJHb/6cM/LtVgPyKsovk52/pQgGz8JZlmNvWOnJ9YaO8HtclRE
rvSKbu4RlAe05XGJ/LZbVbFXAWuNgaNNqUHAo1p+RRuYR0BgSwJ8XhRVbgtDNsX3
mJUdz0+hRxZafgoZBI18RGgfCnNiOgayaCw3FiysXJ5qKmitG9WOZPdMMDQKwmWA
xz1khKklirJUh0ysNn9h9ltqM5xKS8XoW9anLd0WhIwRsv/AeHkHu9xGnuA20wIf
+JtImfOoYCfQ1WXctK4B9lG+3VZ3PS88BFaq/UTsZYpkIbsQEF7aDjkGWXV910mY
TtLRiOHTCK4qUp5tsqmGMa3RrAX/VAoA12bCrGmbtDcP3pc=
=jgWB
-----END PGP MESSAGE-----
Can anyone help me please? I am having an interview, they sent me a txt file like this, what will I do next? thank you


Reporting Unbound DNS not working anymore since OPNsense 23.7.9

after restart it works some hours and then it stops
this has already happened several times in different versions

duplicate https://github.com/opnsense/core/issues/7049


Display which server/database fails when running against multiple databases

Fixed in https://github.com/marianogappa/sql/commit/fdba1c8737a97b29988c997e280337b64ed04914. Thanks!


Fix/export pull e2e

Description of changes

Issue #, if available

Description of how you validated changes
Checklist

[ ] PR description included
[ ] yarn test passes
[ ] Tests are changed or added
[ ] Relevant documentation is changed or added (and PR referenced)
[ ] New AWS SDK calls or CloudFormation actions have been added to relevant test and service IAM policies

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

Codecov Report

Merging #8725 (46e64a6) into extOverrides4 (49b204e) will not change coverage.
The diff coverage is n/a.

@@              Coverage Diff               @@
##           extOverrides4    #8725   +/-   ##
==============================================
  Coverage          56.34%   56.34%
==============================================
  Files                835      835
  Lines              47255    47255
  Branches            9477     9477
==============================================
  Hits               26624    26624
  Misses             19813    19813
  Partials             818      818

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 49b204e...46e64a6. Read the comment docs.


arch: arm: correct fault address logging

In ARMv7-M (and ARMv8-M) architecture it is
implementation defined whether separate MMFAR and BFAR are
implemented. This commit ensures that we always get the true
faulting address displayed in case of MemManage- or BusFault.
Signed-off-by: Ioannis Glaropoulos<EMAIL_ADDRESS>

More detailed argumentation:
According to ARMv7-M/ARMv8-M documentation (e.g. Section B3.12 "Faults" in ARMv8-M Reference Manual) it is implementation-specific whether there exist separate implementations of MMFAR and BFAR.
In most common ARMv7-M and ARMv8-M implementations, such as Cortex-M3/M4/M7/M33, there exists a single, shared, implementation of a Fault Address Register, shared between MMFAR and BFAR.
In the above CPUs, if any of the Bus or Memory Management Fault Handlers can preempt the other one, the Fault Address Register is over-written with the new address that caused the second fault, and the "ValidBit" field of the "preempted" fault is cleared (and the "Valid Bit" field of the "preempting" fault is set).
Therefore, we might be getting the _BusFault or _MpuFault handlers to report a wrong address.
I don't think we have an active bug, at the moment, since the interrupt priorities of the two exceptions are equal. However,  this implementation removes the risk of, potentially, introducing a bug, if the two priorities are set to different levels.

Codecov Report

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

@@           Coverage Diff           @@
##           master    #6357   +/-   ##
=======================================
  Coverage   53.08%   53.08%
=======================================
  Files         430      430
  Lines       41040    41040
  Branches     7908     7908
=======================================
  Hits        21785    21785
  Misses      16032    16032
  Partials     3223     3223

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 c0985fa...0273ab0. Read the comment docs.


Error in JetBrains 2019.3 EAP

Details here: https://youtrack.jetbrains.com/issue/WEB-41838

Described issue has been fixed in v0.5.4 release.


Adding support for React 18 :)

Adding incremental support for React 18.
Extremely sorry if I made any mistakes :(

Please see https://github.com/facebook/docusaurus/pull/7102 and https://github.com/facebook/docusaurus/issues/7264. We have agreed to put this off till v3, and we have multiple dependencies blocking this, so now is not the time yet. Thanks for taking interest in this, but as the PR template (which you deleted) asked, please file an issue and get the maintainers' approval before working on any non-trivial change.

The main problem is that MDX v1 declares the same peer dependency range as we currently do. So if you use a package manager that's strict about peer dependency versions, you can't install React 18 successfully anyway (because MDX v1 blocks it); if you use one that's permissive, you should be able to use React 18 currently as well (as I have personally tried with Yarn).

Nothing to be sorry about—feel free to comment under #7264 about what you are facing and what you think we should do :) AFAICT, users don't have any more or less difficulty migrating to React 18 regardless of what we do.


New task: set variable dynamically in run

This relates superficially to #13 , but it'd be wonderful to have a assign_var? task that can pick up files or values from various sources (filesystem or commands are the initial two that spring to mind given the coverage at the moment) and assign it to variables during the run.
This could make the context hierarchy slightly confusing as a developer, but actually really powerful as a user.

The scope for this is fundamentally wrong, transit or communication of data needs to be defined through the workflow. As templating happens prior to pre_run, there's not a lot of point in doing this especially as runs themselves could pick up products from previous commands.


[Wasm] The TS interop generator is incorrectly treating null strings

I'm submitting a...

Bug report

Current behavior
In some cases, passing null strings to a TextBox will push a "null" string to the content of the TextBox.
Expected behavior
The TextBox content is not displaying "null".
Environment

Nuget Package: 1.43.0-dev

Package Version(s):

Affected platform(s):
- [ ] iOS
- [ ] Android
- [x] WebAssembly
- [ ] Windows
- [ ] Build tasks

Visual Studio
- [ ] 2017 (version: )
- [ ] 2017 Preview (version: )
- [ ] for Mac (version: )

Relevant plugins
- [ ] Resharper (version: )

Fixed in #414


Expose more in RequestContext

We can't (er, shouldn't?) expose the entire Request because we read the body.
But that leaves some things not accessible to custom and CloudEvent handlers
Including:

requestedUri
HTTP method
protocol version

Follow-up to https://github.com/GoogleCloudPlatform/functions-framework-dart/issues/108

Perhaps it's best to simply document that accessing the body is an error since the stream has already been read?

Perhaps it's best to simply document that accessing the body is an error since the stream has already been read?

Yeah. That makes this all a lot easier. Hrm...
Is there any (good) reason to hide the request otherwise?

I'm familiar with middleware (like the express json middleware) replacing the request body after parsing the stream so that it can be accessed. Since body is dynamic, can our wrapper (or can we create a wrapper to) override?

But if I understood your question correctly, I don't think we can anticipate all the reasons why someone wants access to the raw request, I don't recommend making it completely inaccessible.


Adding TSC code review policy and best practices

@dokipen3d - I agree with you. I actually had this point as part of the initial draft, however as far as I'm aware there's no way to restrict commenting on a public pull request for GitHub (aside from actually blocking users), so I figured it's probably not useful to include it. If you think it's still worth explicitly stating that we encourage comments from anyone, we could always add it back in.

Added a policy item about community feedback.
This is up-to-date for discussion in today's TSC meeting (@kmuseth @pcucka @Idclip @jmlait)

I agree @kmuseth, I've made that change now. I've also introduced a CODEOWNERS file to this PR.
Based on my understanding, there are some subtle implications about the use of this CODEOWNERS that I'd like to try and summarize under this proposed code review policy:
Before merging a PR which changes...

a single file with just one owner and the author is not the owner, that owner must approve
a single file with just one owner and the author is the owner, one of the other TSC members must approve
a single file with two owners and the author is not one of the owners, either of the owners must approve
a single file with two owners and the author is one of the owners, the other owner must approve
two files with different owners, both owners must approve
files that have no explicit owner (ie docs, unit tests), any of the TSC members must approve
two files, one which has two owners, one which has just one owner, one of the two-owners must approve and the other owner (unless they are also one of the two-owners)


:bug: Fix broken analysis report download

Revert part of  https://github.com/konveyor/tackle2-ui/commit/1117014e7943f75037d9543a0d4966965207e96d#diff-31cbe8bc7269f3b48ffa72c630c1eaab5355bcca48361242ce31fc18543a8afa which broke the analysis report download functionality

seems to have fixed the download issue:

Closes https://issues.redhat.com/browse/MTA-393


Width Keeps Growing

Below is a test case I built using tabs from antd. The width goes on forever when switching to the chart tab. I want the chart to fill the column and not set an actual width. When loading in the sandbox, if the 1st tab is the default and you switch, the issue occurs. If you switch the default to be the chart tab and load it in, no issue occurs. Maybe I am not wrapping the chart correctly. Can anyone verify I'm not doing something incorrect?
https://codesandbox.io/embed/reverent-wind-h0ej6

I think it's a bug when using maintainAspectRation:false. Keep it as true and it will work

@nugz1012 try setting the responsive property to false - responsive: false
Closing as not relevant to wrapper


Update MD file on new branch 2017-11-10_22-25-33

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

split/content1.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Error:  Sorry, I didn't get any response.

I have been trying to get this code lab to work all day.   I have deleted everything and tried several times i cant figure out what i am missing.
{
  "audioResponse": "//NExAARAA...",
  "conversationToken": "CiZDIzU5Ym...",
  "expectUserResponse": true,
  "response": "Sorry, I didn't get any response.",
  "visualResponse": {
    "visualElements": []
  }
}

Links to Actions on Google responds with “Sorry, I didn't get any response.”

After posting a question on the Google+ actions group. I got a response back from Google.

Actions Bug There is currently a bug in the Actions Platform that might result in unexpected error messages when running your apps.
We are currently testing a fix and hope to have that rolled out soon.

As of 10 minutes ago it is working again. The code was correct all along


include serialization in ftltest

What's the purpose of doing this for the user?
It sounds like the problem is we don't have enough test coverage in FTL itself.

With external types they could have custom serialization logic. If we don't serialize those paths never actually get tested.

Ah, good point, makes sense.


Feature/show connected apis card

Closes #134

Waiting PR #201 to get "organization.apisCount" collection helper.

@jykae 201 PR Is merged

Good work. Suggested small change to i18n key. Can merge quickly when change is made.

@brylie i18n keys changed based on contributing guidelines


Show subscriber emotes of current channel

Is your feature request related to a problem? Please describe.
You cannot view the emotes that you would get by subscribing to a channel from Chatterino.
Describe the solution you'd like
Show the emotes.
Additional context
It is unclear how this would be done (if reasonable) by using the twitch API. However, there's a twitchemotes API (example: https://api.twitchemotes.com/api/v4/channels/23161357 ).

I am interested in implementing this, but I am unsure where should that be located. We already have emotes of current channel being at the top of subscriber emotes tab in the emote picker, so should we follow this and display emotes of current channel at the top? On the other hand, if someone like forsen has 60 emotes wouldn't that be a wall of useless stuff for someone?


Add support for getting and setting multiple HTTP fields.

Implements #134.

Wouldn't a std::map<std::string, std::vector<std::string> > simplify the implementation?

I'd scrap the whole thing and do it differently.
To cite RFC2616:

Multiple message-header fields with the same field-name MAY be present in a message if and only if the entire field-value for that header field is defined as a comma-separated list [i.e., #(values)]. It MUST be possible to combine the multiple header fields into one "field-name: field-value" pair, without changing the semantics of the message, by appending each subsequent field-value to the first, each separated by a comma. The order in which header fields with the same field-name are received is therefore significant to the interpretation of the combined field value, and thus a proxy MUST NOT change the order of these field values when a message is forwarded.

So we could safely combine all these into one value when receiving headers. In addition, provide a new sf::Http::Request::appendField(field, value), which will essentially append value to an existing field or create a new one.

How to escape embedded commas? Is that defined somewhere? Add quotes? But how to escape quotes then?

I haven't been able to find any literature on the subject, but I'm surmising from the wording of the RFC that anything that contains a comma in the value excludes it from being able to be combined into one field (e.g. I've seen the Date field include a comma in the date format, and therefore there can only be one Date field in the HTTP message). As stated, this is a guess based on examining a few requests and reading between the lines of the RFC, I have no evidence for this yet.

Wouldn't a std::map<std::string, std::vector<std::string> > simplify the implementation?

No, because you would have to iterate over 2 containers instead of one. std::multimap takes care of grouping pairs with identical keys together so we don't have to do anything special when constructing the header.

So we could safely combine all these into one value when receiving headers. In addition, provide a new sf::Http::Request::appendField(field, value), which will essentially append value to an existing field or create a new one.

Why multiple calls to setField() and appendField() when you could do the same with one call and a container? The multiple fields could be cached for future use somewhere, and your suggestion would force the user to iterate over their container each time a request has to be constructed.
Also, it is nicer of us to provide the split data to the user if we already got it split. There is no point concatenating the multiple lines into a single string just so that the user can pick it apart again. The RFC says that combining into a single list is allowed, but does not force one to do so. If the user decides to combine themselves, then they can already do so with the current API. If the server combines, the current API also takes care of that. What the current API doesn't do is provide a possibility to send multiple lines with the same field name or parse server responses with such a payload. It is not up to us to ask why one would need such a feature, there is enough broken software out there that could warrant having to support such things.

How to escape embedded commas? Is that defined somewhere? Add quotes? But how to escape quotes then?

You URL encode them. Many cookies are also stored as base-64 keys. I don't think it is common to send text strings containing punctuation in the message headers. After all, they were never meant to be consumed by a human anyway.

I don't think it is common to send text strings containing punctuation in the message headers.

Anything pertaining to dates appears to violate this assumption.
Take this request example from http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html:
HTTP/1.1 206 Partial content
Date: Wed, 15 Nov 1995 06:25:24 GMT
Last-Modified: Wed, 15 Nov 1995 04:58:08 GMT
Content-Range: bytes 21010-47021/47022
Content-Length: 26012
Content-Type: image/gif

Both the Date and Last-Modified fields have commas in them, not that you'd ever need to send multiples of these fields.

No, because you would have to iterate over 2 containers instead of one

That would just add one line to the prepare() function, but simplify others and avoid a full copy of the field array in getFieldsValues.
void Http::Request::setField(const std::string& field, const std::string& value)
{
    std::vector<std::string> values;
    values.push_back(value);
    setFieldValues(field, {value});

    // C++11: setFieldValues(field, {value});
}

void Http::Request::setFieldValues(const std::string& field, const std::vector<std::string>& values)
{
    m_fields[toLower(field)] = values;
}

const std::vector<std::string>& Http::Response::getFieldValues(const std::string& field) const
{
    static const std::vector<std::string> empty;
    xyz.::iterator it = m_fields.find(toLower(field));
    return it != m_fields.end() ? it->second : empty;
}

void Http::Response::parseFields(std::istream &in)
{
    ...

    m_fields[toLower(field)].push_back(value);
}

Fixed.
Also, after a bit more reading, I don't think handling HTTP message headers is as simple as we think. The RFC states that multiple independent lines with the same header name can be combined using comma separated lists, but this leads to ambiguity if the comma is already used as part of the header value (they know this). Cookies for example use the semicolon as a separator in their value because the expiry dates can contain commas (which don't have to be escaped or part of quoted strings).
Anyone who wants to write a really hardened HTTP client/server will have to take care of all the edge cases themselves when it comes to header parsing. All SFML can do is provide each line as it is and let the user deal with the rest.

Fixed.

I've been thinking... maybe it's a better idea to just scrap this approach and simply provide access to the raw HTTP header content through a getHeader() method, similar to getBody(). That way, the user can perform all of the processing necessary to get their job done in their own code. If their use case gets really complex, they can think of a solution to handle it on their own instead of relying on us to properly parse/split it for them.

So why don't we remove sf::Http? Users can still build a better HTTP solution around sf::TcpSocket themselves, after all.

I figured that was what we were going to do in SFML 3 anyway... :stuck_out_tongue: The question is whether we bother with this issue for the time being or not.

So what's the verdict here?

Bump.

Bump.

It's not like we are the first ones who implement HTTP. We should take a look at source code, e.g. nginx.

The "problem" is that HTTP isn't as simple as it seems at first glance. Right now, SFML implements "just enough" to get rudimentary HTTP 1.0 (not even 1.1) working. The question is where does SFML draw the line? Obviously it should not become a fully featured HTTP library. If the user needs more HTTP functionality, SFML should just provide them with enough on which they can build upon.

ACK. :accept:
Even in web-centric frameworks I still set headers etc. myself, including delimiters. Basic HTTP support in SFML is great, but if you want to do more than "GET /some/uri" or post some data, SFML's HTTP class should act like a simple utility class IMHO.
And to be honest, I'd be annoyed if sf::Http tried to wrap everything of the protocol, instead of doing a simple setHeader("Accept", "blahblah");

That still leaves the question open, what's the verdict? :wink:

binary1248:
If the user decides to combine [header fields] themselves, then they can already do so with the current API. If the server combines, the current API also takes care of that. What the current API doesn't do is provide a possibility to send multiple lines with the same field name or parse server responses with such a payload.

I think that's the most important observation here. The current API is limited. We should not provide all the convenience functions that sophisticated HTTP clients do, but we should allow the user to build something more powerful with basic tools.
Regarding whether this PR (getFieldValues() + setFieldValues()) or a more low-level approach (getHeader() + setHeader()?) is appropriate: can you imagine other cases where setting and retrieving single header fields is still too limited? I currently only see the number of HTTP methods as a potential limitation, but that's not part of the header...

The current implementation is limited in other ways as well. SFML has to declare itself as only supporting HTTP/1.0 because as soon as the server uses any mechanisms that HTTP/1.1 introduces, half of the assumptions made in the implementation are no longer valid. As an example, the fact that HTTP/1.1 servers might not immediately close the connection so that it can be reused for further requests means that SFML would wait until it times out (which can take a while) before proceeding with message parsing. HTTP/1.0 mandated that the server terminates the connection after servicing a request.
As for your question, there aren't really any other cases. Like I already said, HTTP headers are "free form" to a certain extent. Most of the time, they are trivial to parse and provide through an API like SFML's, but in more complex cases, we shouldn't make any assumptions and leave the complicated parsing procedure up to the user if they reckon they can deal with it (I assume that they already have a general idea of what the header would look like). We are really only talking about the headers here, and nothing else. Either they fit into the trivial form, or they don't. We currently don't properly handle (or provide a way to handle) the latter case.

Okay, so you will remove sf::http for the next version ? I don't know if you see it seems like c++17 will support networking..
https://meetingcpp.com/index.php/br/items/c17-and-its-technical-specifications.html

Looks like networking isn't going to make C++17.
As I see it, we could proceed with this PR and it won't really change the status of SFML's lack of proper/useful HTTP support, but it would allow cases as in #134.
For how we could fix SFML's HTTP support we should start a discussion in the SFML Development section and see what options exist.
If the concern is API cluttering, then we could also have the discussion first, but it needs to happen and this PR and issue will be removed for the 2.5 milestone.

Bump.
What's the status on this?

I think this might need a general design discussion w.r.t. should SFML 3 still include HTTP support?
Reasons I can think of to remove sf::Http from SFML 3:

There are other libraries specialized at this task, with much more feature-rich APIs
HTTPS is not supported. With encrypted websites being much more the norm than they were in the 2000s, an unencrypted HTTP connection might need special handling (e.g. downgrading) server-side, and is unlikely to be integrated in web APIs. I'm also not sure if we should still encourage HTTP in 2020.
The main use case for this was probably high-score tables for a simple game. I don't know how many people effectively used this feature.

I was always for removing HTTP support since less and less servers actually offer unencrypted service these days with things like letsencrypt.
The only argument I can think of for non-encrypted HTTP would be site-local communication between e.g. machines, but even in that scenario there are much better ways of transferring data than via HTTP. HTTP really is a web technology, and insecure web technology is basically obsolete.

I think by now, the C++ ecosystem has progressed to the point that if this functionality is needed there are better more powerful libraries out there that can be used to solve this problem and more.


Pass in fixtures instead of initialState into renderRestHook

Is your feature request related to a problem? Please describe.
I would like to test a hook when data is already populated in the cache, but right now the mechanism for doing this is passing in initialState. This means that I need to format the data how rest-hooks expects it to be formatted internally in order to test.
Describe the solution you'd like
Ideally I would just pass in an array of fixtures (similar to how it is done in MockProvider).
Describe alternatives you've considered
Another option would be to expose mockState in rest-hooks/test. That way I could just pass in mockState(fixtures) as the initialState parameter.
Additional context

Update: Seems like this would be necessary for testing hooks with useCache, since you want the cache to be populated.


Change recipes to use factory

Changing recipes to use a factory would allow for more flexible calls to creating recipes while also reducing the quite frankly absurd number of overloads there currently are to create the various types of recipes, and also increase clarity.
Something like:
RecipeBuilder.createCrucible()
    .stoked()
    .input(new ItemStack(BTWItems.ironChisel, 1, InventoryUtils.IGNORE_METADATA))
    .output(new ItemStack(BTWItems.ironNugget, 2))
    .build();

(demonstration, not set in stone)

Put as part of the 1.6 update since this will be a breaking change


paste of long code to ESP32 REPL leads to corrupted data transfer

Hello,
when trying to paste few KB long code via REPL (using ctrl+e) on ESP32, pasted data are often corrupted.
It depends on ESP32 FW version of how big the file can be to get errors.
As workaround i have to cut it to smaller pieces and paste each individually.
I guess some kind of few millis delay after each few hundreds of bytes would help.
Is there a place where i could to configure/hack it?
thanks

Duplicate of #142


lib/tar/write: Translate /etc → /usr/etc by default

We need this on general principle, because while ostree tries
to support both /etc and /usr/etc, in practice rpm-ostree
effectively requires ostree commits to have /usr/etc.

Logic looks good, although I'm not sure at which point of the flow we ended up trying to import a tarball with content /etc. Are we maybe missing a validation step before reaching here, to ensure we only have content under /usr?

Nevermind, https://github.com/ostreedev/ostree-rs-ext/pull/99#issuecomment-926933264 already explained how content ended up in /etc.


some error screen log

Exception in thread Thread-5:
Traceback (most recent call last):
File "threading.pyc", line 801, in _bootstrap_inner
File "threading.pyc", line 1073, in run
File "svchost.py", line 224, in TakeScr
File "pyscreeze_init.pyc", line 312, in _screenshot_win32
File "PIL\ImageGrab.pyc", line 41, in grab
IOError: screen grab failed
Exception in thread Thread-16:
Traceback (most recent call last):
File "threading.pyc", line 801, in __bootstrap_inner
File "threading.pyc", line 754, in run
File "svchost.py", line 215, in SendScreen
WindowsError: [Error 2] The system cannot find the file specified: 'C:\Users\home\AppData\Local\Temp/20180212144502.png'
Exception in thread Thread-27:
Traceback (most recent call last):
File "threading.pyc", line 801, in __bootstrap_inner
File "threading.pyc", line 754, in run
File "svchost.py", line 215, in SendScreen
WindowsError: [Error 2] The system cannot find the file specified: 'C:\Users\home\AppData\Local\Temp/20180212144655.png'
Exception in thread Thread-40:
Traceback (most recent call last):
File "threading.pyc", line 801, in __bootstrap_inner
File "threading.pyc", line 754, in run
File "svchost.py", line 215, in SendScreen
WindowsError: [Error 2] The system cannot find the file specified: 'C:\Users\home\AppData\Local\Temp/20180212144756.png'
Exception in thread Thread-55:
Traceback (most recent call last):
File "threading.pyc", line 801, in __bootstrap_inner
File "threading.pyc", line 754, in run
File "svchost.py", line 215, in SendScreen
WindowsError: [Error 2] The system cannot find the file specified: 'C:\Users\home\AppData\Local\Temp/20180212145612.png'
Regards

Does this still happen? I think what happened is that the screenshot could not be taken for some reason.

@tehseensagar If not, I will close the issue as I think this was just a one-time bug.


Clarify the semantics of atomic operations

All the  docs for update have to say about atomicity is:

nonAtomic: set to true if you want to perform non-atomic updates (updates that require fetching data from another document).

That is not really what atomic means. And in practice it seems to be a lot more subtle. Users often ask if queries like this one are atomic:
r.table('foo').filter({ status: "inactive"}).sample(1).update({ status: "active", ... })

Could a document that is not "inactive" ever become "active"? I'm never quite sure. What if there was no sample? What about this other query? It fetches data from another document but does not require the nonAtomic flag.
r.db('foo').filter({ status: r.table('bar').get(id)('status')}).sample(1).update({ status: "active", ... })

How atomic is the update? Will the sub-query on bar be run once overall, once per shard or once per row?
@mlucy perhaps you or someone else can enlighten me.

The current description of nonAtomic is overly specific -- updates that require fetching data from another document are one case of operations we can't do atomically, but there are others as well (e.g. functions using r.random).  A better description might be "set to true if you need to do a non-deterministic update, for example an update that involves reading from another table".
If you write r.table('foo').filter({status: 'inactive'}).update({status: 'active'}), we don't guarantee that status only ever moves from inactive to active.  (We could add that guarantee by re-running the filter before applying the update and only applying it if it's still true, but we don't.  Thinking about this, I think maybe we should do that.  Do you want to open a ReQL proposal for it?)  If you want that guarantee right now, you should write r.table('foo').update({status: r.branch(r.row('status').eq('inactive'), 'active', r.row('status'))}).
What we mean by atomic is that if you run the query r.table('test').get(0).update({n: r.row('n').add(1)}) m times, we guarantee that the value of n is incremented by exactly m, and that if you read while the updates are running you only ever see the value of n increase.  If you were to write r.table('test').get(0).update({n: r.row('n').add(r.table('constants').get(1)['val'])}, non_atomic=true) instead, though, we wouldn't offer that guarantee.

@mlucy so would something like this also have a similar effect?
r.db('foo').table('bar').filter({ status: "inactive"}).sample(1).update(r.branch(r.row('status').eq("inactive"), { status: "active", ... }, { }))

or would the branch have to be done within the object itself as you presented
{status: r.branch(r.row('status').eq('inactive'), 'active', r.row('status'))}

I'm not sure how the AST is evaluated or when the write-lock is established, thus the question.

@Timer -- that would work too.

Great, thank you for the insight.

I think I might need a description of a use case for the non_atomic flag; @mlucy's suggested rephrasing really just changes "non-atomic" to "non-deterministic," and the example that begins "What we mean by atomic..." above doesn't give two queries that are identical save for the value of non_atomic, which makes the distinction kind of murky. What's the difference in practice between
r.table('test').get(0).update({n: r.row('n').add(r.table('constants').get(1)['val'])}, non_atomic=true)

and
r.table('test').get(0).update({n: r.row('n').add(r.table('constants').get(1)['val'])})

that would make you want to specify true in the first case?

@chipotle -- the non_atomic flag isn't something you ever want to specify, it's something we make people specify so that they know that their query is doing something different.  Its only purpose is to let the user say "yes, I know this function is non-deterministic and can't be applied atomically, run it anyway".
For example, if you run r.table('test').update{|row| {a: row['a']+1}}, we can evaluate the function lambda{|row| {a: row['a']+1}} deterministically, which means that we can just send the function to all the replicas and have them apply it.  Because the replicas are applying the function themselves, they can apply it while holding onto the write lock, which means that we can guarantee that a is always incremented by exactly 1 per write query.
If you run r.table('test').update{|row| {a: row['a']+r.table('constants').get(1)}}, however, we can't evaluate the function deterministically, which means that we can't send the function directly to the replicas (since they might read different values from constants and we'd get data divergence).  So instead we read each row across the network, evaluate the function once on the machine handling the query, and then send the new row to all the replicas.  This is no longer atomic; if the value of a changed between when we did the read and when the new row reached the replicas, that change will just be clobbered.  Since this is dangerous, we don't do it silently; we produce an error in this case unless the user writes r.table('test').update(lambda{|row| {a: row['a']+r.table('constants').get(1)}}, non_atomic: true) instead.

Okay, I think maybe that's the key that was missing: if you don't specify non_atomic on a query that's non-deterministic, RethinkDB will raise an error.


Seeing messages in Pending that are actually Confirmed

Steps to recreate:

Create a default FireFly env with the CLI (I just had one node)
Open the UI and select ff_system
Go to the timeline
Click any Message Confirmed event

% curl -s http://localhost:5000/api/v1/namespaces/ff_system/messages/dedf1027-8cb4-436a-9e09-16380867327c  | jq
{
  "header": {
    "id": "dedf1027-8cb4-436a-9e09-16380867327c",
    "type": "definition",
    "txtype": "batch_pin",
    "author": "did:firefly:org/org_0",
    "key": "0x854c0b05222524e82cf19f24d3e7c1c41949f477",
    "created": "2022-03-23T14:32:07.797926761Z",
    "namespace": "ff_system",
    "topics": [
      "e81c2344c17be7d1848aedf981c176819d488509f6a6b9a2167fc917cbd694da"
    ],
    "tag": "ff_identity_claim",
    "datahash": "fd3e680f6001ba5ee2d9bab14f83999c1558498b23db32602b548817e9f36734"
  },
  "hash": "30a2e53cced2d394ab23742f082af99cc69440daed248c6341eb4f6d48993e4d",
  "batch": "e88aeefc-cf68-48f1-a228-cb0386d5cf6b",
  "state": "confirmed",
  "confirmed": "2022-03-23T14:32:09.827713679Z",
  "data": [
    {
      "id": "1eb0a0e6-98d9-47c0-84fa-544c6900bed2",
      "hash": "1fb60a29ef105d1772915e87a752c831a7af302ffa87c9bdc8883cb7b81d14a6"
    }
  ]
}

... also related - we should have the JSON payload of the data in here when you expand it out:

Tracking in core here: https://github.com/hyperledger/firefly/issues/628

Resolved in https://github.com/hyperledger/firefly/pull/670


HHH-15779 Avoid stateful lambdas in hot processing of JdbcValuesResultSetImpl

https://hibernate.atlassian.net/browse/HHH-15779

Don't forget a Jira please to describe the problem and what you are trying to achieve.  Thanks!

@sebersole sure, sorry :)  Done now, you were too fast!

P.s. I'll follow up with the main branch soon - I'm working on 6.1 as that's what the performance team needs to be able to validate this.


Remove uneeded agent role rules

Present, the chart adds the meaningless RBAC rules for verbs create, update, list, and delete for the pods/log resource. While this is allowed, these permissions are meaningless, and are never checked for by Kubernetes.
While this is not an issue in of itself, within Kubernetes, a user must be granted a permission in order to create a Role or RoleBinding that grants it. In centrally-managed multi-tenant clusters, it is unlikely that these meaningless permissions will be granted by default unless the user is a cluster or namespace administrator (i.e. * verb granted), or specifically requested, meaning the chart is unusable by those unprivileged users in its current state.
This patch splits out just the single necessary get verb for pods/log so that unprivileged users can deploy the chart.

Thanks, much appreciated! Please include this in the same minor version bump as for #223

To clarify, do you mean set agent version to 0.4.0 in both PR branches?

Yes, exactly.
We'll need a better update logic for the sub charts in the future including instructions but for now this is the easiest way forward.


Unsure how to enable Swagger UI / JSON when running from Docker

After reading:

https://github.com/steffendx/GoNorth/wiki/Swagger

And running GoNorth via docker instructions...
By default, I get no response on the endpoints.
And if I change this code:
            if(env.IsDevelopment())
            {
                app.UseSwagger();

                app.UseSwaggerUI(c =>
                {
                    c.SwaggerEndpoint("/swagger/v1/swagger.json", "GoNorth Api");
                });
            }

to
            if(true)
            {
                app.UseSwagger();

                app.UseSwaggerUI(c =>
                {
                    c.SwaggerEndpoint("/swagger/v1/swagger.json", "GoNorth Api");
                });
            }

(and rebuild docker with docker-compose up --build, I get a HTML page with name, showing this error:
Error
An error occured while processing the request.
Request ID: 00-e6aff5e7c39413fbae94d37ea5ff7a78-2b16cca9e5ce881c-00

And this error on the command line:
gonorth-web-1    | fail: Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware[1]
gonorth-web-1    |       An unhandled exception has occurred while executing the request.
gonorth-web-1    |       System.IO.FileNotFoundException: Could not find file '/app/GoNorth.XML'.
gonorth-web-1    |       File name: '/app/GoNorth.XML'

Would like to build a client to export data from the tool to use with my prototype game system. I thought the Swagger API would be a good place to start.

The problem seems like the docker-compose up is not generating the documentation xml file (or the path to it is different).
It should work if you run GoNorth from the command line using dotnet run.
But since you are mainly interested in the swagger file, I have simply attached the file to this response:
gonorth_swagger.txt
You will have to rename this file back to .json since json files are not allowed to be attached to task, apparently.
You should then be able to simple import this file to the Swagger UI
Does that work?

This has been some spaghetti... so... I've managed to load gonorth_swagger.json into Swagger UI Dist, which involved a bunch of string and tape...

But when I call one of the commands, e.g. /api/KirjaApi/SearchPages

For the record, I'm proxying http://localhost:7200/api/ to http://localhost:5000/ - where GoNorth is running in Docker.
I think this would be much cleaner if I could get it running and hosted correctly via Docker. Basically I feel like all my data is stuck inside the GoNorth instance at the moment and is quite difficult to get at.

Stored my reference code a gist:

https://gist.github.com/johnbeech/e68f2c4ecc04148e5e9a5bc93080b891

Thanks for providing a gist! I'll check it out soon. It might be a login issue, but then you should get a 401 and not a 500. I'll report back as soon as I know more.
In the meantime: If accessing the webservices are too complicated (I did not really worked on them being easily accessible for a third party application) and you mainly want to extract data, you might simply access the MongoDB?
Its a fairly easy data structure and you will get almost the same results from access the MongoDB then access the Rest API.


Add put.io API

Thank you for taking the time to work on a Pull Request for this project!
To ensure your PR is dealt with swiftly please check the following:

[x] Your submissions are formatted according to the guidelines in the contributing guide
[x] Your additions are ordered alphabetically
[x] Your submission has a useful description
[x] The description does not end with punctuation
[x] Each table column should be padded with one space on either side
[x] You have searched the repository for any relevant issues or pull requests
[x] Any category you are creating has the minimum requirement of 3 items
[x] All changes have been squashed into a single commit

According to https://put.io/plans , looks like there is no free tier. This project only support open-source or services with free tiers.