Pass the coordinates directly?

I'd like to use it to screenshot a specific DOM element for Selenium-like automation.
How do I specify the coordinates directly instead of the pixel markers? I could just use the boundingRect property to figure out the coordinates myself and then pass it to this utility. Also I'll need some chrome extension to suppress the security policy by default.

I think the easiest way would be to take the whole-page screenshot and then in your script calculate the bounding client rectangle like you said and use canvas to crop the screenshot to that. Alternatively, you could fork this repository and just offset the markers (see body::before and body::after in index.css). For this you still need to find the relative position of the element though - or you could change the CSS to draw the markers around your element and not the body.
Are you looking at this repository because you're interested in a fully client-side solution? Just in case this is workable for you, take a look at Playwright, it would be really easy to write a Playwright script to screenshot a DOM node for any sort of further checking or processing if you can use that.
Alternatively, if you are going to write a Chrome extension anyway, you could use the Chrome extension API. This article describes how to make a Chrome extension which works basically the same way as this script: it gets a stream of the page's recording and grabs a frame from it to use as a screenshot:
https://blog.shahednasser.com/how-to-take-screenshots-in-chrome-extension/

take a look at Playwright

I'm not choosing the framework -- I already use the https://github.com/rubycdp/ferrum -- but it has viewport bugs so their screenshoting captures some invalid region. Then I tried the html2canvas
browser.evaluate_async "html2canvas(document.querySelector('#page_wall_posts')).then(function(canvas){ __f(canvas.toDataURL()) })"

but everything was looking wrong on the image and then I realised they kinda reinvent the rendering engine, lol. Then I saw this comment https://github.com/niklasvh/html2canvas/issues/2509#issuecomment-846451368

if you are going to write a Chrome extension

Not sure about that. I'm working on an urgent project where the screencapturing is just one of the desired features. I'm looking for the simplest solution and to solve the policy issue I hope to find already existing extension like I already did to allow the js asset injecting to inject the html2canvas in my current experiments.
The API I want has to be just coordinates or a DOM selector.

and use canvas to crop the screenshot to that

This would work for me too, I agree. Now how do I get a full page screenshot? I wish this project had some more ready-to-use JS snippets I could copypaste into browser console to play around.

And thank you for the quick response!

Also about the demo page.
When I chose the current tab

Chrome shows some bar at the top with a button but it lasts just a second and I can't even read the text on it so fast -- probably I have to press there to allow something. But after a second you page decides something is broken.

Maybe because the chrome bar moves the bottom pixel out of the screen? I don't know, just guessing.

Are you able to automate selecting stuff in and confirming this dialog for screens sharing with Ferrum? If you want to use my script for automating your screenshot taking via client-side scripting, you will need to find a way to automate this dialog. Ferrum seems to be a Chrome DevTools Protocol (CDP) wrapper like say Puppeteer and the advantage there is that they give you the ability to get the screenshot without any user-interactivity. This script cannot do that due to the browser security model requiring explicit user permission via the interaction with this dialog.
Also this script is quite old and was never that reliable. You are probably right that the modal covers the pixel marker. I don't use Chrome so I haven't looked at whether this works there for a long time. The delay you are seeing is coming from this: https://github.com/TomasHubelbauer/selfie/blob/99c3d6b6ff6549a8f5b632b94dfe53e2a6cad40c/snap.js#L12
You could fork the repository and increase the interval to see if it helps.
Maybe something I could recommend is use Ferrum to add markers around your desired DOM element like is done via index.css in this repository, take the picture of the whole viewport and then use https://github.com/TomasHubelbauer/selfie/blob/main/scan.js to find the crop coordinates and do the crop with canvas. It it possible that this could work nicely for you but I don't think my script will save you time when it comes to the actual screenshot capture because it is mostly a giant hack, nothing to rely on.

they give you the ability to get the screenshot without any user-interactivity

If only ferrum had no viewport bugs.

explicit user permission via the interaction with this dialog

I believe this https://github.com/WICG/proposals/issues/32#issuecomment-857821524 solves it, I'm yet to know if my Chrome is updated enough.
Let's think of my problem being split in half and I now just need at least a full page screenshot to start with. Need some full snippet to obtain the canvas with the image drawn on it. I'm unfortunately not a JS specialist so even that "import snap" line from README is a hack for me, I just copypaste.

I remember this flag definitely not being supported yet when I was initially working on it, but it is possible it is there now and if so, that would be great because I assume then it allows you to take the screenshot completely non-interactively. Unfortunately I can't help beyond this, but I would for sure recommend filing an issue or opening a fix PR with Ferrum, because something so basic as taking the full page screenshot should work. I know this won't solve your immediate issue if you're on a deadline, but at least it would help future programmers looking to solve a similar issue.

window.setTimeout(resolve, 1000)

This could be a parameter in your utility. It depends on how user is solving the permission issue and maybe one isn't able to make the pixels visible in time.

Unfortunately ferrum guys just don't seem to have time or will to figure out how to properly fix and test viewport issues: https://github.com/rubycdp/ferrum/issues/203
That's why I looked for alternative JS-based/automation-agnostic solutions.

This timeout doesn't start when the dialog to select the tag appears. It starts when the dialog is submitted, but Chrome has (used to have?) an animation that would take some time to hide the dialog. It wasn't one second long, but I also found that in Chrome, the screen recording would start with a fraction of a second where the colors were completely off and they would only stabilize later in the video. I added this extra second for Chrome to be able to get its shit together because after one second both the dialog should definitely be gone and the colors in the encoded video should have definitely stabilized. In reality, it is overly generous.
I just tried in Firefox and it couldn't find the markers either with my up to date Firefox installation. The problem is the markers' colors get washed out by the video compression so I had to build a table mapping the expected color to the real color as it ends up being ruined by the video compression. The codecs used for screen recording in various browsers change and so do their settings from release to release. Firefox used to relatively accurately preserve the marker colors, but now it seems to desaturate them a lot. This breaks the marker detection and I am pretty sure the same is true in Chrome hence the error message you are seeing on your end.

In that case I am afraid you're going to need to try to fix this yourself in Ferrum and use your own fork for the tests if they don't accept the contribution back. I would like to help you, but this script I made was plagued by reliability issues already when I made it and using it for reliability tests would only amplify the trouble it would give you. I am afraid it would cause you more time to troubleshoot the issues across browser updates etc. than it would save you.


Remove Send + Sync requirement on OpenMlsKeyStore

Send + Sync requirement is needed for rayon to work. It turns out that
OpenMlsKeyStore is never accessed in parallel so such bound is not
necessary.
Use case: rusqlite's Connection is not thread-safe so it is not possible
to save credential and key package bundles in SQLite out of the box.
Possible alternatives:

Unsafely implement Send + Sync on Connection.
This is what Wire app uses (Reference)
Add a cargo feature to disable parallelization.

What do you think?

I think I'd rather prefer having this behind and not remove it completely. While I see that these trait bounds can make problems in some cases they are pretty nice in others.
Another option might be to have an AsyncKeyStore and a KeyStore to chose from.

Alright! Thanks for checking this PR


Add support for newer version of template-haskell (>= <IP_ADDRESS>)

I got this error while trying to compile the package, version <IP_ADDRESS>.

After some debugging, I found out that the error was due to the fact that the type of the Conp data constructor from the template-haskell package have changed from being ConP Name [Pat] (reference) to ConP Name [Type] [Pat] (reference) in all the versions >= <IP_ADDRESS>.
Could you please look into this? I'm happy to make a PR to fix this, so please let me know if you'd be open to that.
Thank you.

Thanks for reporting this @quyumkehinde! Please feel free to send a PR :smile:

@akshaymankar please check out the PR here

@akshaymankar any chance the updated code will be uploaded to Hackage anytime soon? :)

Yes, I will update the CI to ensure tests happen with GHC 9.2 and 9.4. If all goes well, this should soon be on hackage soon :)

@quyumkehinde I've published version <IP_ADDRESS>. Thanks again for noticing and fixing the issue :rocket:


Add 5.6 release notes to TOC

Docs Build status updates of commit fa3ba8d:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/release-notes/Index.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


build: Initialize changesets

This PR initializes changesets in the client and azure release groups. This only adds the dependencies and config files. CI enforcement and tool improvements will be in future PRs.

It would probably be worth updating the 2 release group READMEs to document this tooling and how it is intended to be used.

That'll be in a later change.

does the changeset tooling support comments in the config.json files?

Alas, they do not. I filed https://github.com/changesets/action/issues/277 though.


[FEAT] Add a Help feature

Add a help feature.
We have a Help button in the (R) user icon button dropdown menu.
It does not have anything associated with it.

Hi @gbowne1 please assign this issue to me. Also, explain what the expected functionality of this feature is.

@BlackBond06
This feature basically is a help system for users who may be having issues using the app, and may provide the user with contact information.  It would describe what to do when users have issues with the app. It may also include some directions/instructions on using the app.  It would be available by using the icon in the dropdown menu under the (R) user icon/avatar

@gbowne1
Cool. I'm thinking we can use A.I for this one. Like those automated personal assistants on Web sites. We can give it answers to common problems we think user will come across. But if a user ask a question that isn't covered in the answers we supplied, we can just display an email form and ask that the user describ the problem and mail to the support team. What do you think ?

I think thats a bit beyond the scope just yet.  Most problems could be described easily in a page.  Could just breadcrumb that page. We don't have users yet, so ideally the best way would be to have a small number of users test the application and describe the problems they had.  We will have to collect some data and try and use it ourselves to come up with some good solutions.  So, maybe it's best for now to provide just a form email and support team contact.  Add Formik and Yup to do all the form and form validation stuff.

I totally agree. I will begin working on it today. Will formik handle the actual email sending or do I have to use nodemailer ?

nodemailer will handle emails just fine. it's already installed.  Its handling password reset etc functionality.   Formik and Yup handle forms really well.
AI is fine, but it's overkill, at least for now.  We need to collect the data on problems people  are having..  but also provide adequate documentation on how to use the App.  Later on we can write some FAQ's.

https://www.npmjs.com/package/formik
https://formik.org
https://www.npmjs.com/package/yup
It's a good really object schema validatior..

Okay. Thanks for the resources

yvw! I found the videos helpful.  I can help with Yup.

Hi @gbowne1 I have been going through the support page for a couple of popular websites for inspiration and a common feature I noticed, is  the presence of a search bar just below the top of the support page, where users can enter their query for help. I know at this stage of the app, the search bar may not do anything since we don't have data on the problems user have, but should I include it in the design in addition to the form, since it is a common feature of support pages ?

that is a great idea.  I had not thought of that.  This is why I started this project. People usually have way better ideas for designs and features than me :-} and I agree this sort of thing would be handy.

