mount_apfs: volume could not be mounted: No such file or directory

Device: iPhone 7 (GSM)
Host iOS: iOS 15.7.7
Target iOS: iOS 13.7
Log:
[] Waiting for devices
[] Detected normal mode device
Hello, iPhone9,3 on 13.7!
[] Switching device into recovery mode...
Telling device with udid ae2a94390d29a350b731004e0afe7c335e5f3121 to enter recovery mode.
Device is successfully switching to recovery mode.
[] Waiting for device in recovery mode
[] Getting device info...
0x8010
d101ap
iPhone9,3
[] To get into DFU mode, you will be guided through 2 steps:
[] Press any key when ready for DFU mode
Get ready (0)
Release side button, but keep holding volume down (9)
Release side button, but keep holding volume down (2)
[] Device entered DFU!
extracting ipsw, hang on please ...
Archive:  ipsw/iPhone_4.7_P3_13.7_17H35_Restore.ipsw
ipsw/extracted//BuildManifest.plist -> work/BuildManifest.plist
[] Creating ramdisk
[-] Ramdisk is already created so SKIPPING ...
[] Booting ramdisk
usb_timeout: 5
[IOKit] Waiting for the USB handle with VID: 0x5AC, PID: 0x1227
CPID: 0x8010
Found the USB handle.
Stage: RESET
ret: true
[IOKit] Waiting for the USB handle with VID: 0x5AC, PID: 0x1227
CPID: 0x8010
Found the USB handle.
Stage: SPRAY
ret: true
[IOKit] Waiting for the USB handle with VID: 0x5AC, PID: 0x1227
CPID: 0x8010
Found the USB handle.
Stage: SETUP
ret: true
[IOKit] Waiting for the USB handle with VID: 0x5AC, PID: 0x1227
CPID: 0x8010
Found the USB handle.
Stage: PATCH
ret: true
[IOKit] Waiting for the USB handle with VID: 0x5AC, PID: 0x1227
CPID: 0x8010
Found the USB handle.
Now you can boot untrusted images.
usb_timeout: 5
[IOKit] Waiting for the USB handle with VID: 0x5AC, PID: 0x1227
Found the USB handle.
[==================================================] 100.0%
[==================================================] 100.0%
[==================================================] 100.0%
[==================================================] 100.0%
[==================================================] 100.0%
[==================================================] 100.0%
[==================================================] 100.0%
bind(): Address already in use
Error creating socket for listen port 2222: Address already in use
[] Waiting for the ramdisk to finish booting
8
[] Testing for baseband presence
9
10
11
seputil: Gigalocker file (/mnt7/1567AD52-4DA8-5631-B8B3-E174AEBE0E4B.gl) exists
seputil: Gigalocker initialization completed
sepi digest (48 bytes): 6cd78b731e8b1477a59d42c31620bca9d4690ebbe2b0749beaa4bce6c013cf8497a8451ece840b98f0a5b7a285e87fb7
sepi nonce (20 bytes): 5e19485a4450f8d39a7fe31f88879ced460a70b8
rsep digest (48 bytes): 3bd977b45548330b94b9ce693f08911e29be962cfa213e6307ebd2075ecc6d02f615ac00b0f4bb0c9904d658994f26de
rsep nonce (20 bytes): 5e19485a4450f8d39a7fe31f88879ced460a70b8
[] backup preboot partition... please dont delete directory prebootBackup
blobs/iPhone9,3-13.7.der -> work/IM4M
[] Starting step 1
[] Verifying if we can continue with the dualboot
ls: /dev/disk0s1s9: No such file or directory
[ ]Sucessfull verified
[] Creating partitions
[] partitions created, continuing...
[] Partitions are already created
[ ]Mounting filesystems
mount_apfs: volume could not be mounted: No such file or directory
I get this error only with my iPhone 7, iPhone SE works fine.
I don't know exactly how to fix it so I think maybe the developer will answer.

backup preboot partition... please dont delete directory prebootBackup, lol you have a very old version of dualra1n iirc, execute git pull, and then execute --restorerootfs and try dualboot again

It's already up to date, maybe it's because of not updated ios13 branch, will try with iOS 14.

It's already up to date, maybe it's because of not updated ios13 branch, will try with iOS 14.

Yeah probably with iOS 14 it will work, I need to update the main branch to iOS 13 compatible because iOS 13 Branch is very old and with errors

Yeah, it worked with iOS 14.


  Input and output?

nothing should change except editing would be enabled.

related https://github.com/twosigma/beaker-notebook/issues/1345


Wrong links on the showcase page

At the showcase page (https://flutter.io/showcase) store links of "Coach Yourself" app are mixed up.

Looks like they were fixed already.


User Build function not dependent on DBB

Description of the enhancement requested
We are interested in the User Build function built into Z Open Editor, but we are not using DBB, and at this time there are no plans to use it (we are using CA Endevor configuration manager).
Would it be possible to make, at least in part, the User Build function independent of a particular implementation, by separating the function "triggering a User Build" from Z Open Editor, and the function "processing a User Build" ?
Or by making it possible to declare in the settings.json / zapp.yaml configuration other types of builds than "dbb", then instructs the site or a supplier to provide the necessary additions to the processing of another type of build.

Our plan is indeed to make zapp extensible.
For now, the current user build is really only supported for DBB, but it is generic enough that it could work with any other custom build framework or script provided on USS. The build command uploads the current file to the USS workspace location specified in the user settings and then concatenates and executes the command via ssh with the build script and the command parameters. This command could be something you provide.  Here is the reference of the settings being used: https://www.ibm.com/support/knowledgecenter/SSCH39_1.0.0/com.ibm.wazi.developer.vscode.doc/setting_user_build.html


Update projects-overview.md

Fixes issue #4644

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

Closed out related issue.


Proposal creation

Hey @BernardTolosajr, thanks for the pull request! I will review it later today. One question - is your test suite passing? Need to work out what's going on with travis

So, looks like this is pretty much work in progress. I went ahead and merged your commit to the branch (through the command-line), but in the future, please send PRs once a feature is complete and tests are passing.  This is my bad too, as when I scrapped the old project, the README and CONTRIBUTING guide went with it.
I'm keeping this PR open as WIP, feel free to keep pushing to it and I'll review them. Welcome to the project!

I've pushed the contributing guide and readme to the upstream proposal-creation branch.

Hi @oliverbarnes my bad, just having a weird stuff with the pretender, or just me missing something.
By the way what is the best way to do after the user successfully created a proposal? should we transition to a list of proposal?

Closing this for now, as the discussion continued on slack and the upstream branch is now ahead of the PR.


Add a "simple" output format similar to check_postgres

The check_postgres.pl probe offers a simple output format which only outputs one number, and returns zero regardless of the defined threshold.
This would be very useful to have in check_pgactivty too because it would then be able to be used with Zabbix.
"One number to rule them all" should be defined for each service. Here is a suggestion for most of them, some of them would require significant change to provide anything useful, so I put them at the bottom of the list:

Service Name
Returned value

archive_folder
Number of archived wal files OR age of the latest one ?

archiver
Number of wal files ready to archive

autovacuum
Age of the oldest running autovacuum (in seconds)

backup_label_age
Age of backup label file (in seconds)

btree_bloat
Bloat size for the most bloated index

commit_ratio
Commit ratio since last execution

custom_query
First value of the first column of the resultset

database_size
Total variation of database sizes, using the already implemented dbinclude and dbexclude options

hit_ratio
Total hit ratio for all databases according to dbinclude and dbexclude options

invalid_indexes
Number of invalid indexes

last_analyze
Age of the oldest analyze or autoanalyze (in seconds)

last_vacuum
Age of the oldest vacuum or autovacuum (in seconds)

locks
Total number of locks. Optionnally, filter by lock type ?

longest_query
Age of the longest running query (in seconds)

max_freeze_age
Oldest database in transaction age.

minor_version
Version number (as in PG_NUM_VERSION ?)

oldest_2pc
Age of the oldest 2PC xact

oldest_idlexact
Age of the oldest idle xact

pga_version
Version number of check_pga

table_bloat
Bloat in bytes of the most bloated table

table_unlogged
Number of unlogged tables

temp_files
Rate (in bytes/s) of temp file generation

wal_files
Total number of WAL files.

streaming_delta
Delta in bytes between master and standby. By default, replayed delta but could be filtered

hot_standby_delta
Delta in bytes between master and standby. By default, replayed delta but could be filtered

backends
Percentage of used connections OR raw number ? dbinclude and dbexclude could be useful

backends_status
Maybe an option to filter on a set of specific status should be implemented. Then, number of connections in those status

bgwriter
Maybe an option to filter on a specific counter should be implemented. Then, this counter

replication_slots
Delta in bytes on the most lagging replication slot. Possibly filtered by replication slot ?

configuration
No idea

connection
No idea

is_hot_standby
No idea

is_master
No idea

is_replay_paused
No idea

pg_dump_backup
No idea

settings
No idea

First, I don't know exactly how zabbix works, what it is expecting and what/how it can give to check_pga when calling it.

archive_folder is more about checking all the files are present and clean. Other checks are less important
archiver raise an error if the archiving process is really failing. Raising the number of WAL waiting to be archived is not enough to detect a trouble
autovacuum: ok
backup_label_age: ok
btree_bloat: I would rather raise the number of index bloated given the condition if zabbix can pass it as arg to -w/-c
commit_ratio: ok
custom_query: ok
database_size: ok
hit_ratio: ok
invalid_indexes: ok
last_analyze: ok
last_vacuum: ok
locks: ok. Considering the filter on lock type, I don't know if zabbix can provide some args to check_pga...
longest_query: ok
max_freeze_age: ok. Can we filter per database?
minor_version: ok (using server_version_num or server_version? )
oldest_2pc: ok
oldest_idlexact: ok
pga_version: ok
table_bloat: see btree_bloat
table_unlogged: ok
temp_files: the number of temp files would be useful as well. See bottom of this answer
wal_files: ok
streaming_delta: ok
hot_standby_delta: ok
backends: considering percentage or raw number depend on how zabbix will work with the result
backends_status: we can already set different threshold depending on the backend status using -w/-c. I don't know how zabbix works on this
bgwriter: ok
replication_slots: ok
configuration: no need for it?
connection: can you filter on yes|no?
is_hot_standby: can you filter on yes|no?
is_master: can you filter on yes|no?
is_replay_paused: can you filter on yes|no?
pg_dump_backup: you wrote it, deal with it :) Maybe output the age of the latest known backup?
settings: can you filter on pending|ok?