Hi @gbowne1, I need clarification about the form in help feature. Should it just have one input element for the user's email and a textarea for the query description ? or is there any other information we might need from the user?

This is what I have so far:
https://github.com/gbowne1/codebooker/assets/100074330/b961e6af-2968-47df-845a-6c906edf7028

@BlackBond06 I would think email, username and a text area would be great. Eventually we can replace with a more robust system with a scenario based help system including all the 'What to do if x or y happens' type system.  That looks great.

So I can proceed with what I have so far ?

Yes you can.

Hi @gbowne1, Aside sending the query from the form to the codebooker mail address, should it be saved in the db as well ?

@BlackBond06
Yes at least in my opinion it should be saved in the db.

I thought so. I created a supportModel schema with the following properties (subject to change):

userId
description
status
createdAt

What are your thoughts ? Are there  other properties I should add ?

@BlackBond06 I think that is a great start.  We can always iterate.

Cool. I should make a PR for this feature by tomorrow. I'm almost done.

Alright, looking forward to the PR.
No rush at all.  I am all for quality over quantity.
I will be posting some contributor guidance over in the Discussion tab, now that we have a small number of active contributors and also a couple collaborators as well.

Hi @gbowne1, @LOGESH-B
I have opened a PR for the Help/Support feature, please review.

It has a merge conflict with App.js.
@BlackBond06
I will review

Oh, really ?. I await your review.

Yes, it does. It has a merge conflict with App.js. as it is right now would be unable to merge unless App.js is fixed.  I will review in a little while. Am currently away from my PC.  Thanks.


KafkaChannel doesn't respect the scope annotation when creating the topic

Describe the bug
When eventing.knative.dev/scope: namespace annotation is available on a channel, KafkaChannel should create the topic in the Kafka cluster that's specified in the config-kafka configmap within the same namespace.
But the topic is created in the Kafka cluster that's specified in the Knative system's knative-eventing/config-kafka configmap.
Expected behavior
Topic should be created in the correct Kafka instance.
To Reproduce

Create a Kafka cluster in kafka namespace
Use that cluster in Knative eventing system's knative-eventing/config-kafka configmap:

apiVersion: v1
kind: ConfigMap
metadata:
  name: config-kafka
  namespace: knative-eventing
data:
  bootstrapServers: my-cluster-kafka-bootstrap.kafka:9092

Create a Kafka cluster in foo namespace
Use that cluster in foo's knative-eventing/config-kafka configmap:

apiVersion: v1
kind: ConfigMap
metadata:
  name: config-kafka
  namespace: foo
data:
  bootstrapServers: my-cluster-kafka-bootstrap.foo:9092

Create a channel in foo, with the namespace scope annotation:

apiVersion: messaging.knative.dev/v1alpha1
kind: KafkaChannel
metadata:
  name: my-kafka-channel
  namespace: foo
  annotations:
    eventing.knative.dev/scope: namespace
spec:
  numPartitions: 1
  replicationFactor: 1

Topic is created in the first Kafka cluster

Knative release version
I reproduced the issue on 0.13, but it is valid in 0.14 too
Additional context
Creating namespace-scoped dispatchers : https://github.com/knative/eventing-contrib/blob/release-0.14/kafka/channel/README.md
Code refs:

This is the place where the system Kafka config is read: https://github.com/knative/eventing-contrib/blob/25ab82d6a7319e16440ba6550055c2ae6f046605/kafka/channel/pkg/reconciler/controller/controller.go#L90
It is passed from here to there, until it is used in the topic creation: https://github.com/knative/eventing-contrib/blob/25ab82d6a7319e16440ba6550055c2ae6f046605/kafka/channel/pkg/reconciler/controller/kafkachannel.go#L176
scope reading happens after the topic creation using the system namespace

/label channel/kafka

/assign

/unassign @aliok

I am unassigning this from myself. There's a decision needs to be done first around if we would like to have this eventing.knative.dev/scope annotation or if we would like to find another way to support the use case.
Threads:

https://knative.slack.com/archives/C9JP909F0/p1588682851136800
https://knative.slack.com/archives/CR2141CGY/p1588686195058700

cc @scholzj

Kafka doesn't have any native support for namespaces. So when the topic operator is enabled and a topic in Kafka is created, it will created a new KafkaTopic custom resource corresponding to the topic in the namespace it is watching. By default, that is the namespace where the Kafka cluster runs (but if a user provided this cluster it can be configured to a different namespace). So this is expected and should not cause any problems. Users who do not want this can also disable the Topic Operator completely and manage the Kafka topics only directly in Kafka. Hope this helps.

we have multiple kafka clusters and need the ability to connect to different clusters

Can you please fix this as soon as possible since "Fixing this problem is not very hard".  It is causing us bad issues currently.

@scholzj what do you man disable the Topic Operator?  how can you do that?

@scholzj what do you man disable the Topic Operator? how can you do that? Also, knative does not have a CRD named KafkaTopic. I'm so confused by your comment.

The Kafka contrib part is using Kafka from a project called Strimzi. The KafkaTopic resources are created by the Strimzi Topic Operator which can be disabled by removing this line from the Kafka custom resource which defines the Kafka cluster. for the record, I do not know much about Knative so I have no clue whether disabling it is an option or whether Knative uses it in any way.

@scholzj in no way does knative kafka channel contrib use Strimzi.  It creates topics all by itself without any external kafka operator such as Strimzi.  For instance, we don't even have Strimzi installed and use knative kafka channel contrib and it works fine.  Whenever you create KafkaTopic CRD that IS part of knative kafka channel contrib, it's the knative kafka channel controller creates the kafka topic, Strimizi is not involved at all.  This fix needs to happen inside the knative kafka channel controller, not Strimizi.

I didn't said it is using the KafkaTopic resources to create topics. I the operator would create them when you create a topic in Kafka. Anyway ... that is my understanding why I was cced here. If it is not the case, you can just ignore anything I said.

Any news on this?

I know that this is valid for 0.17, not sure about the next versions.
Reproducer:

Install Kafka cluster
Apply YAML at https://gist.github.com/aliok/4563e9b6ff6539c9f3c10e0d4bdacca5
Check kubectl get kafkachannels -n ns02 --> You will see that it tries to use the bootstrap server from global config (config-kafka in knative-eventing namespace), which is by default not pointing anywhere

Bump we still need something like this

Bump any plans on supporting more than one kafka cluster?

@aliok would you mind recreating this issue in the eventing-kafka?
This repo is getting archived and I need to close all the issues here.

/close
Moved to eventing-kafka repo: https://github.com/knative-sandbox/eventing-kafka/issues/656


seperate q&a on first line

personally i think it flows better this-way.

Thanks for you comments @mralext20. I decided to move it to the end so as to not distract new readers. If you have any other comments, or ideas that you think would be valuable to this project; please feel free to contribute more :)


parseName() undefined method

Great work for laravel panel!
But.. a little issue here, i dont know where the parseName() method comes from. I tried to track to the parent classes still not found that method. Any suggestion? I'm using laravel 5.4

update to last version and this problem is fixed


Mark POST /v1/chains/:chainId/delegates as deprecated

Changes

Marks POST /v1/chains/:chainId/delegates as deprecated

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

0 of 0   changed or added relevant lines in 0 files are covered.
2 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.01%) to 93.059%

Files with Coverage Reduction
New Missed Lines
%

src/routes/transactions/entities/tests/human-description.builder.ts
2
80.0%

Totals

Change from base Build<PHONE_NUMBER>:
-0.01%

Covered Lines:
7013

Relevant Lines:
7265

💛  - Coveralls


The voice search icon is not displaying for some reason

I'm setting it as true like here
mSearchView = (MaterialSearchView) findViewById(R.id.search_view);

mSearchView.setVoiceSearch(true);

mSearchView.showSearch(false);

Yet  the voice search icon in the searchbar is not displaying. Is this a bug? I'm on Marshmellow.

@chrisjeon I agree with you. I have used this even on phones having lollipop but it is not showing the voice search icon. @MiguelCatalan please help us solve this.

isVoiceAvailable() check is wrong, shouldn't it be:
...  return activities.size() > 0;
Right now it can't show the voice icon because of that check.

Thanks Miguel for your work on this. Is there any chance you can push a new version with this fix?


Empty decks

I have used this tool just a couple of times, and I think it is great. However, today I clicked on the syncing button and suddenly of my decks got empty.
Then, I tried to create a new deck:
https://docs.google.com/document/d/e/2PACX-1vTlqyIX4AnfaTvUHsSK_jfnNJdhvADMwHV7AiddFVKjJUdRrfn5ZGX5EBq8P6eVBoK_R4zJRXa8v4Lm/pub
I can import it but Anki says it has 0 cards. Any help? I am afraid it might be something super obvious I am not doing well. Sorry for not being more explicit with a log file or something but I don't know what I could attach. I am using Version 2.1.35

Hey I will have a look into it!

I it look like something might have changed with the way google is setup which is very annoying

Fix pushed in 1.8.2
If you lost a number of decks you probably need to revert your system to a previous version


GPU requirements

Could you please provide details about the model and the number of GPUs used in the script provided in the example?
We used 8 V100 GPUs (32GB each), and batch size of 1 for both train and dev, we still encounter Out Of Memory (OOM) issues.

@woqiang0515  were you able to resolve it? I am facing the same issue


Agriculture Svg File added which was missing

What

Added agriculture.svg file which was missing and was causing error.

Screenshot
Don't have screenshot ,but here is error that was thrown. And now this error has been solved.
unexpected case: asset not found assets/cache/agriculture.svg (https://static.openfoodfacts.org/images/icons/dist/agriculture.svg)

Fixes bug(s)

#52

Part of

https://github.com/openfoodfacts/smooth-app/issues/525
(please be as granular as possible)

@M123-dev @teolemon Any idea what's blocking there? Possible reasons: @PrabeshPP is not (yet) famous enough; the PR does not include code.

Don't know what causes this, but we had this very often lately. Somehow the workflows don't start. @PrabeshPP pushing another commit most of the times fixes the issue


Fix support for partial update

Partial update is compromised if resourcetype is still required. It is also unnecessary to provide it as the serializer type can be determined from the instance being updated. This PR fixes this.

I could not run tests without first running ./manage.py migrate to create migrations, the test runner did not create any tables and so naturally all tests failed. With migrations it worked.

Yes, With migrations it works, without every test fails with django.db.utils.OperationalError: no such table: django_content_type.

So I created migrations and pushed them. It is Django best practice anyway.

Anything keeping this from being merged? It'd be nice to be able to PATCH without including a "resourcetype" :)

@apirobot Hello, anything keeping this from merging?
https://github.com/apirobot/django-rest-polymorphic/issues/22#issuecomment-605016792 I'm going to bet some folks here are willing to take the responsibility of at least helping you on maintaining this library.
I could've used some features that would be great addition to this library but I'm afraid of opening a PR for instance, since the ones here are hanging.

@tjwalch Hey, can you check that? If not I'll check what's the problem and PR it again myself, thanks!
@apirobot Thanks for the prompt reply, if @tjwalch is not around I'll take a look in couple of days.

Why wasn't this fix considered ?
It would be very nice not having to worry about the resourcetype field while updating.

Got a PR for this here - the tests are passing locally but they're not running automatically in TravisCI - is there a trick to getting them to run?

Got a PR for this here - the tests are passing locally but they're not running automatically in TravisCI - is there a trick to getting them to run?

You added my  suggested changes?
If I recall correctly this PR didn't work without the suggested changes on my comment

This was fixed in another PR #38. Closing


Image comparison incorrect result

Describe the bug
After changing an icon the test with 99% of precision continues passing, even if the icon represents around the 25% of the screen. Setting the 100% precision works, but it doesn't fit us as we need to work with M1 Macs too.
To Reproduce
Just launch the test in the project with iPhone 11 simulator (if you prefer another, same happens but you will need to retake the screenshots and change the icon to reproduce) . In our project original screen the size is much smaller but I just set it bigger so the bug is more clear. The old image is in the Assets.xcassets if needed.
snapshot.zip
Expected behavior
Test should fail as the images don't match.
Screenshots

Environment

swift-snapshot-testing version 1.10.0
Xcode 14.2
Swift 5.7.2
OS: 16.2

Additional context
In other occasions even small margin changes were detected, but this time is not working.

Tested with the new 1.11.0 version but the result is the same.


Add cancellation constraints to Transaction event

Like spend constraints, the accountant should track cancellation constraints. The only difference is what party receives the funds when the constraint is satisfied. Instead of depositing the funds in the to account, they should be added back to the from account.
Some examples of cancellation constraints might be an expiration time or an explicit Cancel event containing a signature that matches the signature in the transaction.

Fixed in ad6665c8b6d1052bd04b90f828dde06e46a7dd1e


chore: tidy up docs

As title

@enjoyooor
Thanks for taking the time to open this PR! We've added this to our backlog, pending to be reviewed.


bumping travis php versions, composer deps, fix phpstan errors

Codecov Report

Merging #2 into master will not change coverage.
The diff coverage is 100%.

@@            Coverage Diff            @@
##             master       #2   +/-   ##
=========================================
  Coverage     93.75%   93.75%
  Complexity       41       41
=========================================
  Files             1        1
  Lines           112      112
=========================================
  Hits            105      105
  Misses            7        7

Impacted Files
Coverage Δ
Complexity Δ

src/Zend/Log/Writer/Mail.php
93.75% <100%> (ø)
41 <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 183c504...3ad0289. Read the comment docs.


Not working with 0.7.3 anymore

Tried to make it work with sample show views and image slider with captions but it doesn't work anymore, even the sample carousel on saltcorn.com site doesn't work anymore.

Thanks for noticing, fixed with https://github.com/saltcorn/carousel/commit/02e246c9aa263c916e37bda39833875ae34ae389 / v 0.1.3


[Bug] TokenMismatchException

Running mybb 2.0 with Laravel 5.2 gives the error:
TokenMismatchException in VerifyCsrfToken.php line 67

Apparently Laravel requieres
{{ csrf_field() }}
or
<input type="hidden" name="_token" value="{{ csrf_token() }}" />

Which page(s) does this apply to?

On 10 Apr 2016, at 20:42, Hackmastr<EMAIL_ADDRESS>wrote:
Running mybb 2.0 with Laravel 5.2 gives the error:
TokenMismatchException in VerifyCsrfToken.php line 67
Apparently Laravel requieres
{{ csrf_field() }}
or

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub

@euantorano quick reply, or reply page

@euantorano now its showing
strtr(): The second argument is not an array

As i'm new to PHP and Laravel(even more), I fail to fix this

Interesting. The parser is going to get a major overhaul soon which will resolve that second issue. I'll look into the CSRF token.

On 10 Apr 2016, at 20:46, Hackmastr<EMAIL_ADDRESS>wrote:
@euantorano now its showing
strtr(): The second argument is not an array
As i'm new to PHP and Laravel(even more), I fail to fix this
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub

@euantorano is this a good fix?
{
...
               # Array smilies
		$smilies[] = $this->smileys->getParseableSmileys();

		if (empty($smilies)) {
			return $message;
		}

		// TODO: this is mycode but it's not the parser! Should be changed as we plan to also support markdown
		// First we take out any of the tags we don't want parsed between (url= etc)
		preg_match_all(
			"#\[(url(=[^\]]*)?\]|quote=([^\]]*)?\])|(http|ftp)(s|)://[^\s]*#i",
			$message,
			$bad_matches,
			PREG_PATTERN_ORDER
		);
		if (count($bad_matches[0]) > 0) {
			$message = preg_replace(
				"#\[(url(=[^\]]*)?\]|quote=([^\]]*)?\])|(http|ftp)(s|)://[^\s]*#si",
				"<mybb-bad-sm>",
				$message
			);
		}

		$message = strtr($message, $smilies);
...
}

@Hackmastr yes, that should work I think, but the parser is going to get a major overhaul to make use of https://github.com/s9e/TextFormatter - which includes smileys and everything already :smile:


Async version?

Is it possible to have async version of the various integrations? Thanks

yes, there will be


BUG: No verification with remote server of local receipt on iOS when calling GetPurchasesAsync.

Bug
When calling GetPurchasesAsync the receipt from the local device is not verified against the remote server.
https://github.com/jamesmontemagno/InAppBillingPlugin/blob/master/src/Plugin.InAppBilling.iOS/InAppBillingImplementation.cs#L85
Version Number of Plugin:
Device Tested On:
Simulator Tested On:
Expected Behavior
Call to VerifyPurchase
Actual Behavior
No call to VerifyPurchase
Steps to reproduce the Behavior
await CrossInAppBilling.Current.GetPurchasesAsync(ItemType.Subscription, inAppBillingVerifyPurchase);

How would you normally do this in iOS?
Do you have apple docs on this?

Well, I'm not sure the apple docs are very clear. And if the restore is the right place for this.
https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/StoreKitGuide/Chapters/Restoring.html
Let's say I validate purchases remotely.

User installs client app.
Buy renewable subscription.
Validate receipt with remote server.
Use service
User goes to another device with same account
Restore purchases
Use service

What I see missing, it's a step after 6 to Validate the receipt with the remote server. As you can see, a new device doing restore purchases can get access to app content without asking the remote server at all.
In my specific case-scenario, I give the client an access token if the receipt is valid, so when it goes to another device and call restore purchases. I have no instance to exchange the access token with the receipt.
Also (not this issue, but somehow related), in my specific case, if the client doesn't have a valid token anymore (this may happen for several reasons) I need to validate the receipt with my server again. This means I don't need a restore process, only a way to revalidate the current receipt again.
To solve both this issues, I forked the project and made this adjustments to the InAppBillingImplementation for iOS
        public async Task<IEnumerable<InAppBillingPurchase>> GetPurchasesAsync(ItemType itemType, IInAppBillingVerifyPurchase verifyPurchase = null)
        {
            var purchases = await RestoreAsync();
            var validated = await ValidateReceipt(verifyPurchase);
            return validated ? purchases.Where(p => p != null).Select(p => p.ToIABPurchase()) : null;
        }

        public Task<bool> ValidateReceipt(IInAppBillingVerifyPurchase verifyPurchase)
        {
            if (verifyPurchase == null) return Task.FromResult(false);
            // Get the receipt data for (server-side) validation.
            // See: https://developer.apple.com/library/content/releasenotes/General/ValidateAppStoreReceipt/Introduction.html#//apple_ref/doc/uid/TP40010573
            var receiptUrl = NSData.FromUrl(NSBundle.MainBundle.AppStoreReceiptUrl);
            string receipt = receiptUrl.GetBase64EncodedString(NSDataBase64EncodingOptions.None);
            return verifyPurchase.VerifyPurchase(receipt, string.Empty);
        }

Hope this makes sense. If you see that I'm thinking/doing this wrong or need more information please let me know. I'm doing iOS first and will implement Android and UWP in the following days.
sidenote: I can spot another issue with the auto renewal process on this library but I will open a new issue when i have sorted it out.

So, I think I would need to do this:
 public async Task<IEnumerable<InAppBillingPurchase>> GetPurchasesAsync(ItemType itemType, IInAppBillingVerifyPurchase verifyPurchase = null)
        {
            var purchases = await RestoreAsync();

            var converted = purchases.Where(p => p != null).Select(p => p.ToIABPurchase());

            var items = new List<InAppBillingPurchase>();
            foreach (var purchase in converted)
            {
                var validated = await ValidateReceipt(verifyPurchase, purchase.ProductId, purchase.Id);
                if (validated)
                    items.Add(purchase);
            }

            return items;
        }

As you would need to validate each purchase... I would assume

I don't think there's a way to validate the receipt for each individual purchase separately. There's only one receipt with all transactions that can be validated remotely as far as I know, so I think the code should be more like what I shown:
When you have N purchases, validate the only receipt you have and if it's valid, all purchases are valid, else treat all as not valid.

ahhh got it... so does it need the transaction id and the product id? I was reading through http://jonathanpeppers.com/Blog/securing-in-app-purchases-for-xamarin-with-azure-functions
maybe @jonathanpeppers has an idea?

Nope, no transactionId nor productId are required beside the receipt. Everything is contained inside the receipt. I don't know why @jonathanpeppers is doing all the checks after this line
if (result.Status == AppleStatus.Success)

at that point you are dealing with your server and apple's. Unless you don't trust the connection between your server and apple, the success from them should be more than enough, but that is server validation not related to this particular library.
:trollface:  Now I see where you got the receipt processing for only user initiated purchases. His method have the same issue.

Hi @Bartmax
This code was ported from a real app, so there is some stuff in there that could be removed for the simplest case.
I would recommend verifying the app bundle id, purchase id, and that the transaction id is unique so that:

A valid receipt for another app, or another purchase cannot be used
Valid receipts cannot be reused

A simple way to do this is to just hardcode accepted bundle ids/purchase ids on your server.
But if you are just trying to make it a little harder to hack, you can only use the receipt data and simplify my example a bit.

I am now propagating up the ids of transaction and product id so that will help perhaps and then bundle id the dev can grab in their source code


[v3] React Native 0.40+ not supported

React Native 0.40 has a major breaking change, which requires native code to be changed.
Before:
#import "RCTUtils.h"
But now all headers have been moved:
#import <React/RCTUtils.h>
https://github.com/facebook/react-native/releases/tag/v0.40.0
This is kinda straight forward to update, but will then unfortunately break compatibility with React Native before 0.40.
What do you think, shall v3 be the release for React Native 0.40+ and v2 the release for <= 0.39? Or maybe there should be already a v4 for 0.40+?

I have submitted a PR https://github.com/fullstackreact/react-native-firestack/pull/240

Thanks for the pr =] merged