My question: is it possible to have zabbix autodetecting somes stuffs and deploying additional checks? It would be useful to eg. detecting a new database and deploy new checks for it (db size, bloat, vacuum, etc)
On a side note, maybe we could provide a new arg replacing --service eg. --check <name> where <name> could be eg. temp_files_num, temp_files_bps and would bind to the same sub, but outputing only the selected number. What do you think?


Oh behave, API.

What's this PR do?
This fixes some bugs with the POST api/v1/users endpoint:

We previously didn't have any validation to prevent creating duplicate mobile users via the API.
We also didn't previously "clean" mobile numbers to strip out non-numeric characters like we do from the web registration form.

How should this be reviewed?
Try hitting those endpoints. You should no longer be able to do the aforementioned bad things.
Any background context you want to provide?
It'd be great if we could share the same business/validation logic anywhere we create a user. I'm not sure if there's any idiomatic way of doing that in Drupal, or if it's worth taking the risk of refactoring things too much though.
Relevant tickets
Fixes #6450.
Checklist

[ ] Documentation added for new features/changed endpoints.

we need some setters!
👍

Yeah, that'd be great. Merging, but we should continue thinking about this. 💧


[Bug]: Chat:close() is removing all autocmds (not just ones related to codecompanions buffer)

Your minimal.lua config
N/A
Error messages
N/A
Log output
N/A
Health check output
N/A
Describe the bug
All autocmds (or at least any user created ones) are removed from current nvim session because of the line below. It does not look like ui.aug is actually set anywhere so what happens is this turns into nvim_clear_autocmds({ group = nil }) which evidently if you supply nil for the group it will remove all autocmds (or maybe just ones that do not have a group, I'm not completely sure).
https://github.com/olimorris/codecompanion.nvim/blob/de59fb6b5c98a8aed11affd84a5c447fb86aff24/lua/codecompanion/strategies/chat.lua#L748
I just know that once I close out of a chat completely, I lose a lot of my typical day to day autocmds that I use in other buffers. I tracked it down to this line above.
Let me know if you have any questions.
Reproduce the bug

Create any random autocmd for BufEnter for example to do a vim.notify() each time (do not use a autocmd group)
Open nvim
Open a couple buffers to confirm your autocmd above is working
Open a Chat
Simply quit the chat with the "close" keymap like <C-c>
Now cycle through your other buffers (or open new ones) and you will notice the autocmd no longer works

Final checks

[X] I have made sure this issue exists in the latest version of the plugin
[X] I have tested with the minimal.lua file from above and have shared this
[X] I have shared the contents of the log file

@GitMurf this bug will only have wiped out autocmds that weren't grouped btw.

@GitMurf this bug will only have wiped out autocmds that weren't grouped btw.

I wondered that! Interesting so it literally looks for all autocmds with a group of nil. Never knew that! I wonder if neovim core is meant to work that way or if it's a side effect 🤷🏻♂ Good to know either way.

According to their docs that's the intended behaviour. Good to know and I shall forever group my autocmds.


Make App Check core availability for all supported platforms

b/193554541

App Check SDK availability now matches to Firebase Core availability
App Attest and DeviceCheck providers availability matches the underlying platform API availability (see DCDevice and DCAppAttestService)

I'm merging it soon, but feel free to left more comments to address in followup PRs.


Sd1001

Hi @artem-barysh-dev
Please can you close this PR?
There's a conflict with the main branch.
I will open a new one

@yobiiq-fostin I closed the PR


Fix new Jimp()

When creating a new Jimp() asyncronous stuff shouldn't happen.
const image = new Jimp()
console.log(image);
// result is <Jimp pending> so user would have to use timeouts to guess when it is useable

it should be the folowing.
const image = new Jimp()
console.log(image);
// result is <Jimp 400x300>
image.resize(10, Jimp.auto).greyscale();

To achieve this all we have to do is use fs.readFileSync rather than fs.readFile and stop supporting the callback. The callback within the constructor is an anti-pattern anyway.
This will be a breaking change. But it really cleans up the API.
related to #303

Although we probably don't want to block on a sync readFile. it could be an option
const image = new Jimp({
	sync: true
})

Just bumped into this. Wow, looks like an old issue.
In my use case, I might be conditionally either loading an external base image, or creating a new blank one. The difference with Jimp.read() and new Jimp() is a bit unintuitive, but what's worse is that you have to handle them differently in the code. I'm using async/await with .read(), but I having to support the callback pattern with new Jimp() forces me to structure the entire file in an entirely different way (which also conflicts with the rest of the codebase, since everything is async/await now).
You can work around this, it's not like it breaks everything, but it's annoying and completely unnecessary. I think the right solution is Jimp.create() or await Jimp.create().

Just bumped into this. Wow, looks like an old issue.
In my use case, I might be conditionally either loading an external base image, or creating a new blank one. The difference with Jimp.read() and new Jimp() is a bit unintuitive, but what's worse is that you have to handle them differently in the code. I'm using async/await with .read(), but I having to support the callback pattern with new Jimp() forces me to structure the entire file in an entirely different way (which also conflicts with the rest of the codebase, since everything is async/await now).
You can work around this, it's not like it breaks everything, but it's annoying and completely unnecessary. I think the right solution is Jimp.create() or await Jimp.create().

Fixed in v1


Default Sequence methods on CommitIterator

The standard library offers default implementations of many Sequence-related methods via protocol extensions. This PR switches CommitIterator to use those implementations instead of its own. This is particularly useful for the seven methods that CommitIterator exposed publicly but did not properly implement.

👏🏻


quick photo mode

right now if i have to say take 10 photos, i start with one, click on shutter. then i am taken to crop. i accept that. then i click on capture again.
can we improve on this workflow? i am suggesting creating a quick photo mode whereby i can set the defaults like crop and color and orientation and such once and then just click away. this is because if i want to take pictures of 10,20 or even more then current workflow is too tiring because there are steps that can be cut.
also, one can use some sort of jig to hold the phone and then the current workflow brings in too much touching the screen. i am thinking setup once and then click on shutter to take as many photos.
something like those book scanning rigs where you have a shutter button and the user just flips a page, click, flip, click.

Quick scan feature has been implemented in the alpha version 2.0 (development_v2.0.0 branch) of this app.


Chat - To enter link name in multi line, tapping enter key changes link to text

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: <IP_ADDRESS>
Reproducible in staging?: y
Reproducible in production?: n
If this was caught during regression testing, add the test name, ID and link from TestRail: https://expensify.testrail.io/index.php?/tests/view/4293571
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
Action Performed:

Go to https://staging.new.expensify.com/home
Tap on a report
Paste a link and send the message
Long press and tap edit comment
Select link url name part and delete it
Enter a text in url name part and tap enter

Expected Result:
Deleting url name part, entering a text & tapping enter key to enter link name in multi line, must not change link to text.
Actual Result:
Deleting url name part, entering a text & tapping enter key to enter link name in multi line, changes link to text.
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android: Native
[x] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence
https://github.com/Expensify/App/assets/93399543/9659089f-910a-480f-a479-ef5859c39722
View all open jobs on GitHub

We think that this bug might be related #vip-vsb
CC @quinthar

This looks like probably an issue from the live markdown feature.

@Skalakid Could you help verify if this is a bug with live markdown or not?

According to GitHub newlines can be in the text part of a link:
valid link
another valid
link

Interestingly, newlines in links work ok, it's just if you remove the text part of an existing link and then insert a newline into what remains that this happens.

@tgolen Yes it is connected with live markdown parsing system, just looking into it

@Skalakid it's probably connected with parser - input is not the same as output and we are not highlighting then

We've reverted the offending PR https://github.com/Expensify/App/pull/35837, so this is no longer a blocker

Cannot reproduce it on staging, will look into it further

I'm going to close this since the PR which caused the regression was reverted.


GO SQL Driver

chdb-go should conform with the built-in database/sql interface. Any takers? 🤟

I would like to implement it :)
@lmangani, do you have an idea of what do you expect the dataSourceName string to get in Open function?

Thanks @Mizaro 👍
There's no dataSourceName function or parameter in a chdb binding. Could you expand on your question?


cant load subtitles

It appears that you have an odd character at position 32 in your audio.srt file that it can't read. I believe 0xd9 is the character Ù. Other than that I don't know what it could be.


Update to the most recent stable version of DotCover

This works with .NET Core 3.1

(The rest should probably be updated too... the GRPC_VERSION isn't as scary as it looks, as this is just the generator, which I don't think has changed significantly. Will do all all that in a separate PR though.)


Add tests for process_manager.dart

oneof [ @Hixie @johnmccutchan @cbracken @danrubel ]

LGTM

Comments addressed

Thanks!


CDPSDX-4058; update the template validation to allow the SDX COMPUTE host

CDPSDX-4058; update the template validation to allow the SDX COMPUTE host to does not have  attached volumes

Also please update the description to be more clear on why we need this change. This will be helpful for the CB reviewers.

The change looks good but I'm curious how this was not exposed in the testing.

The more I think about it. I remember that this disk change was the last change done addressing a comment and we thought it was a trivial change and did not test it again. :-)


GCC Specific Endpoint Needed

Can someone update this page to include a GCC specific endpoint for GCC customers? As it is written now, GCC customers will get an error. The issue is in the 'Deploy a custom canvas for your bot' section, in the code provided in step 2. The line below needs to be updated to be GCC specific when appropriate:
Commercial version: var theURL = "https://powerva.microsoft.com/api/botmanagement/v1/directline/directlinetoken?botId=" + BOT_ID;
GCC version: var theURL = "https://gcc.api.powerva.microsoft.us/api/botmanagement/v1/directline/directlinetoken?botId=" + BOT_ID

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

ID: 0ad35188-e674-e331-b2fc-eb3e6fb75560
Version Independent ID: 31caa654-6112-bf08-f77b-ed2266a8bc24
Content: Automatically start a chatbot conversation - Power Virtual Agents
Content Source: power-virtual-agents/configure-bot-greeting.md
Service: power-virtual-agents
GitHub Login: @iaanw
Microsoft Alias: iawilt

@rywilli Thanks for reporting this! The doc has been updated and is now published.


Password problems

I just moved from creating all of my problems in my development Vagrant environment to a production environment. In my new production environment, I can't log in as any users. I can create the accounts perfectly and see them in the Mongo database, but when I try to log in through the front-end, the account automatically logs out and goes to the login page. Anyone have similar problems or know of a potential solution to this?

Hi @t94j0 one thing that might cause wonky behavior like this is stale cookies. You could try clearing them, or logging in from a private browser session like chrome's incognito.