.Net: Fix 5796 function calling enum params

Motivation and Context

Fixes https://github.com/microsoft/semantic-kernel/issues/5796
Description

Type for enum wasn't correctly set in JsonSchemaMapper, it didn't matter for OpenAI but gemini was throwing exception if type isn't specified. Fixed that with string type.
Added new unit tests for Gemini and OpenAI. Both passed.
@RogerBarreto
@SergeyMenshykh
DataHelper and BertOnyx was updated automatically by formatter.
Contribution Checklist

[x] The code builds clean without any errors or warnings
[x] The PR follows the SK Contribution Guidelines and the pre-submission formatting script raises no violations
[x] All unit tests pass, and I have added new tests where possible
[x] I didn't break anyone :smile:

@Krzysztof318 could you take a look at the build error? Thanks.

@markwallace-microsoft until 19.05 I am out of office


🌱 Bump golang to v1.21.7

What this PR does / why we need it:
Bumping golang image only in dockerfile, but not go.mod because it will break library consumers. We are following CAPI about this. ref: https://github.com/kubernetes-sigs/cluster-api/pull/9415
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #

/test-ubuntu-e2e-integration-release-1-6

/hold
When main bumped golang from 1.20 to 1.21 here it was a LOT of other changes. Why here we can just bump the image and be done?

As discussed offline, please update description to properly give background for skipping #428 content in this bump, then feel free to unhold.

/unhold @tuminoid is description ok?

/unhold
Added the ultimate reason why we bump it in the first place.


Add @celo/dev-utils

Description
This PR adds @celo/dev-utils, a utils package that is meant to be used as a devDependency. It's primary use case is to reuse the ganache setup currently present in cli and contractkit (and soon attestation-service). Due to the way jest uses globalSetup, depending packages will still need to define their own setup/teardown files.
Tested

CI

Unassigning because CI tests failing


fixing notebook link

Pull Request
Title
Link is broken in notebook
Description
fixed link.
Type of Change
Indicate the type of change by choosing one (or more) of the following:

📝 Documentation update

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 76.20%. Comparing base (3b76a67) to head (601d03a).
Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #90   +/-   ##
=======================================
  Coverage   76.20%   76.20%
=======================================
  Files          22       22
  Lines        1013     1013
  Branches      125      125
=======================================
  Hits          772      772
  Misses        192      192
  Partials       49       49

Flag
Coverage Δ

unittests
76.20% <ø> (ø)

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

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


NR-SPAR data extraction script

A data extraction script that can copy the data from the (test/prod) for  the app NR-SPAR to an object store bucket

[x] Script that communicates with the NR-SPAR database, and dumps the data in various files to a data science file
[x] File gets uploaded to object storage.
[x] Be sure that the data can easily be loaded to the local database.
[x] document how the script works and how to run it.

depends on #2 (this issue will establish the pattern for how to complete this ticket with respect to what format to dump the data as, the methodologies should be similar, except this script is extracting from postgres vs oracle)

completed in #7 and #8


some issues / max --i files per line?

Hello,
what is the max lines in the adress file?
What happend wenn i use the last priv key FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364140 ?
Will BitCrack start all over again?

There is no hard limit on the number addresses read from an address list. The only limit is the amount of GPU memory. The GPU needs to keep a bloom filter in memory. You should be able to fit a few million keys (my 1GB GT 640 for instance can handle 13 million keys).
BitCrack will roll over to 0 after it reaches the largest private key. This is by design.
D:\BitCrack>AddrGen.exe fffff
00000000000000000000000000000000000000000000000000000000000FFFFF
04E5F2018D37069E0EAB27C2F881A447E668DFA363377EDB831B8743DB5D65BE1C00338E5D9C9CB6E864D0F73FC0165FD3E1723C81A30BFB0EA08F5465FE8F111E
1GPbR8Up1VX1YR7vWUYVauPdpGjSjPWKmk

D:\BitCrack>BitCrack64.exe -s FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364140 1GPbR8Up1VX1YR7vWUYVauPdpGjSjPWKmk
[2018-09-20.20:09:17] [Info] Compression: compressed
[2018-09-20.20:09:17] [Info] Starting at: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364140
[2018-09-20.20:09:17] [Info] Initializing GeForce GT 640
[2018-09-20.20:09:17] [Info] Generating 262,144 starting points (10.0MB)
[2018-09-20.20:09:18] [Info] 10.0%
[2018-09-20.20:09:18] [Info] 20.0%
[2018-09-20.20:09:19] [Info] 30.0%
[2018-09-20.20:09:19] [Info] 40.0%
[2018-09-20.20:09:20] [Info] 50.0%
[2018-09-20.20:09:20] [Info] 60.0%
[2018-09-20.20:09:20] [Info] 70.0%
[2018-09-20.20:09:21] [Info] 80.0%
[2018-09-20.20:09:21] [Info] 90.0%
[2018-09-20.20:09:22] [Info] 100.0%
[2018-09-20.20:09:22] [Info] Done
[2018-09-20.20:09:22] [Info] Address:     1GPbR8Up1VX1YR7vWUYVauPdpGjSjPWKmk
                             Private key:<PHONE_NUMBER>0000000000000000000000000000000000000000000000000FFFFF
                             Compressed:  yes
                             Public key:
                             02E5F2018D37069E0EAB27C2F881A447E668DFA363377EDB831B8743DB5D65BE1C


Allow users to determine if class is created by ocmock

Some libraries that do their own swizzling for test purposes need to know if
a class is created by ocmock so they can deal with it specially.
This exposes a public function OCMIsMockSubclass that allows libraries to do this
without depending on "special" knowledge of class name strings.

This seems to have merge conflicts now. Could you have a look?

Done.
On Fri, Dec 4, 2020 at 2:51 PM Erik Doernenburg<EMAIL_ADDRESS>wrote:

This seems to have merge conflicts now. Could you have a look?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/erikdoe/ocmock/pull/448#issuecomment-739064570, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AACOFSJKRIJ3CUB25JRV2OLSTFRVXANCNFSM4PHIAIUQ
.

Okay, the functionality added looks sensible. However, the actual implementation does feel quite right.

For one, why repurpose the OCMIsMockClass function? That was meant to return YES for classes that actually are the class generated by OCMock. It would be possible to implement the new functionality in a function called OCMIsSubclassOfMockClass, which (to me) seems more in line with Apple's naming.

Why make this a function and not a class method? The (not clearly stated) goal in OCMock is to use a method-based API. Functions should be limited as much as possible to interal use. So, we could make this availble in a method + isSubclassOfMockClass:.

If it was only those two, I would've merged the PR with the changes described above, but there doesn't seem to be a test that shows the difference between the mock subclass implementation and the new functionality. I think we should have such a test.

I've now created an alternative implementation of this pull request. This does not create an associated object but simply walks the class hierarchy. I've also added a test that shows the different behaviour of the two functions.
In the end I did settle for a function and not a class method on NSObject for logistical reasons. I didn't want to make the header for the existing NSObject category public because it declares non-public methods and they'd be visible on practically all objects, and I also didn't want to create a public/private header pair for the category. At the stage the user is working with functions anyway to even get the class so it doesn't feel too bad.

Some libraries that do their own swizzling for test purposes need to know if a class is created by ocmock so they can deal with it specially.
This exposes a public function OCMIsMockSubclass that allows libraries to do this without depending on "special" knowledge of class name strings.


Adding Radio Buttons

Adding Radio Buttons. Create a group by setting the "name" parameter to the same thing. The radio buttons are referenced by their "value" and labeled with "label". The initailaly set button can also be changed. Set parameters is first and is last to add rounding to the corners of the first and last elements.

@ThomasCanning sammy told me this was a draft so have marked it as such. Do you agree with this decision/do you think its ready for a review?

I think it's good to go, it's customised the same as in the figma pretty
much
On Wed, Feb 21, 2024, 17:19 WilfSilver @.***> wrote:

@ThomasCanning https://github.com/ThomasCanning sammy told me this was
a draft so have marked it as such. Do you agree with this decision/do you
think its ready for a review?
—
Reply to this email directly, view it on GitHub
https://github.com/ESP-Number-One/MatchyoSports/pull/44#issuecomment-1957372597,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/APQYZHAE55KPWIB7YYMLXYLYUYUDHAVCNFSM6AAAAABDRNUMSOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNJXGM3TENJZG4
.
You are receiving this because you were mentioned.Message ID:
@.***>

I have rebased your branch, on main.
Please run git pull --force before making any other changes

This was merged with #52


More forgiving X-Forwarded-For handling

Current situation
I am currently using an oauth2 proxy that does not properly form X-Forwarded-For headers, using comma separators and not comma plus space separators. It is not the first time I have run access proxies that behave this way.
Impact
The wrong host ip shows up in Nebraska.
Ideal future situation
Be forgiving of noncompliant headers.
Implementation options
Split the XFF header by commas then trim any spaces.
Additional information
I plan to open a ticket with the proxy source base as well, just thought the simple fix could save someone some time down the road.

Hi @mleklund , can you share (maybe a screenshot) of what the IPs look like under your setup?
If it helps before we get to fix that issue, you can rename instances since version 2.3.0 (just in case you were using the IPs to identify instances).

Hi @mleklund , can you share (maybe a screenshot) of what the IPs look like under your setup?
If it helps before we get to fix that issue, you can rename instances since version 2.3.0 (just in case you were using the IPs to identify instances).

If I route the request directly from my nginx ingress, it works properly, if I route from my oauth2 proxy it shows the ip address of the proxy pod. From the (envoy based) proxy's logs:
{"level":"info","service":"envoy","upstream-cluster":"policy-1e04ff8a87f1793d","method":"POST","authority":"nebraska.ops.svc.cluster.local","path":"/v1/update/","user-agent":"","referer":"","forwarded-for":"<IP_ADDRESS>,<IP_ADDRESS>","request-id":"a732dcc6-4c41-4043-8ea0-8d17d052a3c0","duration":13.595065,"size":0,"response-code":307,"response-code-details":"via_upstream","time":"2021-01-19T19:36:05Z","message":"http-request"}