Make sure to change the flask cookie domain. Also if for whatever reason you are using localhost you'll have problems with cookies.  I forgot to change the flask cookie domain. Thanks a lot.

@t94j0 glad we could get that fixed. Can you confirm #55 is no longer an issue for you?


First steps to generate API documentation

See http://jskeet.github.io/gcloud-dotnet/ for an example of how it will look. We can
fiddle with templates etc later, of course.

LGTM :shipit:


testlines.py code not working

Hello,
this is probabaly the simplest of all codes in the zip file but I cant make it work
It should create a test.txt file in the same directory but it doesnt do anything for me
Plus i dont understand why there is a "s = " before the write statement
Sorry Im new to python and github, I just finished the crash course python from no starch press
BR,

@Xelany57 Hey, I'll be happy to help you on this. What python version are you suing? The code seems to work perfectly well for me. Could you elaborate a bit more about the issue you are facing.
The s=  isn't mandatory, it just holds the number of characters we wrote in the file.

I think I have the latest version of Python (3.7.4)
Well I assumed that when running the file using the python interpreter it should create a text file named "test.txt" with written inside "I am beven"
For me when I take it just does nothing when I run it using python, I place it in another folder to make sure im not missing the output file, but really it doesn't do anything, I see the window appearing very quickly and closing just as quickly, no file is created
Do you have any clue? How does it work for you?
Thanks!

@Xelany57 Hey, I'll be happy to help you on this. What python version are you using? The code seems to work perfectly well for me. Could you elaborate a bit more about the issue you are facing.
The s= isn't mandatory, it just holds the number of characters we wrote in the file.

See my previous answer please : )

@Xelany57 Isn't Pythone interpreter used to interpret code rather than executing files ? I suggest you run the file using some IDE or on terminal using the command
For Windows
python filename.py

For Linux
python3 filename.py

@Xelany57 I ran the file by placing it in a folder named Downloads. Then I changed my present working directory to Downloads. After that I opened my terminal and typed
python3 filename.py

The code ran just the way you expected

@tanishqvyas Thanks for the help as I suspected it was very simple
I ran it using "python file" command and it output the file as expected, I played with the program a bit and it works as intended
I assume you are on linux because when I run "python3 file" command it doesn't work, but when I remove the 3 it works
I thought the interpreter was able to run the code, I was wrong on that
A bit off topic, but do you know some good ressources/ways to improve in Python? I already did the crash course python from no starch press, even if i didnt complete all the projects yet
I think Ill need to improve the most in django or other web frameworks, it is for my job...
If you do have ideas Ill happily take them if not I already thank you for your help! Thanks!

@Xelany57 I am glad to help you. Yes, I am on linux. I mostly learn from online resources. Since you specifically mentioned Django.
For basics you can refer to these

Freecodecamp's youtube channel has a Django Crash course.
Django Girls is a really nice website to learn Django.
One of the best and official resources is  obviously the documentation itself.

I could suggest you a bit more depending upon how much have you learnt from starch press. Sorry but I haven't taken a look at their course, so won't be able to suggest according to that.
Recently I made a very basic django project ``. You can have a look at it.
Welcome again.

@tanishqvyas
I checked your django projects it would be better if you would add dependancies.

Don't worry I'll do it for you


Dynamic Groups authorization check not applied on field level in GraphQL transformer v2

Before opening, please confirm:

[X] I have installed the latest version of the Amplify CLI (see above), and confirmed that the issue still persists.
[X] I have searched for duplicate or closed issues.
[X] I have read the guide for submitting bug reports.
[X] I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.

How did you install the Amplify CLI?
npm install -g @aws-amplify/cli
If applicable, what version of Node.js are you using?
v14.16.0
Amplify CLI Version
7.6.5
What operating system are you using?
MacOS
Amplify Categories
api
Amplify Commands
Not applicable
Describe the bug
As I gave it a try and tested more in depth the authorization rules applied through GraphQL transformer v2, I came across a couple of issues in regard to dynamic groups authorization rules:

The dynamic groups based authorization logic doesn't seem to be properly applied on field level and, as a result, the resolver returns null when the user is actually allowed to access this field.

I know there was this related issue https://github.com/aws-amplify/amplify-cli/issues/9222 which was fixed with this PR https://github.com/aws-amplify/amplify-cli/pull/9264. Possibly the changes applied on the query may need to be applied as well on the relationship resolvers as far as I could understand this issue. The generated field level resolver UserMembership.organisation has this authorization section, so as I understand it, it will simply check the claim string, rather than parsing it to be a list as expected:
#if( $util.authType() == "User Pool Authorization" )
  #if( !$isAuthorized )
    #set( $primaryRole0 = $util.defaultIfNull($ctx.identity.claims.get("tenants"), "___xamznone____") )
    #if( (!$util.isNull($ctx.source.organisationId)) && ($ctx.source.organisationId == $primaryRole0) )
      #set( $isAuthorized = true )
      $util.qr($ctx.stash.put("authFilter", null))
    #else
      #if( !$isAuthorized && $util.isNull($ctx.stash.authFilter) )
        $util.qr($ctx.source.put("organisationId", $primaryRole0))
        #set( $isAuthorized = true )
      #end
    #end
  #end
#end

The other issue I noticed is that, even though it won't throw an error anymore due to an invalid DynamoDB filter syntax, as it happened before, it doesn't seem to apply any filtering at all and a user is able to retrieve data they shouldn't have access to. What I did was to create 2 Organisations, and a user has a UserMembership entry only for one of the Organsiations. But when querying listOrganisations (the default query automatically generated by Amplify), it will return both organisations. e.g. the JWT token will include a custom claim like this:

{
  "tenants": "[\"04916a5e-1eb6-438a-9f7d-739511c7c186\"]",
  ...
}

but it will return 2 organisations:
{
  "data": {
    "listOrganisations": {
      "items": [
        {
          "id": "04916a5e-1eb6-438a-9f7d-739511c7c186",
          "name": "MyOrg",
          "createdById": "704807c1-e409-449e-82b3-bd1b6e5f2fa1",
          "createdBy": {
            "id": "704807c1-e409-449e-82b3-bd1b6e5f2fa1"
          }
        },
        {
          "id": "30b6011c-5511-44b1-bb6b-3e70ca331fbb",
          "name": "Unauthorized org",
          "createdById": "fe038661-681c-47bf-8305-196c560ddc62",
          "createdBy": {
            "id": "704807c1-e409-449e-82b3-bd1b6e5f2fa1"
          }
        }
      ],
      "nextToken": null,
      "startedAt": null
    }
  }
}

There is also an owner authorization rule set on the Organisation and as I created this entity manually, I set a different createdBy ID to it. As you can see in the result above, createdBy.id ends up being set to the user's sub value even though that's different from what createdById is set to and it should probably just return a null value if there is no such User in the database with such ID. A mutation is indeed expected to set the owner to authenticated user's ID, but I think the query should not override it as the item could have been created by a different user.

The following query:

  query GetUser($id: ID!) {
    getUser(id: $id) {
      id
      memberships {
        items {
          id
          organisationId
          organisation {
            id
            name
          }
        }
        nextToken
        startedAt
      }
    }
  }

results in this error:
{
  "errors": [
    {
      "path": [
        "getUser",
        "memberships",
        "items",
        0,
        "organisation"
      ],
      "locations": null,
      "message": "Cannot return null for non-nullable type: 'Organisation' within parent 'UserMembership' (/getUser/memberships/items[0]/organisation)"
    }
  ]
}

I turned on CloudWatch Logs on the Appsync API, and I noticed that the $ctx.source.organisationId has a wrong format, by the look of it due to assigning the groups claim value to it (in which case it is understandable why the DynamoDB query won't match any item). This kind of behavior used to work in the previous Transformer version:
{
    "logType": "BeforeMapping",
    "path": [
        "getUser",
        "memberships",
        "items",
        "0",
        "organisation"
    ],
    "fieldName": "organisation",
    "context": {
        "arguments": {},
        "source": {
            "organisationId": "[\"bb8b0912-dfc8-4834-be63-1a7fd34785d2\"]",
            "__typename": "UserMembership",
            ...
        }
...
}

The resolver UserMembership.organisation.req.vtl makes use of this variable:
  $util.qr($GetRequest.put("query", {
  "expression": "#partitionKey = :partitionValue",
  "expressionNames": {
      "#partitionKey": "id"
  },
  "expressionValues": {
      ":partitionValue": $util.parseJson($util.dynamodb.toDynamoDBJson($util.defaultIfNullOrBlank($ctx.source.organisationId, "___xamznone____")))
  }
}))

Let me know please if I can help with any additional information, I've put together a small project here to reproduce this issue in case that helps: https://github.com/alex-vladut/aws-amplify-auth
Expected behavior

Should successfully resolve the field
Should filter out the items the authenticated user doesn't have access to
Should return the owner of an item, if the authenticated user is allowed to access it, or null otherwise
Should successfully resolve the field

Reproduction steps
git clone git@github.com:alex-vladut/aws-amplify-auth.git
cd aws-amplify-auth.
npm install
amplify push
npm start
Create a new organisation by typing a name and clicking "Create organisation" button
After refreshing the page, check the browser's devtools and there should be an error like:
"message": "Cannot return null for non-nullable type: 'Organisation' within parent 'UserMembership' (/listUserMemberships/items[0]/organisation)"

To simulate the other issue, where an organisation should be filtered out due to the user not being authorized to access it, go to AWS console and in DynamoDB create a new Organisation item. Set a random UUID for createdById field so that it won't match the authenticated user.
GraphQL schema(s)

# Put schemas below this line

type User
  @model(queries: { get: "getUser" }, subscriptions: null)
  @auth(rules: [{ allow: owner, ownerField: "id" }]) {
  id: ID! @primaryKey
  email: AWSEmail!
  phone: AWSPhone
  createdAt: AWSDateTime!
  updatedAt: AWSDateTime!
}

type Organisation
  @model(subscriptions: null)
  @auth(
    rules: [
      { allow: owner, ownerField: "createdById", operations: [create] }
      {
        allow: groups
        groupsField: "id"
        groupClaim: "tenants"
        operations: [read, update]
      }
    ]
  ) {
  id: ID! @primaryKey
  name: String!
  createdById: ID
  createdBy: User @hasOne(fields: ["createdById"])
  createdAt: AWSDateTime!
  updatedAt: AWSDateTime!
}

type UserMembership
  @model(subscriptions: null)
  @auth(
    rules: [
      { allow: groups, groupsField: "organisationId", groupClaim: "tenants" }
      { allow: private, provider: iam }
    ]
  ) {
  id: ID! @primaryKey
  organisationId: ID!
  organisation: Organisation! @hasOne(fields: ["organisationId"])
  userId: ID!
    @index(
      name: "byUser"
      queryField: "userMembershipsByUser"
      sortKeyFields: ["organisationId"]
    )
  createdAt: AWSDateTime!
  updatedAt: AWSDateTime!
}

Log output

# Put your logs below this line

Additional information
No response

I completely described bug 4 of @alex-vladut  https://github.com/aws-amplify/amplify-category-api/issues/132#issuecomment-1129353659 and also where it needs to be resolved in here https://github.com/aws-amplify/amplify-category-api/issues/110#issuecomment-1129353246. I'm too bad in writing good vtl code but for someone with some background knowledge this can be fixed in under 2h. As this issue is key for several multi tenancy use cases I hope that this can be fixed soon?!
So how can we push this issue up here @alharris-at @Straubulous (as you moved this issue to bug bash?!).


click events and interactions are "propagated" to elements outside OL map on Android and iOS

When there is a map, which listens to click events or has a selection interaction, which trigger opening another element on top of the map. Clicking the map causes the click to be also triggered on the element that is opened on top of the map.
Steps to reproduce
Using map.on('click', ...) https://jsfiddle.net/lasselaakkonen/h38ma0zw/13
Using Select interaction with click condition https://jsfiddle.net/lasselaakkonen/3sh2ko1m/1/

Render a map
Attach a click handler, which when triggered, shows an element on top of the map
Click the map (or a feature if using Select interaction)
-> The click/interaction handler is triggered
-> The handler shows the new element on top of the map, as it should
-> THEN the click event is also triggered on the new element, this should not happen
(-> In those fiddles clicking on the modal closes the modal)

Reproduced on

Samsung Galaxy S8, Android 7, Chrome, Samsung browser, WebView
Samsung Tab A, Android 7, Samsung Browser
Huawei Honor 6, Android 6, Chrome, WebView
iOS 10 Safari

Not reproduced on

macOS Chrome, Safari, Firefox
iOS 11 Safari

One workaround for the fiddles is to call setTimeout(showModal, MAGICVALUE) instead of showModal().
What is going on? Is there a way to stop the propagation of the click events/interactions?

this is way way late. but I came across this exact issue and finally found a solution.
switching the event from click to singleclick seems to fix this.


Error when creating Docker Image from microsoft tutorial

Problem encountered on https://dotnet.microsoft.com/learn/aspnet/microservice-tutorial/docker-image
Operating System: windows 10.0.18363
Provide details about the problem you're experiencing. Include your operating system version, exact error message, code sample, and anything else that is relevant.
Output:
C:\Users\til\myMircoservice>docker build -t mymicroservice .
[+] Building 0.7s (9/14)
=> [internal] load build definition from Dockerfile                                                               0.0s
=> => transferring dockerfile: 337B                                                                               0.0s
=> [internal] load .dockerignore                                                                                0.0s
=> => transferring context: 34B                                                                                0.0s
=> [internal] load metadata for mcr.microsoft.com/dotnet/core/aspnet:3.1                                          0.7s
=> [internal] load metadata for mcr.microsoft.com/dotnet/core/sdk:3.1                                             0.7s
=> CANCELED [build 1/6] FROM mcr.microsoft.com/dotnet/core/sdk:3.1@sha256:95f46b6614f7fb759cdad3b38286e6d9a25422  0.0s
=> => resolve mcr.microsoft.com/dotnet/core/sdk:3.1@sha256:95f46b6614f7fb759cdad3b38286e6d9a25422113a07b5862dec1  0.0s
=> [internal] load build context                                                                                0.0s
=> => transferring context: 5.45kB                                                                                0.0s
=> CANCELED [stage-1 1/3] FROM mcr.microsoft.com/dotnet/core/aspnet:3.1@sha256:adeb306016cb11425faad95b59f138c58  0.0s
=> => resolve mcr.microsoft.com/dotnet/core/aspnet:3.1@sha256:adeb306016cb11425faad95b59f138c58910023f5754caeecd  0.0s
=> CACHED [build 2/6] WORKDIR /src                                                                                0.0s
=> ERROR [build 3/6] COPY myMicroservice.csproj .                                                                 0.0s

[build 3/6] COPY myMicroservice.csproj .:

failed to solve with frontend dockerfile.v0: failed to build LLB: failed to compute cache key: "/myMicroservice.csproj" not found: not found

@shirhatti can you please take a look?

@nishanil

Hi @trivli, thank you for reaching out.
From the output message, CACHED [build 2/6] WORKDIR /src 0.0s it seems like you are trying to rebuild the docker image again.
Could you please try to Clean/ Purge data in Docker Desktop and try to build it from scratch ?
Hope this helps !


fix typo in switch case

 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.


Can i run PSCodeHealth without test path ?

name: Running PSCodeHealth without test cases.
about: Suggest an idea for this project
Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is.
Ex. It is annoying when [...]
Describe the solution you would like
A clear description of what you want to happen.
Describe alternatives you have considered
A clear description of any alternative solutions or features you have considered.
Additional context
Add any other context or screenshots about the feature request here.
How is this affecting you ?
Providing context helps us come up with a solution that is most useful and prioritize feature requests.

Hi @guptalakshay ,
TestsPath itself is an optional parameter, if not specified it defaults to look for tests in the same location as the code being analyzed.
If there are no tests in any location, then Invoke-PSCodeHealth's intented behaviour is to run without error and the tests-related output values will be empty (or 0 for numeric values).
So the report generated by PSCodeHealth might be less useful without the tests-related information, but it should work fine.

Thanks , appreciate the help.


add video orientation

idea via @apreshill
Particularly unclear is the navigation to the actions tab, and the whole limited beta situation.

obsolete or done in the new yml-based GitHub actions.


Compute site statistics

Related Issues
List of issues fixed by this pull request
Fixes #95
Description
This task aims to implement a stats service that, upon request, provides site statistics, including the number of contributors, the total amount contributed, the number of beneficiaries, as well as the total amount distributed.

Just wanted to point out that the worker runs in a different process (and different server node) from our web/API server. We use the worker for running background jobs like donation distribution. start-worker.ts is the entry point of the worker. You run the worker using yarn worker instead of yarn start (the latter runs the web server).

@BambanzaJuniorThe2nd you could also add test cases for the get() method. To ensure it directly returns what's in the db if the db document exists. Basically, get() is like update() excepts that it doesn't update the stats if they're already in the db.


Add "Mute command information" setting to Esc menu

A new Esc menu entry should be added near "Mute Lobby" that would mute the
"Player found aleph from Tjeerd to Fierro" messages.
Once added, players can default to attack wing when joining, and are put on
command wing when becoming commander. When they drop, they go back to attack.
When becoming commander, if the user chooses to mute drone messages, the
setting will be temporarily changed to allow the messages to come through.
Losing command will restore the setting to its default value.
If the user chose to hear chats and becomes comm, he retains it and still hears
them after losing command again. No changes.
Imported from trac ticket #29,  created by Tigereye on 01-05-2010 at 11:17, last modified: 02-24-2012 at 01:14

'''Grap Dragon'''
If you're talking about seperating red notifications from the command wing,
maybe.  At the very least though, I think this needs to be downgraded from
major bug to minor, or enhancement.
Trac comment by fuzzylunkin1 on 01-05-2010 at 11:18

'''TigerEYE'''
I have it listed as "major" since currently there are two separate 'fixes' for
this that remove a feature when combined.
It is important to resolve that conflict before R2 is released.
Trac comment by fuzzylunkin1 on 01-05-2010 at 11:18

Tiger'''Eye'''
:)
That's exactly what this bug proposes. Separating the drone chat from the
wings, leaving the wings to work independantly from drone chat.
Trac comment by fuzzylunkin1 on 01-05-2010 at 11:19

'''Gap Dragon'''
How about instead of tying drone messages to the command wing, there's an esc
option to "Receive Drone Commands" and another for "Receive map update
notifications."  And whenever a player commands, it preempts the default value
for drone commands and sets it to on.
This would also allow players to actually the use wing system for seperate
wings like miner D and con D.
Or is removing that tie to the command wing already added for the next release.
Trac comment by fuzzylunkin1 on 01-05-2010 at 11:18

'''Tiger''''''''Eye'''''
Was this menu item added?
My patch to give bravo+other wings drone messages is separate from this
feature.
This feature request is asking for a "mute drone messages" menu that works
independantly from the command wing, separating the notifications from the
wings.
this would make my patch redundant since people could choose any wing and
control the drone messages independantly.
Not fixed.
-TE
Trac comment by fuzzylunkin1 on 01-05-2010 at 11:20

'''Imago'''
I'm pretty sure this is fixed, TE added drone chat to Bravo wing and 2 others,
you won't get the critical messages unless you are on command.  Close this
entry please.
Trac comment by fuzzylunkin1 on 01-05-2010 at 11:19

moving down in the list....especially now since wings are persistent
Trac comment by Imago on 06-20-2010 at 08:04

i suggest ignoring this


SL keeps crashing while linting python code

specs

Windows 10 x64 1703
ST 3156 x64 portable
SL beta 4 commit 1176722

enabled SL plugins

sublimelinter-pep8
sublimelinter-pydocstyle
sublimelinter-pylint

The issue seems to be triggered while editing source code.
error log
Unknown option 'max-line-length' ignored
Traceback (most recent call last):
  File "C:\Apps\Sublime\sublime_plugin.py", line 521, in on_selection_modified_async
    callback.on_selection_modified_async(v)
  File "C:\Apps\Sublime\Data\Packages\SublimeLinter\sublime_linter.py", line 125, in on_selection_modified_async
    self.display_errors(view)
  File "C:\Apps\Sublime\Data\Packages\SublimeLinter\sublime_linter.py", line 391, in display_errors
    view = util.get_focused_view(view)
  File "C:\Apps\Sublime\Data\Packages\SublimeLinter\lint\util.py", line 109, in get_focused_view
    active_view = get_active_view(view)
  File "C:\Apps\Sublime\Data\Packages\SublimeLinter\lint\util.py", line 96, in get_active_view
    return view.window().active_view()
AttributeError: 'NoneType' object has no attribute 'active_view'
SublimeLinter: error in SublimeLinter daemon:
SublimeLinter: --------------------
SublimeLinter: Traceback (most recent call last):
  File "C:\Apps\Sublime\Data\Packages\SublimeLinter\lint\queue.py", line 57, in loop
    item = self.q.get(block=True, timeout=self.MIN_DELAY)
  File "./python3.3/queue.py", line 175, in get
queue.Empty

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Apps\Sublime\Data\Packages\SublimeLinter\lint\queue.py", line 65, in loop
    self.lint(view_id, timestamp)
  File "C:\Apps\Sublime\Data\Packages\SublimeLinter\lint\queue.py", line 111, in lint
    self.callback(view_id, timestamp)
  File "C:\Apps\Sublime\Data\Packages\SublimeLinter\sublime_linter.py", line 266, in lint
    Linter.lint_view(view, filename, code, hit_time, callback)
  File "C:\Apps\Sublime\Data\Packages\SublimeLinter\lint\linter.py", line 1000, in lint_view
    callback(cls.get_view(vid), linters, hit_time)
  File "C:\Apps\Sublime\Data\Packages\SublimeLinter\sublime_linter.py", line 319, in highlight
    highlights.draw(other_view)
  File "C:\Apps\Sublime\Data\Packages\SublimeLinter\lint\highlight.py", line 133, in draw
    all.draw(view)
  File "C:\Apps\Sublime\Data\Packages\SublimeLinter\lint\highlight.py", line 456, in draw
    icon = self.style_store.get_val("icon", style, err_type)
  File "C:\Apps\Sublime\Data\Packages\SublimeLinter\lint\style.py", line 37, in wrapper
    if res != os.path.basename(res):
  File "./python3.3/ntpath.py", line 249, in basename
  File "./python3.3/ntpath.py", line 220, in split
  File "./python3.3/ntpath.py", line 162, in splitdrive
TypeError: object of type 'NoneType' has no len()

SublimeLinter.sublime-settings
{
    "debug": false,
    "delay": 0.3,
    "gutter_theme": "Packages/SublimeLinter/gutter-themes/Default/Default.gutter-theme",
    "lint_mode": "background",
    "linters": {
        "pep8": {
            "@disable": false,
            "args": [],
            "excludes": [],
            "ignore": "",
            "max-line-length": null,
            "select": ""
        },
        "pydocstyle": {
            "@disable": false,
            "add-ignore": "",
            "add-select": "",
            "args": [],
            "config": "",
            "convention": "",
            "excludes": [],
            "ignore": "",
            "ignore-decorators": "",
            "select": ""
        },
        "pyflakes": {
            "@disable": false,
            "args": [],
            "excludes": []
        },
        "pylint": {
            "@disable": false,
            "args": [],
            "disable": "",
            "enable": "",
            "excludes": [],
            "paths": [],
            "rcfile": "",
            "show-codes": false
        }
    },
    "no_column_highlights_line": false,
    "paths": {
        "linux": [],
        "osx": [],
        "windows": []
    },
    "python_paths": {
        "linux": [],
        "osx": [],
        "windows": []
    },
    "rc_search_limit": 3,
    "shell_timeout": 10,
    "show_errors_on_save": false,
    "show_hover_line_report": true,
    "show_marks_in_minimap": true,
    "styles": [
        {
            "mark_style": "outline",
            "priority": 1,
            "scope": "region.yellowish",
            "types": [
                "warning"
            ]
        },
        {
            "mark_style": "outline",
            "priority": 1,
            "scope": "region.redish",
            "types": [
                "error"
            ]
        }
    ],
    "syntax_map": {
        "html (django)": "html",
        "html (rails)": "html",
        "html 5": "html",
        "javascript (babel)": "javascript",
        "magicpython": "python",
        "php": "html",
        "python django": "python",
        "pythonimproved": "python"
    },
    "wrap_find": true
}

@pykong seems isolated to your fork

I see some people who tracking the next branch are stuck on old styles scopes i.e. "scope": "region.yellowish", oppose to region.yellowish markup.warning.sublime_linter.

In fact, that's where the error is. The styles definition is cause the exception.
Update the "styles" setting to this:

    "styles":
    [
        {
            "icon": "warning",
            "mark_style": "fill",
            "priority": 1,
            "scope": "region.yellowish markup.warning.sublime_linter",
            "types":
            [
                "warning"
            ]
        },
        {
            "icon": "error",
            "mark_style": "fill",
            "priority": 1,
            "scope": "region.redish markup.error.sublime_linter",
            "types":
            [
                "error"
            ]
        }
    ],

And set "no_column_highlights_line": true, (required for the "fill" style, not sure why). Alternatively, set the mark_style to "outline" or whatever you prefer.

I'm not reproducing this right now, the next branch seems pretty stable and a lot has been done since this was opened. We'll do a real beta release soon, if it's still broken then, please re-open or create a new issue.

@braver define a custom styles setting like this:
    "styles":
    [
        {
            "icon": "warning",
            "mark_style": "fill",
            "priority": 1,
            "scope": "region.yellowish markup.warning.sublime_linter",
            "types":
            [
                "warning"
            ]
        }
    ]

or
    "styles":
    [
        {
            "icon": "warning",
            "mark_style": "fill"
        }
    ]

I will right now look into it.

I should note too that there could be easier way to set the mark style. The vast majority of users will never need to define a full styles setting. Mostly they only want to change the style i.e. "fill", "outline", etc. It should be very rare that user needs to change the styles (other than the mark style).

@gerardroche You are making strong assumptions about what users want. Let's see what the actual feedback from the beta will be like.
If you got constructive feedback to share please do that.

I assumed it was constructive.

Exchange 'constructive' with 'tangible' then.

Assuming we don’t change the styles object layout on our end a lot it’s simple enough already. It’s a trade off against implementation efficiency, which is why you start with an mvp and then validate the design before brainstorming about optimization’s.
It should fail kinda gracefully though.

I can not produce any crashes with the information given.
@gerardroche @deathaxe Please check again once the beta release is out.

@deathaxe @gerardroche thanks so much for your time already. We've been testing and tuning and your input has been invaluable. A 4.0.0-rc.7 has been tagged right now (might take some time to trickle through). It seems to work correctly with those same linters. If you would like to give it a go again that would be awesome. If anything is up, let me know in a new issue. Please note that you need to restart ST after the upgrade.

As @gerardroche correctly stated the exception is triggered by malformed style settings. Removing those from the SublimeLinter.sublime-settings solved the issue.
    "styles": [
        {
            "mark_style": "outline",
            "priority": 1,
            "scope": "region.yellowish",
            "types": [
                "warning"
            ]
        },
        {
            "mark_style": "outline",
            "priority": 1,
            "scope": "region.redish",
            "types": [
                "error"
            ]
        }
    ],

They cause the https://github.com/SublimeLinter/SublimeLinter3/blob/32844c59b401bf0b2af7cf07f5a28a48ab72764f/lint/style.py#L54 to return None which is not handled by https://github.com/SublimeLinter/SublimeLinter3/blob/32844c59b401bf0b2af7cf07f5a28a48ab72764f/lint/style.py#L31 causing the exception.
Maybe this situation is worth handling?

@deathaxe thanks for catching this, I'll try to repro and fix.

Ok, nice. We already catch a number of similar situations. I feel like it could be cleaner architecturally, but bafa513fadd8e5aa329a489ab248f6cf1972d362 fixes it. rc.8 has been tagged. Thanks all!


Heap reuse v2

Codecov Report

Merging #1007 (38648ee) into chore/reuse (d2419f5) will decrease coverage by 0.00%.
The diff coverage is 75.00%.

@@               Coverage Diff               @@
##           chore/reuse    #1007      +/-   ##
===============================================
- Coverage        84.39%   84.38%   -0.01%
===============================================
  Files              403      403
  Lines            42940    42928      -12
===============================================
- Hits             36239    36225      -14
- Misses            6701     6703       +2

Impacted Files
Coverage Δ

lib/mir-fmm/src/expressions.rs
84.59% <75.00%> (-0.80%)
:arrow_down:

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 d2419f5...38648ee. Read the comment docs.

Closed in favor of #1022 and #1025.


Turn ignore environment variables into pattern matching to ignore all bash functions

Different versions of module system export differently, use a pattern match to ignore all bash functions

Whoops this is wrong. This filters out everything


Resolves possible race conditions for PartitionsState on init

AmbryPartition is initialized with state = READ_WRITE. The state is resolved on the first call to getPartitionState(). This may cause some race conditions just after init causing the clustermap to return RO partitions as RW if certain conditions are met. This change resolves PartitionState before init is complete to avoid such race conditions.

Codecov Report

Merging #927 into master will increase coverage by <.01%.
The diff coverage is 94.11%.

@@             Coverage Diff              @@
##             master     #927      +/-   ##
============================================
+ Coverage     67.08%   67.09%   +<.01%
+ Complexity     4321     4319       -2
============================================
  Files           363      363
  Lines         28422    28427       +5
  Branches       3595     3596       +1
============================================
+ Hits          19068    19073       +5
- Misses         8339     8340       +1
+ Partials       1015     1014       -1

Impacted Files
Coverage Δ
Complexity Δ

...m.github.ambry.clustermap/HelixClusterManager.java
93.03% <100%> (+0.07%)
28 <0> (+1)
:arrow_up:

...va/com.github.ambry.clustermap/AmbryPartition.java
96.96% <92.85%> (+0.19%)
16 <6> (+1)
:arrow_up:

.../src/main/java/com.github.ambry.store/Journal.java
89.65% <0%> (-1.73%)
19% <0%> (-1%)

...in/java/com.github.ambry.store/BlobStoreStats.java
69.37% <0%> (-1.68%)
81% <0%> (-1%)

...ava/com.github.ambry.store/BlobStoreCompactor.java
92.42% <0%> (-1.12%)
119% <0%> (-3%)

...java/com.github.ambry.router/GetBlobOperation.java
90.43% <0%> (+0.2%)
34% <0%> (+1%)
:arrow_up:

.../java/com.github.ambry.router/DeleteOperation.java
93.23% <0%> (+1.5%)
44% <0%> (+1%)
:arrow_up:

...github.ambry.rest/AsyncRequestResponseHandler.java
90.87% <0%> (+3.25%)
23% <0%> (ø)
:arrow_down:

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 b061100...210d909. Read the comment docs.


How to know what permissions a user have, through API?

While building the UI, certain parts of UI need to know if user is allowed access or not.
For example,

menu links enabled/disabled,
buttons enabled/disabled

based on whether user is allowed to perform an action or not.
This requires querying what permissions a user have for the underlying resource/table etc.
Specifically, with the refine front-end to implement the access control provider we need a way to query what permissions a user has for a resource/action.
Documentation specifies how to set the permissions but does not specify how to get the users' existing permissions.
Any example that demonstrates how to achieve this functionality with nHost and Hasura backend permissions would be of great help.

I would think about this in terms of roles as you're using roles to set permissions.
You can get a user's default role by getting the whole user object like this:
const user = nhost.auth.getUser()

https://docs.nhost.io/reference/javascript/auth/get-user
If you have a more specific use case that would be helpful in giving you a more specific answer.

Thank you @elitan
The requirement is to know programmatically what a user is allowed to and what not allowed to do.
The goal is to implement access provider function as below:
        accessControlProvider={{
            can: async ({ resource, action, params }) => {
                // find out if user has permission or not from Hasura
                const result = await getUserRolePermissions({ resource, action, params })
                return Promise.resolve({ can: result });
            },
        }}

How to implement such function getUserRolePermissions with nHost / Hasura?
Please refer the below screenshot (from the nHost documentation how to set the permissions ).
Question is: After the permissions are set for a role, how to read them back through nHost API?

After the permissions are set for a role, how to read them back through Nhost API?

Yes, I think it's possible by letting the user do a GraphQL Introspection. This way you can see what you're allowed to do through the GraphQL API as that particular user.
But it's not as easy as reading the permissions directly, which I don't think is possible without admin access (server-side).

You cannot access to permissions from GraphQL introspection as this part of the Hasura metadata is not reflected in the GraphQL schema - it will only determine whether fields and relationships should be in the schema or not, depending on the user's permissions.
There is a workaround to expose permissions: you can create a Postgresql view that exposes the Hasura metadata, and track it in Hasura:
CREATE VIEW metadata as SELECT * FROM hdb_catalog.hdb_metadata;

It will probably require some transformation so you can filter the information that you need

@KrishnaPG Are you using the access control provider for client-side conditional rendering of certain components? If we were to expose a function on the SDK to retrieve user permissions, how would that work with complex permission rules? would you assume can: true simply because permissions are defined for a role+action? if not, you would have to traverse the permission rule and infer from it.

On a side note, Since Hasura already does this permission check for every read/update etc. action on a resource, it already has the code for the can function that we need.
It would be great if Hasura exposes that functionality as a metadata function, instead of nHost or the end-user App duplicating it again.

Sounds like this is an issue more for Hasura than for Nhost. Maybe it's worth creating an issue on Hasura's repo and seeing what they have to say?

Thank you @elitan opened an issue here: https://github.com/nhost/nhost/issues/575


Error chromium-pickle node-gyp rebuild while install

So far I got...
gyp ERR! build error
gyp ERR! stack Error: `C:\Program Files (x86)\MSBuild\12.0\bin\msbuild.exe` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onExit (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\build.js:270:23)
gyp ERR! stack     at emitTwo (events.js:87:13)
gyp ERR! stack     at ChildProcess.emit (events.js:172:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
gyp ERR! System Windows_NT 6.1.7601
gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"
gyp ERR! cwd D:\labs\hello-asar\node_modules\grunt-asar\node_modules\asar\node_modules\chromium-pickle
gyp ERR! node -v v4.2.2
gyp ERR! node-gyp -v v3.0.3
gyp ERR! not ok
npm ERR! Windows_NT 6.1.7601
npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "grunt-asar" "--save-dev"
npm ERR! node v4.2.2
npm ERR! npm  v2.14.7
npm ERR! code ELIFECYCLE

npm ERR<EMAIL_ADDRESS>install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>install script 'node-gyp rebuild'.
npm ERR! This is most likely a problem with the chromium-pickle package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get their info via:
npm ERR!     npm owner ls chromium-pickle
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     D:\labs\hello-asar\npm-debug.log

And here's for log
npm-debug.txt
Any hint? Thanks

@katopz This appears to have been fixed by the update-asar branch. We had the same reports over in https://github.com/melonjs/boilerplate/issues/20


File Icon 圖示

VSCode Version:1.5.1
OS Version: Windows 10

Steps to Reproduce:

HTML檔的icon在vscode-icons擴充套件提供的圖示比1.5版內建的圖示容易知道這是HTML檔。希望能改善圖示。

@MarkSky Can you please update the issue in English ?

Sorry!
I just have a suggestion.
After I update Visual Studio Code to version 1.5.1, I got it support file icon (File Icon Theme) in  it.
But I found the icon of html file in vscode-icons plugin is better and it is easier to know what the file is.
So I think maybe you can change the icon of html file in File Icon Theme.
Thanks.

Thanks for the clarification

@MarkSky We are using the Seti Ui theme icons from https://github.com/jesseweed/seti-ui/.
Please make icon requests there.
vscode-icons has also updated to the new icon selection dialog an now work without modifying VSCode!


Fortran allows declaration of variables within loops, contrary to what PWR002 says

The statement that "the Fortran programming language does not allow to declare variables inside loops, in the statements of the loop body." at https://github.com/codee-com/open-catalog/tree/main/Checks/PWR002 is incorrect, since Fortran 2008 introduced the BLOCK construct, described at https://www.ibm.com/docs/en/xffbg/121.141?topic=control-block-construct-fortran-2008 . For example, the following code compiles and runs with gfortran:
program main
implicit none
integer :: i,isq
do i=1,5
   block
      isq = i**2
      print*,i,isq
   end block
end do
end program main

You are right. We completely missed the Fortran 2008 BLOCK feature. We take note, and we will soon update the rule accordingly.
We will let you know when the wording gets updated. Until then, the issue will remain open.
Thank you very much!

Just a small change in the code snippet to showcase what @Beliavsky tried to show:
program main
implicit none
integer :: i
do i=1,5
   block
    integer :: isq !> variables can be defined here
      isq = i**2
      print*,i,isq
   end block
end do
end program main

Resolved in #9! Thank you all for your feedback :)


XML bulk file count discrepancies in 2023

The count of XML files shown on CAMPD for 2023 Q3-Q4 does not match what is in the database. Investigation needs to be conducted to find out the reason for the discrepancy and to address any issues.

| CAMPD QA | PUB QA | CAMPD EM | PUB EM
-- | -- | -- | -- | --
2023Q3 | 1097 | 1098 | 1327 | 1331
2023Q4 | 990 | 992 | 1262 | 1269

Example EM XML files query for CAMDPUB:
select count(distinct uf.orispl_code) from unit_fact uf  join CAMDDMW.QUARTER_UNIT_DATA q  on (uf.unit_id = q.unit_id and  uf.op_year = q.op_year and  q.op_quarter = 3)  where uf.op_year = 2023  order by uf.orispl_code asc;
Example QA XML files query for CAMDPUB:
select count(distinct ORIS_CODE) from CAMDDMW.ecmps_xml_dataset_hist where file_type_cd = 'QA' and rpt_period_id = 123;

2023Q3:
CAMPD is missing a QA file for ORIS 61144
CAMPD is missing EM files for ORIS 399, 7212, 55223, 56018
2023Q4:
CAMPD is missing QA files for ORIS 7909, 59093
CAMPD is missing EM files for ORIS 6096, 6124, 55042, 55087, 55197, 55297, 60698

@mark-hayward-erg and @annalbrecht Before we get started on this research, would it take less LOE to manually fix the problem? e.g., manually moving the missing files from CAMDPUB to the S3 bucket.
And when is the next bulk file update? Do you think this issue could be fixed with the next upload?

Mark will review the data and logs on CAMDPUB and CAMDBSP to attempt to determine why the listed files were not attempted as part of the XML dataset process on CAMDPUB.
Mark will create a script to be run on CAMDPUB (and/or CAMDBSP if necessary) to attempt to create and transfer the missing files to CAMPD.


Assertion failed: attr.test(col_attr_List)

Goals
append object in list
Expected Results
Object in the list of another object
Actual Results
/Users/realm/workspace/realm_realm-core_release_6.0.4/src/realm/list.cpp:93: [realm-core-6.0.4] Assertion failed: attr.test(col_attr_List)
0   Realm                               0x00000001061923ac _ZN5realm4utilL18terminate_internalERNSt3__118basic_stringstreamIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE + 28
1   Realm                               0x0000000106192666 _ZN5realm4util9terminateEPKcS2_lOSt16initializer_listINS0_9PrintableEE + 390
2   Realm                               0x00000001060c8e41 _ZNK5realm3Obj16get_listbase_ptrENS_6ColKeyE + 561
3   Realm                               0x0000000105b66878 _ZN5realm4ListC2ENSt3__110shared_ptrINS_5RealmEEERKNS_3ObjENS_6ColKeyE + 312
4   Realm                               0x0000000105b66a25 _ZN5realm4ListC1ENSt3__110shared_ptrINS_5RealmEEERKNS_3ObjENS_6ColKeyE + 37
5   Realm                               0x0000000105ca036e -[RLMManagedArray initWithParent:property:] + 206
6   Realm                               0x0000000105cc96fe RLMInitializeSwiftAccessorGenerics + 1038
7   Realm                               0x0000000105cccb0e _Z23RLMCreateObjectAccessorR12RLMClassInfoON5realm3ObjE + 158
8   Realm                               0x0000000105cbafa3 +[RLMObjectBase objectWithThreadSafeReference:metadata:realm:] + 419
9   Realm                               0x0000000105e4ae6a _ZZ50-[RLMThreadSafeReference resolveReferenceInRealm:]ENK3$_1clEv + 122
10  Realm                               0x0000000105e4ab75 ZL15translateErrorsIZ50-[RLMThreadSafeReference resolveReferenceInRealm:]E3$1EDaOT + 21
11  Realm                               0x0000000105e4aaed -[RLMThreadSafeReference resolveReferenceInRealm:] + 173
12  Realm                               0x0000000105daf4dc -[RLMRealm resolveThreadSafeReference:] + 60
13  RealmSwift                          0x000000010462d85f $s10RealmSwift19ThreadSafeReferenceV7resolve2inxSgAA0A0V_tF + 223
14  RealmSwift                          0x000000010462db86 $s10RealmSwift0A0V7resolveyxSgAA19ThreadSafeReferenceVyxGAA0D8ConfinedRzlF + 102
15  Sakini                              0x00000001029157ae $s6Sakini9DBManagerC19AppendStudentToNote4note7studentyAA0F0C_AA0D0CtFyycfU + 190
16  Sakini                              0x0000000102819070 $sIeg_IeyB_TR + 48
17  libdispatch.dylib                   0x000000010c529f11 _dispatch_call_block_and_release + 12
18  libdispatch.dylib                   0x000000010c52ae8e _dispatch_client_callout + 8
19  libdispatch.dylib                   0x000000010c5316fd _dispatch_lane_serial_drain + 788
20  libdispatch.dylib                   0x000000010c53228f _dispatch_lane_invoke + 422
21  libdispatch.dylib                   0x000000010c53db65 _dispatch_workloop_worker_thread + 719
22  libsystem_pthread.dylib             0x000000010c97fa3d _pthread_wqthread + 290
23  libsystem_pthread.dylib             0x000000010c97eb77 start_wqthread + 15!!! IMPORTANT: Please send this log and info about Realm SDK version and other relevant reproduction info to help@realm.io.(lldb)
Code Sample
//Students in Notes List
 func appendStudentToNote(note:Note, student:Student) {

     let studentRef = ThreadSafeReference(to: student)
     let noteRef = ThreadSafeReference(to: note)

     DispatchQueue(label: "Realm", qos: .background).async {
         let realm = self.SyncUserRealm()

         guard let student = realm.resolve(studentRef) else {
             return // No Student
         }
         guard let note = realm.resolve(noteRef) else {
             return // No Course
         }
         try! realm.write {
             note.students.append(student)
         }
     }
 }

 //Notes in Student List
 func appendNoteToStudent(note:Note, student:Student) {

     let studentRef = ThreadSafeReference(to: student)
     let noteRef = ThreadSafeReference(to: note)

     DispatchQueue(label: "Realm", qos: .background).async {
         let realm = self.SyncUserRealm()

         guard let student = realm.resolve(studentRef) else {
             return // No Student
         }
         guard let note = realm.resolve(noteRef) else {
             return // No Course
         }
         // Persist your data
         try! realm.write {
             student.notes.append(note)
         }
     }
 }

Version of Realm and Tooling
Realm framework version: 5.0.0
Realm Object Server version: Realm Cloud
Xcode version: 11.5 beta
iOS/OSX version: 10.15.5

I can confirm this issue

Can either of you supply a code sample which reproduces this?

More than the code above ?

Yes - a project that compiles and runs please

This issue has been automatically closed because there has been no response to our request for more information from the original author. With only the information that is currently in the issue, we don't have enough information to take action. Please reach out if you have or find the answers we need so that we can investigate further.


Can see ZoneMinder thumbnails, but can't view full images

Home Assistant release with the issue:

0.88.2
Last working Home Assistant release (if known):
n/a
Operating environment (Hass.io/Docker/Windows/etc.):

VDI version of Home Assistant, running in VirtualBox on Ubuntu 18.04 LTS
Component/platform:

https://www.home-assistant.io/components/zoneminder/
Description of problem:
I can view the thumbnail of my ZoneMinder cameras:

But clicking on them to view the full sized image shows a broken image:

Right-clicking on an image and opening it in a new tab gives me a 401: Unauthorized message that appears to come from HA and not from ZoneMinder (as a login attempt is logged in Home Assistant):

Login attempt or request with invalid authentication from 1xx.xx.xx.xxx
1:39 PM components/http/ban.py (WARNING) - message first occured at 9:56 AM and shows up 15 times

I've tried:

Turning OPT_USE_AUTH on and off in ZM
Added and removed the username / password settings in my config.yaml (in various combinations, such as using only a username with OPT_USE_AUTH off etc.)
Created a ZoneMinder user with the same credentials as my Home Assistant user
Created an access token in HA and replaced ?token=undefined with that token

I wonder if the issue is with the ?token=undefined as shown in the screenshot above, but that's just a guess. I haven't been in to the component source to look at it as Python isn't a language I know.
Problem-relevant configuration.yaml entries and (fill out even if it seems unimportant):
zoneminder:
  - host: <IP_ADDRESS>
    path_zms: /zm/cgi-bin/nph-zms
    username: myname
    password: mypassword

Traceback (if applicable):

Additional information:
ZM is running on Ubuntu Server 18.04 in a separate VM on the same host as the HA VirtualBox VM. I can access the ZM web interface and view the cameras, can ping ZM from HA, and ping HA from ZM.
I'm on ZoneMinder 1.32 (I think. I'm at work and can't check from here, but it was installed from PPA about 3 weeks ago)
EDIT: I was able to access my ZoneMinder cameras via the API:
http://<IP_ADDRESS>/zm/cgi-bin/nph-zms?monitor=1
So the ZM API isn't the issue here.

I've got zm up and running with my hass instance.  I haven't done all the things you've tried but i can give you my settings and what i did:

OPT_USE_AUTH is not checked
Within ZM, add a new user via Options -> Users
Within ZM create a user with any username/password (keep for later)
Within ZM give user access to stream, monitor, etc.  I think at first I just gave them access to everything
Within HASS use the user info you entered in (3) as the user/password in your config.yaml snippet that you posted above.

This is all I have for my config
zoneminder:
  host: <IP_ADDRESS>
  username: zm-user-created
  password: zm-user-password

With the exception of path_zms: /zm/cgi-bin/nph-zms, which I've now removed, my settings are exactly the same as yours. I double checked permissions for my ZM user (which had every possible permission enabled) and I still get the 401: Unauthorized.
This is also happening on 0.90.2. My HA won't update to 0.91.3 for some reason, so I might have to re-do my HA installation, so I'll see if that resolves the issue.


Author not preserved in azure

When deploying/locking, etc in the kuberpult UI in azure, the author is not written correctly, instead the default author is used.
Since: 1.0.2

fixed in 1.0.3


Resurrection shards don't drop

Teodorikus, a member of the Omega SMP has reported resurrection shards to not work. They do not own a GitHub account, so I will be adressing this issue for them.
Expected behavior:
-on death-ban, an OP item and a resurrection shard drops
Actual behavior:
-on death-ban, an OP item does drop, but a resurrection shard doesn't

Reproduced the exact same environment as the Omega SMP, I cannot reproduce the bug though. This issue will be marked as "can't reproduce".


Always infer dependencies in build-script

As preparation to move products from build-script-impl to build-script, we need to always enable dependency inference.

@swift-ci smoke test

@swift-ci smoke test

@swift-ci smoke test

@gottesmm Yeah, I'm still trying to find the best way to do it. Maybe enabling it by default and disabling it via flag is the better option for now? I.e. turn --infer (toggle_true) into --no-infer (toggle_false)?


Filtering and zoom controls - map updating

Difficult one to explain but when you have a layer that is only visible at certain zoom levels the map updating when you filter can mean that you zoom out and the layer is no longer visible.
For an example look at the filter on shopper town in MAPP_test or i can show you what i mean in the next catch up
Not sure if this is an issue or something we need to think about as part of usability and how we set this up

I've actually changed the zoom levels on that one so it works now but still might be one for us to consider as this won't be possible everywhere


[!] error retrieving IAM Identity Center token from secure storage: The specified item could not be found in the keyring

[!] error retrieving IAM Identity Center token from secure storage: The specified item could not be found in the keyring
This error appears during init when the user runs:
granted sso populate --sso-region ap-southeast-2 https://company.awsapps.com/start --prune
After placing a temp profile into ./aws/config
(Ubuntu 24.04)

can confirm there's nothing except a config file in .aws but we'll check for variables such as open applications, and give the vm a reboot etc. see what works and report-back.

we had another user where it wasn't working, what appeared to fix it for him eventually was snap refresh so was likely a system patch state issue. will close for now.


How to solve "Exception Message:\n\nUndefined index: column"

Summary of problem or feature request

Following an update to Laravel 8, I have updated the package and followed the update guide of this package. However, some datatable in my application fail with the error Exception Message:\n\nUndefined index: column, but only when changing page with a column ordered. (The inital render works fine, and I can succesfully reorder by any column if I stay on page 1)
Code snippet of problem
Using the following datatable definition:
import React from 'react';
import Datatable, {
    createColumn,
    createCustomColumn,
    buttons,
} from 'components/Datatable';
import { userHasAdminPermission } from '../../../../Helpers/permissions';

const DATAGRID_URL = 'admin/customers/table';

const getColumns = (user) => {
    const canManage = userHasAdminPermission(user, 'Gérer les clients');
    return ([
        createColumn('name'),
        createCustomColumn('CustomerNumber', 'customer_number'),
        ... canManage ? [createColumn('manage', {
            render: (_value, { id }) => buttons.edit(`/admin/customers/${id}`, ''),
            orderable: false, searchable: false
        })] : [],
    ]);
};

const propsAreEqual = (prev, next) => prev.textFilter === next.textFilter && prev.user === next.user;

const UserTable = React.memo(({ textFilter, user }) => {
    const getRequestParameters = () => ({});
    return (
        <Datatable
            url={DATAGRID_URL}
            columns={getColumns(user)}
            requestParameters={getRequestParameters()}
            searchInput={textFilter}
            hideHeader
            orderColumnIndex={0}
        />
    );
}, propsAreEqual);

export default UserTable;

The following headers are sent to the server:
columns[0][searchable]: true
columns[0][orderable]: true
columns[0][search][value]:
columns[0][search][regex]: false
columns[0][name]: name
columns[0][data]: name
columns[1][searchable]: true
columns[1][orderable]: true
columns[1][search][value]:
columns[1][search][regex]: false
columns[1][name]: CustomerNumber
columns[1][data]: customer_number
columns[2][searchable]: false
columns[2][orderable]: false
columns[2][search][value]:
columns[2][search][regex]: false
columns[2][name]: manage
columns[2][data]: manage
start: 10
length: 10
search[value]:
search[regex]: false
order[0][column]: 0
order[0][dir]: desc
draw: 2

and the response is

Controller code:
use Yajra\DataTables\DataTables;
[...]
public function customers(Request $request)
    {
        $query = Customer::actives();
        return DataTables::of($query)->make(true);
    }

EDIT
Changing the controller code to this "solves" the issue.
public function customers(Request $request)
    {
        $query = Customer::actives();
        return DataTables::of($query)->order(function($query) {})
        ->make(true);
    }

However, using the orderColumn api, it results in the same error. There seem to have a bug with the order and orderColumn api?
public function customers(Request $request)
    {
        $query = Customer::actives();
        return DataTables::of($query)->orderColumn('customer_number', 'CustomerNumber $1')
        ->make(true);
    }

System details

Linux ubuntu 20
PHP 7.4
Laravel Version 8.48.2
Laravel-Datatables Version 9.18.1

Need help on this one as I haven't used reactjs and can't replicate the issue. However, I am currently playing with VueJS and all seems to work fine along with the html builder and via manually jquery scripts.
The params sent to server looks correct but it seems like the request data is not being read by server properly.
order[0][column]: 0
order[0][dir]: desc

I had exactly the same issue. The problem was not associated with reactjs, but with the MSSQL database. The exception was in Illuminate\Database\Query\Grammars\SqlServerGrammar: 220
I solved the problem by bumping Laravel version.
Related Laravel PR:
https://github.com/laravel/framework/pull/37859


Test mode or how to disable gon completely for the Test environment / Spec type?

Greetings, gentlemen.
Gon never gave me any pain until last night when I decided to write specs for one of my controller concerns (simplified example):
shared_examples_for :concernable do
    describe '#meffod' do
      let(:controller) { described_class.new }

        it 'assigns a new thingie as @thingie' do
          get :new
          expect(assigns :thingie).to be_a_new Thingie
        end
      end
  end

RSpec.describe ThingiesController do
  describe 'concerns' do
    it_behaves_like :concernable
  end
end

ThingiesController
  concerns
    behaves like concernable
        #meffod
            assigns a new thingie as @thingie (FAILED - 1)

Failures:

  1) ThingiesController concerns behaves like concernable #meffod assigns a new thingie as @thingie
     Failure/Error: get :new
     NoMethodError:
       undefined method `uuid' for nil:NilClass
     Shared Example Group: :concernable called from ./spec/controllers/thingies_controller_spec.rb:44
     # /Users/jibiel/.rvm/gems/ruby-2.2.3@gemset_name/gems/gon-6.0.1/lib/gon/helpers.rb:50:in `gon_request_uuid'
     # /Users/jibiel/.rvm/gems/ruby-2.2.3@gemset_name/gems/gon-6.0.1/lib/gon/helpers.rb:33:in `gon'
     # /Users/jibiel/.rvm/gems/ruby-2.2.3@gemset_name/gems/gon-6.0.1/lib/gon/spec_helpers.rb:11:in `process'
     # /Users/jibiel/.rvm/gems/ruby-2.2.3@global/gems/actionpack-4.2.4/lib/action_controller/test_case.rb:512:in `get'
     # ./spec/support/shared_examples/controllers/concerns/singular.rb:23:in `block (5 levels) in <top (required)>'
     # /Users/jibiel/.rvm/gems/ruby-2.2.3@global/gems/activesupport-4.2.4/lib/active_support/dependencies.rb:268:in `load'
     # /Users/jibiel/.rvm/gems/ruby-2.2.3@global/gems/activesupport-4.2.4/lib/active_support/dependencies.rb:268:in `block in load'
     # /Users/jibiel/.rvm/gems/ruby-2.2.3@global/gems/activesupport-4.2.4/lib/active_support/dependencies.rb:240:in `load_dependency'
     # /Users/jibiel/.rvm/gems/ruby-2.2.3@global/gems/activesupport-4.2.4/lib/active_support/dependencies.rb:268:in `load'
     # /Users/jibiel/.rvm/gems/ruby-2.2.3@gemset_name/gems/spring-commands-rspec-1.0.4/lib/spring/commands/rspec.rb:18:in `call'
     # /Users/jibiel/.rvm/gems/ruby-2.2.3@global/gems/spring-1.3.6/lib/spring/command_wrapper.rb:38:in `call'
     # /Users/jibiel/.rvm/gems/ruby-2.2.3@global/gems/spring-1.3.6/lib/spring/application.rb:183:in `block in serve'
     # /Users/jibiel/.rvm/gems/ruby-2.2.3@global/gems/spring-1.3.6/lib/spring/application.rb:156:in `fork'
     # /Users/jibiel/.rvm/gems/ruby-2.2.3@global/gems/spring-1.3.6/lib/spring/application.rb:156:in `serve'
     # /Users/jibiel/.rvm/gems/ruby-2.2.3@global/gems/spring-1.3.6/lib/spring/application.rb:131:in `block in run'
     # /Users/jibiel/.rvm/gems/ruby-2.2.3@global/gems/spring-1.3.6/lib/spring/application.rb:125:in `loop'
     # /Users/jibiel/.rvm/gems/ruby-2.2.3@global/gems/spring-1.3.6/lib/spring/application.rb:125:in `run'
     # /Users/jibiel/.rvm/gems/ruby-2.2.3@global/gems/spring-1.3.6/lib/spring/application/boot.rb:18:in `<top (required)>'
     # -e:1:in `<main>'

Finished in 0.13779 seconds (files took 0.7251 seconds to load)
1 example, 1 failure

So the problem is with the get :new request from within shared_examples_for block.
When I write get :new directly in my controller spec, everything's fine.
I also have gon callback disabled for the test environment:
before_action :gonify, unless: -> { Rails.env.test? }

or even have commented it out:
# before_action :gonify

Nevertheless it throws me the above-mentioned NoMethodError: undefined method 'uuid' for nil:NilClass. I've also tried to mock the request object, no go.
Only when I remove gon competely from my Gemfile the requests from the shared_examples_for and the controller specs are starting to show the same behavior.
So my question is do you have any workaround for the cases like this one? Probably the test mode like these thingies have:
# spec/support/geocoder.rb
Geocoder.configure lookup: :test

# spec/support/warden.rb
RSpec.configure do |config|
  config.include Warden::Test::Helpers

  config.before :suite do
    Warden.test_mode!
  end

  config.after :each do
    Warden.test_reset!
  end
end

# spec/support/omniauth.rb
OmniAuth.config.test_mode = true

I guess for now I could explicitly specify the gem for all the environment groups except :test in the Gemfile:
group :development, :staging, :production do
  gem 'gon'
end

but it would be nice to be able to disable gon completely for some types of specs while keeping it intact for the integration specs.

A similar report.

Thank you for Issue.

So my question is do you have any workaround for the cases like this one? Probably the test mode like these thingies have:

Currently, No, I do not.

but it would be nice to be able to disable gon completely for some types of specs while keeping it intact for the integration specs.

It sounds good iead.

Have any workable solutions emerged on this issue?


Is there a way to make a header group?

Hi everyone! I need to make a header group but I did not find an example nor documentation about it.
Can you help me please?

@Nahuel92 we didn't support group feature yet, need some time.

:+1:
making quite a lot use of header groups.


[$500]  iOS - BA - When minimizing the app on the Onfido page, the process is restarted

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 1.3.84-0
Reproducible in staging?: Yes
Reproducible in production?: Yes
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
Issue found when executing PR https://github.com/Expensify/App/pull/27432
Action Performed:
Pre-requisite: user must be logged in

Go to Settings > Workspaces > Any workspace > Connect Bank Account > Add manually
Complete the process until your reach the Onfido page
Initiate the process
Minimize the app
Open New Expensify again

Expected Result:
The app should resume the process already in place
Actual Result:
The Onfido process is restarted, creating multiple processes
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

https://github.com/Expensify/App/assets/78819774/fdc18183-491f-4b43-b849-b2d8a01d5b9d

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01dffa0a3c07ac7498
Upwork Job ID:<PHONE_NUMBER>020355584
Last Price Increase: 2023-10-17

I think this is in Onside part, and not the bug in our end

I believe this is intentional.
If a user leaves the app during the photo phase, them being redirected to the screen just before taking a picture informs them what it is they were taking a picture of.
Should a user minimizes the app and stay away for a long time, they'll probably be confused why the camera is open and will most likely navigate back to find out what it is they were doing in the first place.

Closing!


Build out performance hub production

User Story
Build out the performance hub infrastructure in the production environment as the next step of continuing the performance hub migration.
Value
Infrastructure for production is ready for Jeremy to start using.
Questions / Assumptions

Should be as simple as uncommenting the production job and deploying the infrastructure.
Definition of done

[ ] performance hub infrastructure build for production
[ ] another team member has reviewed
[ ] tests are green

Reference
How to write good user stories

Please add your planning poker estimate with ZenHub @seanprivett


Prerequisites should reference other test cases in...

This issue has been extracted from the issue list on:https://ies-svn.jrc.ec.europa.eu/issues/2685
Comment
Prerequisites should reference other test cases in the same ATS or a conformance class, not introduce additional assertions.
Proposed Change
Move assertions to the test methods.

Harmonize approach with WMS ATS.

This issue will be addressed by the cross cutting issue 6


Support for limiting operations by field

Hi!
The goal of this PR is to be able to limit the predicates generated by field.
This was motivated by the fact that some fields, e.g. slug, should have less flexibility on how they are filtered, i.e. slug and slugIn as the only predicates instead of slugNEQ, slugNotIn, etc.
Linted using golangci-lint.
Tests updated and passed for using the AllowedOps annotation on the username field.

Rebased onto latest changes from main branch. Conflict in schema_relay.graphql resolved and confirmed tests are still passing as well.

@a8m Can your provide feedback on what you wanted changed with this PR? I'd like to get those made so this is in a mergable state :)

Hi! Pinging this thread to see if there are any additional changes needed?

Thanks for the feedback! I'll get those changes made 😄

@a8m I've updated this PR with the requested changes. Please let me know if these match your expectations :)
Some notes:

I prefixed the values with Ops, i.e. entgql.OpsEQ instead of just entgql.EQ to make it easier to autocomplete when trying to select an ops value for a bitwise operation.
There is a mapping between entgql.Ops and entc/gen.Op, with a test function used to ensure the two types are kept in sync. Alternatively, we could move to a shared type between both packages, but I felt it was easier to use the Ops features if they were under the entgql package.

I've updated my project to use these changes and they work as expected. For those wanting to try the same, you can use a go.mod replace directive to try them more easily:
replace entgo.io/contrib => github.com/nadeemc/contrib v0.0.0-20240525181828-ded33d628a61

@a8m Please let me know if you'd like any other changes here :)

Hi @a8m! Checking in to see if you'd like any other changes before this can be merged.

Earlier today, I had an interesting conversation about this PR with a colleague. It is true that:

You can limit which entities hare visible in your GraphQL schema with entgql.SkipAll annotations at the table level.

You can limit which fields from those tables are visible in the GraphQL schema with entgql.Skip annotations as well.

[This PR] You can limit which operations are available on those fields in your GraphQL schema.

However, you really only need to limit available operations on a GraphQL visible field if you are not using persisted queries. When you do use persisted queries, you already have safety guarantees around which operations are valid anyway.
So, this PR practically helps the most with:
A) Non-persisted queries in production (likely a bad idea anyway)
B) Limit which operations your developers can use on a field (likely an unnecessary constraint)
As a result, this PR may not be needed. It doesn't hurt, but not sure how much it helps.

Hi! Thank you for the earlier review and feedback, but I'm going to close this PR as unneeded. I'd recommend others use persisted queries to tackle this problem and that's the direction I'll be going in as well.


Parse fixed resource names from regular CollectionConfigProto

Deprecate FixedResourceNameValueProto; it will still be supported because Pubsub needs it right now before the change is made.
Any resource name entities, defined in CollectionConfigProto, that do not have params in their pattern will be treated as Fixed resource names.

PTAL

PTAL

PTAL

responded to comments.