I added some debug to get the value of ips from nebraska:
{"_t":"2021-01-19T22:53:51+0000"", "_p":"1", "_l":"DBG", "_n":"nebraska", "_m":"header debug", "header":"X-Forwarded-For", "value":"<IP_ADDRESS>,<IP_ADDRESS>"}
{"_t":"2021-01-19T22:53:51+0000", "_p":"1", "_l":"DBG", "_n":"nebraska", "_m":"ip debug", "_":"<IP_ADDRESS>,<IP_ADDRESS>"}

And here is a patch for my fix, though I am certainly willing to open a pull request, I am not a go programmer, so there may be a better way:
diff --git a/cmd/nebraska/controller.go b/cmd/nebraska/controller.go
index 3ac59d6..d5b1d92 100644
--- a/cmd/nebraska/controller.go
+++ b/cmd/nebraska/controller.go
@@ -889,7 +889,10 @@ func (ctl *controller) processOmahaRequest(c *gin.Context) {
 //

 func getRequestIP(r *http.Request) string {
-       ips := strings.Split(r.Header.Get("X-FORWARDED-FOR"), ", ")
+       ips := strings.Split(r.Header.Get("X-FORWARDED-FOR"), ",")
+       for i := range ips {
+               ips[i] = strings.TrimSpace(ips[i])
+       }
        if ips[0] != "" && net.ParseIP(ips[0]) != nil {
                return ips[0]
        }

If I route the request directly from my nginx ingress, it works properly, if I route from my oauth2 proxy it shows the ip address of the proxy pod. From the (envoy based) proxy's logs:
{"level":"info","service":"envoy","upstream-cluster":"policy-1e04ff8a87f1793d","method":"POST","authority":"nebraska.ops.svc.cluster.local","path":"/v1/update/","user-agent":"","referer":"","forwarded-for":"<IP_ADDRESS>,<IP_ADDRESS>","request-id":"a732dcc6-4c41-4043-8ea0-8d17d052a3c0","duration":13.595065,"size":0,"response-code":307,"response-code-details":"via_upstream","time":"2021-01-19T19:36:05Z","message":"http-request"}

I added some debug to get the value of ips from nebraska:
{"_t":"2021-01-19T22:53:51+0000"", "_p":"1", "_l":"DBG", "_n":"nebraska", "_m":"header debug", "header":"X-Forwarded-For", "value":"<IP_ADDRESS>,<IP_ADDRESS>"}
{"_t":"2021-01-19T22:53:51+0000", "_p":"1", "_l":"DBG", "_n":"nebraska", "_m":"ip debug", "_":"<IP_ADDRESS>,<IP_ADDRESS>"}

And here is a patch for my fix, though I am certainly willing to open a pull request, I am not a go programmer, so there may be a better way:
diff --git a/cmd/nebraska/controller.go b/cmd/nebraska/controller.go
index 3ac59d6..d5b1d92 100644
--- a/cmd/nebraska/controller.go
+++ b/cmd/nebraska/controller.go
@@ -889,7 +889,10 @@ func (ctl *controller) processOmahaRequest(c *gin.Context) {
 //

 func getRequestIP(r *http.Request) string {
-       ips := strings.Split(r.Header.Get("X-FORWARDED-FOR"), ", ")
+       ips := strings.Split(r.Header.Get("X-FORWARDED-FOR"), ",")
+       for i := range ips {
+               ips[i] = strings.TrimSpace(ips[i])
+       }
        if ips[0] != "" && net.ParseIP(ips[0]) != nil {
                return ips[0]
        }

I want to note that when I took the screenshots the envoy proxy had been rebooted so it changed ip addresses slightly from when the log files were taken.  <IP_ADDRESS> => <IP_ADDRESS>

I want to note that when I took the screenshots the envoy proxy had been rebooted so it changed ip addresses slightly from when the log files were taken.  <IP_ADDRESS> => <IP_ADDRESS>

@mleklund , Thanks for the further clarification and patch!
AFAIU, the logic still chooses the first IP in the list, so from the logs you've pasted, this means you'd see <IP_ADDRESS>. If somehow in a proxied connection the machine's IP always comes last, we can change the logic to do that, but I am a bit puzzled as to why your screenshots show the 2 different IPs while keeping the same 1st-IP logic.

@mleklund , Thanks for the further clarification and patch!
AFAIU, the logic still chooses the first IP in the list, so from the logs you've pasted, this means you'd see <IP_ADDRESS>. If somehow in a proxied connection the machine's IP always comes last, we can change the logic to do that, but I am a bit puzzled as to why your screenshots show the 2 different IPs while keeping the same 1st-IP logic.

Here is the original nebraska code:
func getRequestIP(r *http.Request) string {
	ips := strings.Split(r.Header.Get("X-FORWARDED-FOR"), ", ")
	if ips[0] != "" && net.ParseIP(ips[0]) != nil {
		return ips[0]
	}
	ip, _, _ := net.SplitHostPort(r.RemoteAddr)
	return ip
}

In my case the XFF is set to <IP_ADDRESS>,<IP_ADDRESS>, the code does a split on ", " (comman and space) per RFC, since my XFF from envoy does not have a space it does not split setting ips[0] = "<IP_ADDRESS>,<IP_ADDRESS>".  ips[0] does not equal empty string, and net.ParseIP returns a nil because it cannot be parsed properly.  ip is then set to the calling ip <IP_ADDRESS>. The screenshot reads <IP_ADDRESS> because it was captured on a subsequent run that had redeployed the envoy proxy, I am sure it was <IP_ADDRESS> at the time the logs above were captured.
My patched code looks like this:
func getRequestIP(r *http.Request) string {
	ips := strings.Split(r.Header.Get("X-FORWARDED-FOR"), ",")
        for i := range ips {
                ips[i] = strings.TrimSpace(ips[i])
        }
	if ips[0] != "" && net.ParseIP(ips[0]) != nil {
		return ips[0]
	}
	ip, _, _ := net.SplitHostPort(r.RemoteAddr)
	return ip
}

Now with my patch, I split the XFF on only comma, and then trim any spaces from the split array.  This allows ip[0] to be set to <IP_ADDRESS>.  I understand the envoy is not sending an RFC compliant XFF header here, and I intend to open an issue with them as soon as I understand what is happening there.  I have confirmed my nginx ingress is passing a proper XFF header to envoy, and that envoy is adding it's own IP address to the list, but that the header envoy is sending out is not comma + space delimited.

Here is the original nebraska code:
func getRequestIP(r *http.Request) string {
	ips := strings.Split(r.Header.Get("X-FORWARDED-FOR"), ", ")
	if ips[0] != "" && net.ParseIP(ips[0]) != nil {
		return ips[0]
	}
	ip, _, _ := net.SplitHostPort(r.RemoteAddr)
	return ip
}

In my case the XFF is set to <IP_ADDRESS>,<IP_ADDRESS>, the code does a split on ", " (comman and space) per RFC, since my XFF from envoy does not have a space it does not split setting ips[0] = "<IP_ADDRESS>,<IP_ADDRESS>".  ips[0] does not equal empty string, and net.ParseIP returns a nil because it cannot be parsed properly.  ip is then set to the calling ip <IP_ADDRESS>. The screenshot reads <IP_ADDRESS> because it was captured on a subsequent run that had redeployed the envoy proxy, I am sure it was <IP_ADDRESS> at the time the logs above were captured.
My patched code looks like this:
func getRequestIP(r *http.Request) string {
	ips := strings.Split(r.Header.Get("X-FORWARDED-FOR"), ",")
        for i := range ips {
                ips[i] = strings.TrimSpace(ips[i])
        }
	if ips[0] != "" && net.ParseIP(ips[0]) != nil {
		return ips[0]
	}
	ip, _, _ := net.SplitHostPort(r.RemoteAddr)
	return ip
}

Now with my patch, I split the XFF on only comma, and then trim any spaces from the split array.  This allows ip[0] to be set to <IP_ADDRESS>.  I understand the envoy is not sending an RFC compliant XFF header here, and I intend to open an issue with them as soon as I understand what is happening there.  I have confirmed my nginx ingress is passing a proper XFF header to envoy, and that envoy is adding it's own IP address to the list, but that the header envoy is sending out is not comma + space delimited.

After some research xff header falls under rfc2616 section 4.2, which does only require a comma.  However it is a defacto standard implemented by many as comma+space.  As I said, I am willing to provide the above as a pull request, though there may be a more efficient way to do what I am doing in go.

After some research xff header falls under rfc2616 section 4.2, which does only require a comma.  However it is a defacto standard implemented by many as comma+space.  As I said, I am willing to provide the above as a pull request, though there may be a more efficient way to do what I am doing in go.

@mleklund , No worries. This has been very helpful. We'll pick it up from here.
My previous questions were just about learning whether getting and showing always the first IP was fine.

@mleklund , No worries. This has been very helpful. We'll pick it up from here.
My previous questions were just about learning whether getting and showing always the first IP was fine.


occupied  spot

When a vehicle is ejected and the place is reserved, an error message does not appear
The place is occupied by another car
Two points must be added to the response
And check the place if it is empty. He prespons the vehicle
And if he is an occupier, a message will appear that he cannot remove the vehicle. The place is reserved
parkSpots = {
      vector4(269.07, -325.86, 44.31, 250.79),
        vector4(269.07, -325.86, 44.31, 250.79),
},

Also, is the new phone ready?

Hi, there isnt "spots" for the car, the script will check if there is space to spawn the next vehicle, can you provide images?


Separators not working when we press comma

Is 'Comma' a valid separator (Seprator in this case) for the seprators string array prop? cause it seems it doensn't trigger the tag addition when I press comma

I realized it is JavaScript key, so it must be "," instead "Comma", also that works for space, as it is " " to have it adding tags when u press space :)


Custom theme

does this library support custom themes? among other things I would like to make the stories have a vertical animation when it goes from one user to the other, like in tiktoks or instagram's reels

See #117


attribute 'stdenv' missing when installing obelisk on macos

Hi, I'm new to obelisk and especially Nix. I tried to install obelisk following the instructions. I'm on a M1 MacBook Air with macOS Big Sur 11.6. Installed nix 2.3.15 and then try installing obelisk with:
nix-env -f https://github.com/obsidiansystems/obelisk/archive/master.tar.gz -iA command
but I get the following error:
~ nix-env -f https://github.com/obsidiansystems/obelisk/archive/master.tar.gz -iA command
unpacking 'https://github.com/obsidiansystems/obelisk/archive/master.tar.gz'...
unpacking 'https://github.com/reflex-frp/reflex-platform/archive/27a7851a780ff21472d85f9a02fb84635ef9027a.tar.gz'...
unpacking 'https://github.com/obsidiansystems/nixpkgs/archive/e6e5ff9cb3529b6de75e5d217222086de17e093a.tar.gz'...
unpacking 'https://github.com/hercules-ci/gitignore.nix/archive/7415c4feb127845553943a3856cbc5cb967ee5e0.tar.gz'...
error: attribute 'stdenv' missing, at /nix/store/bblbjmnzbzfib5q0r7xbk1c920bsabbw-source/pkgs/build-support/cc-wrapper/default.nix:62:8
(use '--show-trace' to show detailed location information)

Is this a bug in obelisk or Nix?  Any idea on work around it and install obelisk? Thanks!

Me too

Me too on M1 macbook pro with MacOS Monterey 12.0.1

I should close this issue, because it's due to obelisk doesn't support ARM yet.  The workaround is to re-install Nix x86 version, instead of the default ARM version.   I downloaded the nix install script and changed the "system" variable to x86_64-darwin statically, then run the script to install. I've also added "system = x86_64-darwin" to /etc/nix/nix.conf so nix can always use x86 packages.
With the new nix installed, you can install obelisk again.  obelisk works for simple demo projects. But due to obelisk and reflex-platform depends on older version of nixpkgs (20.09),  which doesn't support macOS's new linker since BigSur, nixpkgs#91748, it won't work when more dependencies added.  So, generally, obelisk doesn't work on Mac (intel and m1) for now.  The best solution to this problem is updating obelisk and reflex-platform to nixpkgs 21.05 at least.  @Ericson2314 mentioned they're working on that.  @o1lo01ol1o tried to backport the nixpkgs fix back to 20.09, but it will re-compile almost all packages due to no binary cache available.  I tried twice and both failed. You can learn more about it here: obelisk#869.
Currently, I run obelisk on a linux machine, and use VSCode on my Mac with remote ssh plugin to code. It has all ghcide features available as well.


Fix wrapping on mobile (?)

I'd rather have this scroll, so maybe this will fix it :)

Actually, this is mostly just fixing the wrapping on desktop. however, it doesn't seem to fix the issue past the first code block on desktop safari (lol), and I'm not sure about mobile chrome


Docker Support

Would it be possible to have docker support? Having troubles getting this running due to my m1 chip.

What issues are you running into with your M1? Will look into Docker support!

It seems that node-gyp is plaguing the install phase (node 16) and for whatever reason my m1 doesn't allow me to use anything less then node 16


type guard API methods

          We can type guard this using `'status' | 'set_password' | etc. etc.` so only certain strings can be used when making the call. It then also serves as a one stop point of reference for what RPC methods are supported. I believe that to be especially important if there's ever a time when we export this API as a package/library for use in other apps.

Originally posted by @EthnTuttle in https://github.com/fedimint/ui/pull/28#discussion_r1225980111

related: https://github.com/fedimint/fedimint/issues/2644


Add Default Policies [#624]

❗ Contains data migration; check downrev before merging
Purpose
Ship Fidesops with two default Policies: download and delete so Fidesops instances can run privacy requests right away.
The policies are created as a data migration.
Changes
Adds a data migration that:

Creates a local StorageConfig
Creates a Client with a specific fides_key
If a download policy does not exist, create one, with a Rule using the localstorage and the the RuleTarget looking at identifiable data, with the autogenerated client above
If a delete policy does not exist, create one, with a Rule that using a string masking strategy, targeting identifiable data, with the autogenerated client above
Reverse migration only removes the download/delete policies and their associated resources if they were created by the autogenerated client.

Note: this does not create resources in test mode
Checklist

[x] Update CHANGELOG.md file

[x] Merge in main so the most recent CHANGELOG.md file is being appended to
[ ] Add description within the Unreleased section in an appropriate category. Add a new category from the list at the top of the file if the needed one isn't already there.
[ ] Add a link to this PR at the end of the description with the PR number as the text. example: #1

[ ] Applicable documentation updated (guides, quickstart, postman collections, tutorial, fidesdemo, database diagram.
If docs updated (select one):

[ ] documentation complete, or draft/outline provided (tag docs-team to complete/review on this branch)
[ ] documentation issue created (tag docs-team to complete issue separately)

[ ] Good unit test/integration test coverage
[x] This PR contains a DB migration. If checked, the reviewer should confirm with the author that the down_revision correctly references the previous migration before merging
[ ] The Run Unsafe PR Checks label has been applied, and checks have passed, if this PR touches any external services

Ticket
Fixes #624

Thanks @eastandwestwind I'll look into clarifying these items in the docs

@ethyca/docs-authors minor docs added to describe the two autogenerated policies that ship with Fidesops and clarify that the TESTING variable is set by Pytest for when we run unit tests.


Question - NPM install error

Hi,
After installing the app, when I ran NPM install, I got the below error.  Just want to check if anyone else got the same error and resolved it. Thank you.
npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR!
npm ERR! While resolving<EMAIL_ADDRESS>npm ERR! Found<EMAIL_ADDRESS>npm ERR! node_modules/lwc
npm ERR<EMAIL_ADDRESS>from<EMAIL_ADDRESS>npm ERR!   packages/storefront-lwc
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! peer<EMAIL_ADDRESS>from<EMAIL_ADDRESS>npm ERR! node_modules/@lwce/router
npm ERR<EMAIL_ADDRESS>from<EMAIL_ADDRESS>npm ERR!   packages/storefront-lwc
npm ERR!
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force, or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.

My bad, after using yarn I don't see the issue.


Can't close window using the window close button

I can reproduce this on manjaro (gnome, if it makes any difference). I can only close the application by killing it.

latest update fixed this for me, also remote development is working now

@bjorn3 could you please see if this issue still stands? Thanks!

It works now for me.


parse http notifier open-url and close-url as templates.

see #355

Coverage decreased (-0.08%) to 73.859% when pulling 2904180ebe540bce3d431c8c4d018f998a0f9ad0 on vixns:templated_url into b8908854194b3cb59d34bb1805826855c1eb8fe6 on linkedin:master.

Coverage decreased (-0.08%) to 73.859% when pulling 2904180ebe540bce3d431c8c4d018f998a0f9ad0 on vixns:templated_url into b8908854194b3cb59d34bb1805826855c1eb8fe6 on linkedin:master.

This should be fine, as a URL will be parsed properly if it is not a template, so it's not a breaking change. However, you need to add some tests to validate the behavior of passed-in URL strings

I messed up this PR, so i'm closing it.
see #390


Enforce deterministic KongConsumer credentials configurations when constraints are violated

We currently drop credentials when they are found to be in violation of unique constraints, however we don't do this in a deterministic way and so the results can be confusing for the end-user as credentials may occasionally enable/disable against the other credentials they are in conflict with.
The purpose of this issue is to make these credentials deterministic so that other updates wouldn't change the credentials configuration for a consumer.
This is a follow-up to #729
Acceptance Criteria:

[ ] credentials for KongConsumers apply in a determinist way when some credentials are dropped to to constraint violations

@Kong/team-k8s I propose the following solution to the problem that would meet the acceptance criteria I added above:

[ ] when there are constraint violations, drop and log errors for ALL credentials rather than just the last ones seen in a list

LMKWYT

We should avoid two problem scenarios:

Two consumers have a credential with the same value for a unique key. The order of the consumer list (effectively the order of results returned from the Kubernetes API, since it goes from the store to the generated clientset) is random. The first time we generate configuration, consumerA is processed first and associated with the duplicated credential. The next time, consumerB is processed first, and the association flip-flops. The next time the same thing happens, etc.
consumerA has an existing credential, and a client is actively using this credential for important requests. They also have an ACL association that grants them access to perform these requests. Hapless sysadmin dutifully processes new hire paperwork and adds consumerB with a credential that unfortunately collides with consumerA's credential and an ACL that grants them access to not very much. The order used by FillConsumersAndCredentials() is not random, but uses a sort that processes consumerB before consumerA. consumerA spontaneously finds that their credential now identifies them as consumerB, that they have lost all access as such, and that all their requests now result in 403s.

AFAIK a nebulous "initially added to config" sort precedence is the only thing that avoids the second issue. As Michal noted, resource timestamps aren't guaranteed reliable for this.
I think, therefore, that there likely are no good options for sort order if we use this in actual config generation, and moving this to the admission webhook is the only safe option. This is not guaranteed to avoid the error condition because it's an optional component, but I'd argue that's fine--the same is generally true for other admission validations (if you create an invalid plugin configuration without admission, the controller will happily attempt to create it, encounter an error, and cease applying new configuration until you fix the bad plugin) and our recommendation for avoiding that scenario is already to use the admission controller. AFAIK we only don't enable it by default because we can't provision certificates for it (come to think of it, we should enable it by default in the chart, which can).

After considering those points, and some talk in Slack it seems that the solution we have so far really ultimately isn't going to work.
There are several factors at risk here and I ultimately agree with @rainest that the best option (specifically, the one that is going to stop us from spending an incredibly large amount of time on solving this problem) is going to be to take the new validation code and move it into the admission webhook.
I've noted this in the original issue, and started a revert PR to resolve this issue:

https://github.com/Kong/kubernetes-ingress-controller/issues/729#issuecomment-901336616
https://github.com/Kong/kubernetes-ingress-controller/pull/1729


Validate the shape of the cacheMap at the initialization time

The current implementation assumes that the cacheMap object has the required shape without making checks. This results in the DataLoader failing in hard to replace scenarios.
In the specific case I was debugging, I've started getting an error:
TypeError: this._promiseCache.delete is not a function
    at DataLoader.clear (/Users/gajus/Documents/dev/applaudience/showtime-api/node_modules/dataloader/index.js:126:30)
    at /Users/gajus/Documents/dev/applaudience/showtime-api/node_modules/dataloader/index.js:292:12
    at Array.forEach (native)
    at failedDispatch (/Users/gajus/Documents/dev/applaudience/showtime-api/node_modules/dataloader/index.js:288:9)
    at /Users/gajus/Documents/dev/applaudience/showtime-api/node_modules/dataloader/index.js:281:12

This error appeared because I am using lru-cache instead of Map to implement the cache. Turns out that lru-cache API is not compatible with Map and therefore does not work with DataLoader without a wrapper. The problem is that I've only learned this in an error scenario when DataLoader had to use delete strategy.
The solution: validate the shape of the cacheMap input at the time of constructing an instance of DataLoader to assert that it has all the required methods required to work with DataLoader.

Thanks for filing the issue, @gajus.
I think it would be desirable to fix this upstream (like you've proposed), but some runtime validation wouldn't hurt either in order to make the dev experience a little friendlier. I think we could entertain a PR for this one.


Jeedom plugin 0.1.3 plus d'actions reconnues

Bonjour
Depuis la mise à jour du plugin plus d'action reconnues et message erreur HTTP
http-2.txt
Dernier update de snips installé
OS version ................... Raspbian GNU/Linux 9 (stretch)
Installed assistant .......... Snipsj0
Language ..................... fr
Hotword ...................... hey_snips
ASR engine ................... snips
Status ....................... Live
Service status:
snips-analytics .............. 0.62.3 (not running)
snips-asr .................... 0.62.3 (running)
snips-audio-server ........... 0.62.3 (running)
snips-dialogue ............... 0.62.3 (running)
snips-hotword ................ 0.62.3 (running)
snips-nlu .................... 0.62.3 (running)
snips-skill-server ........... 0.62.3 (running)
snips-tts .................... 0.62.3 (running)
Conseillez vous une reinstallation ?
09:40:37] [Hotword] detected on site default, for model hey_snips
[09:40:37] [Asr] was asked to stop listening on site default
[09:40:38] [Hotword] was asked to toggle itself 'off' on site default
[09:40:38] [Dialogue] session with id 'a151a984-b6b8-45e0-8eee-03891483acab' was started on site default
[09:40:38] [AudioServer] was asked to play a wav of 41.1 kB with id 'd4b8620f-8bc7-4bb1-a73c-36376c3e2979' on site default
[09:40:38] [AudioServer] finished playing wav with id 'd4b8620f-8bc7-4bb1-a73c-36376c3e2979'
[09:40:38] [Asr] was asked to listen on site default
[09:40:43] [Asr] captured text "éteindre la lumière du séjour" in 4.0s
[09:40:43] [Asr] was asked to stop listening on site default
[09:40:43] [AudioServer] was asked to play a wav of 93.1 kB with id '45eb73c8-8147-4abc-ba0b-ba30261bae04' on site default
[09:40:44] [AudioServer] finished playing wav with id '45eb73c8-8147-4abc-ba0b-ba30261bae04'
[09:40:44] [Nlu] was asked to parse input "éteindre la lumière du séjour"
[09:40:44] [Nlu] detected intent valf:TurnOffJeedom with confidence score 1.000 for input "éteindre la lumière du séjour"
Slots ->
device_name -> lumière (confidence: 0.855)
house_room -> séjour (confidence: 1.000)
[09:40:44] [Dialogue] New intent detected valf:TurnOffJeedom with confidence 1.000
Slots ->
device_name -> lumière (confidence: 0.855)
house_room -> séjour (confidence: 1.000)
[09:40:45] [Dialogue] was ask to end session with id a151a984-b6b8-45e0-8eee-03891483acab
[09:40:45] [Dialogue] session with id 'a151a984-b6b8-45e0-8eee-03891483acab' was ended on site default. The session ended as expected
[09:40:45] [Asr] was asked to stop listening on site default
[09:40:45] [Hotword] was asked to toggle itself 'on' on site default
[09:40:45] [Dialogue] was asked to start a session on site default
[09:40:45] [Asr] was asked to stop listening on site default
[09:40:45] [Hotword] was asked to toggle itself 'off' on site default
[09:40:45] [Dialogue] session with id '25e95de4-6814-4d2e-9c9a-7d636be1e754' was queued on site default
[09:40:45] [Dialogue] session with id '25e95de4-6814-4d2e-9c9a-7d636be1e754' was started on site default
[09:40:45] [Tts] was asked to say "Désolé, je ne trouve pas les actions!"
[09:40:45] [AudioServer] was asked to play a wav of 83.9 kB with id 'e2819a9d-4b99-4448-a712-02242f97358b' on site default
[09:40:48] [AudioServer] finished playing wav with id 'e2819a9d-4b99-4448-a712-02242f97358b'
[09:40:48] [Tts] finished speaking with id '8d36921a-7970-4095-a6c1-bf97d2042c36'
[09:40:48] [Dialogue] session with id '25e95de4-6814-4d2e-9c9a-7d636be1e754' was ended on site default. The session ended as expected
[09:40:48] [Asr] was asked to stop listening on site default
[09:40:48] [Hotword] was asked to toggle itself 'on' on site default

From what I saw, there is a PHP warning need to be solved. I will try to surprise it in the next release, but you should be able to use plugin with all the functions?

hello,
This warning is surprised in the latest release 0.1.4
Thanks for reporting.

You are welcome Great work !
————
<EMAIL_ADDRESS>
Le 10 avr. 2019 à 15:46, Coor<EMAIL_ADDRESS>a écrit :
hello,
This warning is surprised in the latest release 0.1.4
Thanks for reporting.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.


"Leordeni" is listed in the drop-down menu

Description:
"Leordeni" is listed in the drop-down menu alongside its corresponding county and commune, according to the law
Precondition:
The website is up an running.

Step 1
Type "Leordeni" in the search bar.

Expected results
The location is listed in the drop-down menu as "Leordeni, Argeș (Leordeni)".


swagger is not detecting mounted rack app

Code
require "bundler/setup"
Bundler.require

require 'grape-swagger/entity'

module API
  module V1
    class Welcome < Grape::API
      desc 'Greets user' do
        detail 'This is the root api and it will greet user on accessing'
      end
      get "/" do
        {
          data: [
            { message: "Welcome to notes app" }
          ]
        }
      end
    end
  end
end

module API
  module V1
    class Base < Grape::API
      version :v1, using: :path

      mount Welcome
    end
  end
end

module API
  class Base < Grape::API
    format :json
    prefix :api

    mount V1::Base

    add_swagger_documentation hide_documentation_path: true,
                              version: "V1",
                              info: {
                                title: 'User notes app',
                                description: 'Demo app for user notes'
                              }
  end
end

Gemfile
# frozen_string_literal: true

source "https://rubygems.org"

ruby '2.5.3'

gem 'grape', '~> 1.2', '>= 1.2.1'

gem 'grape-swagger-entity'

gem 'rake'

gem 'rack-cors'

gem 'pry'

Gemfile.lock
GEM
  remote: https://rubygems.org/
  specs:
    activesupport (<IP_ADDRESS>)
      concurrent-ruby (~> 1.0, >= 1.0.2)
      i18n (>= 0.7, < 2)
      minitest (~> 5.1)
      tzinfo (~> 1.1)
    axiom-types (0.1.1)
      descendants_tracker (~> 0.0.4)
      ice_nine (~> 0.11.0)
      thread_safe (~> 0.3, >= 0.3.1)
    builder (3.2.3)
    coderay (1.1.2)
    coercible (1.0.0)
      descendants_tracker (~> 0.0.1)
    concurrent-ruby (1.1.3)
    descendants_tracker (0.0.4)
      thread_safe (~> 0.3, >= 0.3.1)
    equalizer (0.0.11)
    grape (1.2.1)
      activesupport
      builder
      mustermann-grape (~> 1.0.0)
      rack (>= 1.3.0)
      rack-accept
      virtus (>= 1.0.0)
    grape-entity (0.7.1)
      activesupport (>= 4.0)
      multi_json (>= 1.3.2)
    grape-swagger (0.32.0)
      grape (>= 0.16.2)
    grape-swagger-entity (0.3.1)
      grape-entity (>= 0.5.0)
      grape-swagger (>= 0.31.0)
    i18n (1.1.1)
      concurrent-ruby (~> 1.0)
    ice_nine (0.11.2)
    method_source (0.9.2)
    minitest (5.11.3)
    multi_json (1.13.1)
    mustermann (1.0.3)
    mustermann-grape (1.0.0)
      mustermann (~> 1.0.0)
    pry (0.12.2)
      coderay (~> 1.1.0)
      method_source (~> 0.9.0)
    rack (2.0.6)
    rack-accept (0.4.5)
      rack (>= 0.4)
    rack-cors (1.0.2)
    rake (12.3.1)
    thread_safe (0.3.6)
    tzinfo (1.2.5)
      thread_safe (~> 0.1)
    virtus (1.0.5)
      axiom-types (~> 0.1)
      coercible (~> 1.0)
      descendants_tracker (~> 0.0, >= 0.0.3)
      equalizer (~> 0.0, >= 0.0.9)

PLATFORMS
  ruby

DEPENDENCIES
  grape (~> 1.2, >= 1.2.1)
  grape-swagger-entity
  pry
  rack-cors
  rake

RUBY VERSION
   ruby 2.5.3p105

BUNDLED WITH
   1.17.1

I am trying to generate swagger compatible documentation and I got the link at http://localhost:9292/api/swagger_doc. The /api is because of prefix :api in API::Base module. I am getting the below response from the link.
{
  "info": {
    "title": "User notes app",
    "description": "Demo app for user notes",
    "version": "0.0.1"
  },
  "swagger": "2.0",
  "produces": [
    "application/json"
  ],
  "host": "localhost:9292"
}

As we can see there is no documentation generated for the endpoint defined inside API::V1::Welcome class. Please let me know if I am doing anything wrong over here.

I don't see anything wrong, this should work. I would turn it into a spec next in this repo and PR.

Ok Thanks you. I am new to swagger ecosystem. If possible can you point me towards any blog/article for setting up swagger UI at local development machine.

I don't think you need swagger UI, but see CONTRIBUTING in this project for how to contribute in general
If you do want actual swagger UI, the way I do it is to run ngrok locally that proxies to my localhost server and use https://petstore.swagger.io

Regarding adding spec for this case, should I just go on and create a new pull request and this spec in a new file?. I want to contribute to this gem. I am new to open source contribution. Please point me towards the right direction.

Regarding adding spec for this case, should I just go on and create a new pull request and this spec in a new file?. I want to contribute to this gem. I am new to open source contribution. Please point me in the right direction.

Yes! We welcome failing specs in a pull request so that another person can fix the bugs, too.


Tabs do not show content

For the custom components functionality you have shown it is possible to use tabs, however the tab content is not shown at all.
This can be replicated on the components page itself in the docs.page documentation.

Thanks! Looking into this now

Found the issue, this should be fixed as part of https://github.com/invertase/docs.page/pull/163

I noticed this issue too, I thought it was because I tried to show html tables as content, but seemed to be more general indeed. Looking forward to the fix.

Fix is live, thanks

Thanks! Can confirm that tabs are now working as expected 👍🏼


adjust favicon & title

Do you have a design for the new favicon?

Nope I think its still for discussion. The App is currently using the default Svelte-favicon. This should be replaced, everything else is pretty much open for discussion

Nope I think its still for discussion. The App is currently using the default Svelte-favicon. This should be replaced, everything else is pretty much open for discussion

Ok

is it a duplicate issue of "update favicon file format"??

Nope, it isn't 👍 All fine with the issues  🏀 This one is about the icon itself, not the format

Can you make a discussion Cahl for ideas for the new favicon?

I can create a nice favicon something like a kid holding a search logo I guess it will look better
I will be really glad if someone can assign it to me

Nice Catch @Dharmik48. I think we should use an image/icon from the branding repo, also to be consistent across Eddiehub Projects (see LinkFree).
For the given reason, I think creating a custom one is currently not necessary @KlausMikhaelson. In case we decide to go with a custom one later, we can come back to this I think

Thank you assigning this me @Cahllagerfeld
I think we should go with this one because it seems like Hubber is doing some work on the laptop or searching for something, and that's exactly what the users are doing on the website, they are searching for an issue to contribute to. So it feels more meaningful to use this rather than the one I mentioned above
What do you think about this?

Sure, lets go with this 👍

Alright then, I'll get working 💪🏻


Code cleanup

Functionally there should be no changes to end users
Changes

Enable noImplicitAny
Add types to all implicit any variables
Bump target to ES2020 for recent language features (optional chaining)
Code cleanup
Add debug configuration for vscode
Remove the autorun flag from jest to remove warning
Bump packages to fix dependency version mismatch warning
Changed @arkweid/lefthook to @evilmartians/lefthook as @arkweid/lefthook has been deprecated in favor of @evilmartians/lefthook
Added concurrency groups to integrity check and build workflows. New commits to branches/PRs will cancel superseded runs on the same branch/PR
Update imports to not use require syntax
Use node packages (ie node:fs rather than fs)
AndroidVersionCode is now a string rather than a number as it gets converted to a string when passed out of the system
Reduce timeout for windows builds
Remove 2020.1.17f1 from windows builds due to repeated license activation errors
Update the naming scheme of workflows for consistency
Update build names so the target platform and unity version aren't cut off by GitHub actions UI

Checklist

[x] Read the contribution guide and accept the
code of conduct
[x] Readme (updated or not needed)
[x] Tests (added, updated or not needed)

@frostebite (I would request a review but unfortunately that option isn't available, forgive the ping)
To reenable noImplicitAny, I had to go through cloudrunner to update the types, so I think it would be good if you took a look in addition to @davidmfinol to ensure I haven't broken anything. The unit tests pass so I would expect it to work but I have no way of verifying as I do not have access to any cloud clusters.

@frostebite (I would request a review but unfortunately that option isn't available, forgive the ping)
To reenable noImplicitAny, I had to go through cloudrunner to update the types, so I think it would be good if you took a look in addition to @davidmfinol to ensure I haven't broken anything. The unit tests pass so I would expect it to work but I have no way of verifying as I do not have access to any cloud clusters.

Sure

Codecov Report

Merging #511 (fd000e6) into main (3de97ed) will decrease coverage by 0.15%.
The diff coverage is 66.21%.

:exclamation: Current head fd000e6 differs from pull request most recent head b90da4f. Consider uploading reports for the commit b90da4f to get more accurate results

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more

@@            Coverage Diff             @@
##             main     #511      +/-   ##
==========================================
- Coverage   37.28%   37.13%   -0.15%
==========================================
  Files          75       75
  Lines        2934     2916      -18
  Branches      600      590      -10
==========================================
- Hits         1094     1083      -11
+ Misses       1837     1830       -7
  Partials        3        3

Impacted Files
Coverage Δ

src/model/cli/cli-functions-repository.ts
43.75% <0.00%> (ø)

src/model/cloud-runner/cloud-runner.ts
32.14% <ø> (ø)

...ner/providers/aws/aws-cloud-formation-templates.ts
14.28% <0.00%> (ø)

...oviders/aws/services/garbage-collection-service.ts
11.36% <0.00%> (+0.25%)
:arrow_up:

...loud-runner/providers/aws/services/task-service.ts
6.60% <0.00%> (ø)

...unner/providers/k8s/kubernetes-job-spec-factory.ts
13.79% <0.00%> (ø)

...l/cloud-runner/providers/k8s/kubernetes-storage.ts
10.90% <ø> (ø)

...cloud-runner/remote-client/remote-client-logger.ts
40.00% <0.00%> (ø)

...cloud-runner/services/follow-log-stream-service.ts
19.35% <0.00%> (ø)

src/model/github.ts
13.84% <0.00%> (-0.22%)
:arrow_down:

... and 39 more

@frostebite @webbertakken Do you guys want to review this PR? I think we should be OK to merge.

First of all, amazing rewrite!
The only comment I have is that ultimately we'll move to game-ci/cli. Which already contains a full rewrite (complete refactor of everything) as well.
It's no problem if the code bases diverge for me though. Just keep in mind that this repo will eventually use the cli under the hood and all code (apart from workflows) will effectively be obsolete at that point.
That said, you have my full support to move forward with this.


MultiTenantIdentityDbContext Implementation

Hi,
I am trying to implement MultiTenantIdentityDbContext with WithEFCoreStore but i am not able to register the service.
CustomTenantInfo
public class CustomTenantInfo : TenantInfo
    {
        public string CreatedBy { get; set; }
        public DateTime CreatedOn { get; set; }
        public string LastModifiedBy { get; set; }
        public DateTime? LastModifiedOn { get; set; }
        public bool IsDeleted { get; set; }
    }

MyDBContext class
public class MyDBContext : MultiTenantIdentityDbContext<MyDBContext , IdentityRole, string>
    {
        private readonly ICurrentUserService _currentUserService;
        private readonly IDateTimeService _dateTimeService;
        public MyDBContext(DbContextOptions<MyDBContext > options, ICurrentUserService currentUserService, IDateTimeService dateTimeService,CustomTenantInfo tenant_)
                    : base(tenant_, options)
        {
            _currentUserService = currentUserService;
            _dateTimeService = dateTimeService;
        }
}

Startup
 services.AddMultiTenant<CustomTenantInfo>().WithEFCoreStore<MyDBContext,CustomTenantInfo>().WithSessionStrategy();
I am not able to register in service with above line of code.
please suggest where i am going wrong.

@dhavalkateliya I apologize this question slipped through the cracks. Did you ever get it to work?

Just following up here-- I noticed that you are trying to use a multitenant db context for your multitenant store. This is normally not needed and an advanced scenario. Generally the multitenant store is just a regular db context which holds info on all the tenants -- it is not per-tenant itself.
Then separately you have other dbcontext(s) that serve your app's functionality and they can be based on MultiTenantDbContext or the Identity variant. Does that make sense?

Thanks @AndrewTriesToCode for clarification.


Encapsulate a high-level player object in OgvKit

Move some logic from the demo to the library and make a drop-in player view.

Done OGVPlayerView :)


fix: z-index changes for Update Workspace button in settings

Description
Changes the z-indexes of multiple elements in the workspace settings page to make (especially mobile) experience better.

What type of PR is this? (check all applicable)

[ ] 🍕 Feature
[x] 🐛 Bug Fix
[ ] 📝 Documentation Update
[ ] 🎨 Style
[ ] 🧑💻 Code Refactor
[ ] 🔥 Performance Improvements
[ ] ✅ Test
[ ] 🤖 Build
[ ] 🔁 CI
[ ] 📦 Chore (Release)
[ ] ⏩ Revert

Related Tickets & Documents
Closes #2833

Mobile & Desktop Screenshots/Recordings
https://github.com/open-sauced/app/assets/20603494/3d6d92f6-d5be-4d8a-b9a8-9d4a1a3a1fc6

Steps to QA
from @adiati98
On mobile phone:

Open OpenSauced app in a browser and sign in.
Navigate to "Your Workspace" page.
Click "Edit" button.
Scroll down slowly and pay attention to the "Update Workspace".

Added to documentation?

[ ] 📜 README.md
[ ] 📓 docs.opensauced.pizza
[ ] 🍕 dev.to/opensauced
[ ] 📕 storybook
[ ] 🙅 no documentation needed

[optional] Are there any post-deployment tasks we need to perform?
[optional] What gif best describes this PR or how it makes you feel?

@zeucapua I tried this on with the deploy view on my phone. And it works! 🎉
https://github.com/open-sauced/app/assets/45172775/f0ff50c0-63a0-4c22-93f7-63d5e0072f4e


Add constructor tests for TopicDeleteResult

🆕🐥 First Timers Only
This issue is reserved for people who have never contributed to hedera-enterprise or any open source project in general.
We know that creating a pull request (PR) is a major barrier for new contributors.
The goal of this issue and all other issues labeled by 'good first issue' is to help you make your first contribution to Hedera.
👾 Description of the issue
In the hedera-base module you can find the ProtocolLayerDataCreationTests test class. The class use junit to automatically test the construction of all records that are used in the protocol layer (see com.openelements.hedera.base.protocol package). As you can see the class tests provides (by using Assertions.assertDoesNotThrow) and negative (by using Assertions.assertThrows) checks for the creatation of records. Today not all records are fully tested and tests for the record TopicDeleteResult are missing.
Suggested solution
Create a new test method in the ProtocolLayerDataCreationTests class that is named by the given pattern of all other test methods and implement the needed tests for the record.
📋 Step by step guide to do a contribution
If you have never contributed to an open source project at GitHub, the following step-by-step guide will introduce you to the workflow.
A more detailed general documentation of the GitHub PR workflow can be found here.

[ ] Claim this issue: Comment below that you are interested in working on the issue
[ ] Wait for assignment: A community member with the given rights will add you as an assignee of the issue
[ ] Fork the repository: You can do that in GitHub (by simply clicking the 'fork' button).
[ ] Check out the forked repository
[ ] Create a feature branch for the issue. We do not have a hard naming definition for branches but it is best practice to prefix the branch name with the issue id.
[ ] Solve the issue in your branch.
[ ] Commit your changes: to your branch
[ ] Start a Pull Request (PR): in the hedera-enterprise repository
[ ] Check GitHub Actions: Several GitHub Actions will be triggered automatically for each PR. If a GitHub Action fails and you do not understand the cause of that error do not hesitate to add a comment to the PR and ask the community for support.
[ ] Wait for reviews: Members of the community will review your PR. If a reviewer finds any missing pieces or a problem, he or she will start a discussion with you and describe the next steps for solving the problem.
[ ] You did it 🎉: We will merge the fix in the develop branch. Thanks for being part of our community as an open-source contributor ❤

🎉 Contribute to Hacktoberfest
Solve this issue as part of the Hacktoberfest event and get a chance to receive cool goodies like a T-Shirt. 🎽
🤔 Additional informantion
If you have any questions, just ask us directly in this issue by adding a comment. You can join the Hedera community chat at Discord. A general manual about open-source contributions can be found here.

Hi @Ndacyayisenga-droid , I want to contribute to hedera-enterprise and I want to work on this . Can you please assign this to me?

Hi @Ndacyayisenga-droid , Please review and merge the PR #52.