Heavy cleanup/abstractions

This commit heavily refactored the value classes. Please check the attached 'ValueClasses.cd' in the SparkplugNet Project or use this link:

Heavily cleaned/refactored PayloadConverter (number of lines reduced by almost 60%)

Removed MetricBase

Added ValueBase class as base for all shared data classes

Added ValueBase class children for Sparkplug Version A and B

Added DataTypeExtensions class for converting data types (decoupled it from MetricBase)

Removed Value property from IMetric (IValue takes care of this now)

Added interface IValue for value classes

Changed some names for consistency in Value types for A and B:

Renamed 'Bool' to 'Boolean'

Renamed 'Integer' to 'Int'

Renamed 'Type' to 'DataType'

Added/Renamed ValueCase (uint) and DataType (Enum) as properties for IValue (used this renaming for consistency purposes. Some classes used ValueCase as Enum before). I think ‘Value’Case is better suited for the underlying value (uint) and DataType for the Enum as it shows the data type in text.

Added Bytes field for KuraMetric

Added DataSet helper constructor

Added DataSetValue helper constructors

Metric, DataSetValue, Parameter and PropertyValue now inherit from ValueBaseVersionB

I am against breaking changes on this large scale

I am against breaking changes on this large scale

I'm not completely against the changes, but need to check what has changed first. But in general, I agree. The project should now get into a state where the basic "API" should get more stable, I guess.

I am against breaking changes on this large scale

Please take a look at the Class Diagram, I moved it to IValue. I see it did not display the link in this merge request. The build-up is different, made to adhere to the DRY rule. Instead of having intValue, floatValue, etc. in 5 different classes, it has now been abstracted.
What large-scale breaking changes are you talking about? The only changes to the 'public' are the consistent namings of Boolean in the DataType enums, and consistency in the ValueCase and DataType properties. 99% of the changes I made are under the hood.

I am against breaking changes on this large scale

Please take a look at the Class Diagram, I moved it to IValue. I see now that this merge request did not display the link (updated now). The build-up is different, made to adhere to the DRY rule. Instead of having intValue, floatValue, etc. in 5 different classes, it has now been abstracted.
What large-scale breaking changes are you talking about? The only changes to the 'public' are the consistent namings of Boolean in the DataType enums, and consistency in the ValueCase and DataType properties. 99% of the changes I made are under the hood.

You are right - sorry i just did a quick browser over your code.
I checked out your changes and my integration seem to compile.

I hope to check this tomorrow, let's see.

This looks good. I first thought that you changed code from the ProtoBuf generated classes (Which would have been bad), but unifiing the internally used metrics seems to be a very good idea.

@all-contributors please add @Patrick2607 for infrastructure, tests and code


Wmf rendering issue

Fixes issue #58 and also improves the logging of errors a) in the sample pages and b) in general by extending Error the correct typescript way.

Pull Request Test Coverage Report for Build 172

3 of 11 (27.27%)  changed or added relevant lines in 4 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.04%) to 68.042%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/emfjs/Helper.ts
1
3
33.33%

src/rtfjs/Helper.ts
1
3
33.33%

src/wmfjs/Helper.ts
1
3
33.33%

src/wmfjs/Style.ts
0
2
0.0%

Totals

Change from base Build 170:
-0.04%

Covered Lines:
3228

Relevant Lines:
4472

💛  - Coveralls


15 implement interaction with pull data packet

Coverage decreased (-0.2%) to 97.838% when pulling b7497fd346a58fc9f5900688950cbb145be8f264 on 15-implement-interaction-with-pull-data-packet into 6cb0b275d949fa0e13d9dd056da61027d0773519 on dev.


doc link 404

https://github.com/comonicon/Comonicon.jl/blob/main/docs/src/build.md
link to empty Comonicon.install .
And what's the recommended way to use with PackageCompiler? I seems to get a
ERROR: LoadError: ArgumentError: Package Base does not have Comonicon in its dependencies:

when trying to build with PackageCompiler.

yeah the documentation needs some love.
you need to create a CLI project https://comonicon.org/dev/project/#Enable-System-Image
then call the YouPackage.comonicon_install() as a CLI app.

IonCLI is archived and ion doesn' t have a template for comonicon?

IonCLI is archived and ion doesn' t have a template for comonicon?

not yet, I don't currently have time to work on that. You can just create a Comonicon.toml file manually.


Not only 2% of Sharing ad traffic?

@floatinghotpot   say 2% :
"Sharing ad traffic means that, when using my plugin to present the ad to user, random 2 out if 100, will use my ad unit, 98 use yours, so that we can both benefit."
https://github.com/floatinghotpot/cordova-admob-pro/wiki/License-Agreement#2-win-win-partnership
BUT  its  not  true "2% "
he make a request to "http://adlic.rjfun.com/adlic" and get a JSON  with the  "adlicRate"
this.testTraffic = (new Random()).nextInt(100) < this.adlicRate;
in my tests  adlicRate  its   30%  of  "Sharing ad traffic"
@floatinghotpot   why did you  lie?
please  be honest with community !!

Did you use a fake license key? As I did find some guys attempt to crack this plugin and send fake license key.
In normal situation, if a valid license key is used, will 100% use your own id and no more ad sharing. If no license key used, then sharing 2%. BUT, if a fake license key is used, some punishment will be added for the crack behavior.
Please let me know your package id and license key for a double check.

@floatinghotpot      i don't use license key and your "sharing ad traffic"  its  30%
please  see  the  code again
in my app  "this.validatedLicense"  is empty string
https://github.com/userweb/expose-liar-plugin/blob/master/GenericAdPlugin.java#L370
and your  server  return  a JSON  with      r:30
https://github.com/userweb/expose-liar-plugin/blob/master/GenericAdPlugin.java#L380
so ....  you lied about 2%
please be honest with community !!

Here are some examples of fake license keys, we found from the crack/attack behaviors:
-6849' IN BOOLEAN MODE) UNION ALL SELECT 1853,1853,1853,1853,1853,1853,1853,1853,1853,1853#

toto/20d022b75dee5fc4dd18cf13a97bf003

Why not tell us your package id and license key for a double check?

@floatinghotpot
I DON'T USE ANY LICENSE

@floatinghotpot   why?????
please be honest with community !!

I just wanna do a double check if any mistakes, tell me your package id please.

@floatinghotpot  check  your  CODE
https://github.com/userweb/expose-liar-plugin/blob/master/GenericAdPlugin.java#L380

We have some automatic logic in server side to protect from crack/hack behavior, I am not sure if it's triggered in your situation. Please tell me your package id, so that we can double check whether you said is true.

Hey, @userweb, we wanna dig into this issue, please help to provide more details, we need your package id for a troubleshooting.

Can we get an update on this please?

Not yet, userweb did not provide us the package id. If anyone face similar issue, please provide us more details so that we can do troubleshooting to identify the root cause.

OK. But did you double check your code just in case?
Also I think you need to be more upfront with the 2% ad sharing.
It should be one of the first thing we see in the README.
The Licence Agreement page is hidden in the Wiki's right hand side menu.
And how can we check the adclick rate? Could you provide some sort of logging at runtime?
Thank you

@floatinghotpot   you  stolen a lot of money from community.
 So it's hard for us to identify the root cause. If anyone encounter the similar situation, please provide us some clues for troubleshooting, and we will correct it if anything really wrong.
I have 139 projects on github (original source, and forked/improved), mainly for my own use, then open to the community by the way. If you feel it useful, use it. If not, just ignore it and find something better.
https://github.com/floatinghotpot?tab=repositories
Like wekan, it's a fully open source project I contributed (it's created by Maxime Quandalle, and I improved it for our own needs, as we use it in our project management), very recommended.
https://github.com/wekan/wekan
If you trust this plugin, and hope to get some support, try donating $20 to get a commercial license. You will be supported with higher priority. There are many commercial customers, still now, none of them complains.
If not, there are also plenty of totally free options. As you guys can see, here is the fully open source version of admob plugin. You guys can fork it, read and understand the full open source code, and add/delete any lines of code as you wish.
https://github.com/floatinghotpot/cordova-plugin-admob
There are some other alternatives, some guys simply copy my code (instead of fork, they just copy, change the ad sharing id to their own, then claim as their own plugin, and they even not mentioned it's derived from my code), like these:
https://github.com/appfeel/admob-google-cordova
https://github.com/sunnycupertino/cordova-plugin-admob-simple
BTW, You guys may wonder, as I wrote so many code for free, if I don't get ad sharing or donation, what I make living from? Okay, welcome to try my new game (it's rated 4.4 on Google Play, I am confident it earns more than some of you):
Google Play:
https://play.google.com/store/apps/details?id=com.unicgames.tankcraft
Apple AppStore:
https://itunes.apple.com/app/tankcraft.io/id1128668192?mt=8
Enjoy coding and monetization, see you in AppStore.

Hi @floatinghotpot
Why censoring @userweb 's last message?
Personnaly I didn't say you were cheating or that @userweb was right.
But he's raising a good point.
You're making a living out of the 2% ad sharing, that's fine with me.
You even deserve it as you're helping out the community.
But that's our money we're talking about too, and as an small indie every buck count.
We need trust, transparency and reinsurance,
I'd love you to tell me you double check, we all make mistake.
Anyway, I still plead for my previous points:
1 - be more up front with the ad sharing (I have doubts that every one knows about it)
2 - provide a way to check the adlicRate
Thank you

@becvert I just delete some rude shouting, as you can see, I did not delete any content supporting his points and against me.
I just ask for a package id so that I can try troubleshooting and double check, but @userweb always avoid positive response, just keep shouting rudely. It's not a correct way for positive communication. What else can I say?
As I mentioned in last post, there are plenty of free and fully option source options. For those who don't trust the plugin, please stop using my code, it's a simple way make you feel safer and make me feel happy.
Time is money, please don't get me tangled. I won't respond again. Thanks.

no worries.
but again please just be more up front with the 2% ad sharing.
advertise it more clearly for fairness.

@floatinghotpot    WHY  delete my  comments?????
Are you  afraid?
PLEASE   EXPLAIN  this  FOR COMMUNITY:
1 - Please  explain  Why  dependency  "cordova-plugin-extension"  is not full open source????
https://github.com/floatinghotpot/cordova-admob-pro/blob/master/plugin.xml#L24
2 - What this package do???
"import com.rjfun.cordova.ad.GenericAdPlugin;"
3 - What  this .jar   do??
https://github.com/floatinghotpot/cordova-extension/blob/master/src/android/cordova-generic-ad.jar
4 - Why your plugin   makes a request  to "http://adlic.rjfun.com/adlic"  every time ???????
5 - Why without your plugin  I got  more 20%-30%  of  dollars/views/clicks  from admob ???
PLEASE   EXPLAIN   FOR COMMUNITY  !!!!!!!!!!

I did not know about the 2%, wtf?

To use this FREE high-quality plugin, I have no problem with the 2% royalty, as documented in the README.  If the closed code were reverse engineered and it was proven to be more than 2% for legitimate uses of the plugin, that would be a problem.  For illegitimate uses however, perhaps the plugin should not work at all.
Separately, I completely understand why some parts of the code might be closed source.  If the code were completely open, it would be even more vulnerable to copy/paste/rename.  Such ripoffs have already been reported.  Outright stealing of hard work stifles innovation and sharing.

Salut!
I came to this plugin when reviewing adsense alternatives for a customer cordova project. I find this issue quite interesting, so I took some time to analyse further. Here are my personal opinions.
There are a number of quite puzzling things with this plugin, some of which are quite frankly just wrong! I've checked the code userweb has posted and here are a couple of observations that the authors of the plugin should address.
Privacy Issues
There is quite a serious privacy breach with this plugin. Every time your app users start your app, their devices will make a POST HTTP request to http://adlic.rjfun.com/adlic where they'll send your app package id, device os, but most importantly the IP address of the user's device! It is unclear why this is being done from the plugin's documentation.
Do the authors collect these IP addresses?
Do they have a kind of a IP address circle of all users that ever used a particular app (the package id is collected, remember), do they do geo location lookup on those addresses?
It is an authoritative, closed source server and we have no idea what is being done there.
Sending the user's device IP address to a 3rd party server is also considered a privacy breach, and especially in Europe it will be considered illegal. You, as app developer, will have to explicitly state that this is being done in the privacy policy of your app!
Adsense Issues
There are important issues with adsense as well.
First problem is that the authoritative server may, at any time, inject their own banner in your app.
They configure the rate at which this happens, it might be 2%, but it might be 99%. You never know and may never be sure. Since it is a closed source server code, it could even
be unintentional, due to a bug or something. The result?
At best, no ads will be shown, at worse you will be making money for someone else all the time.
Another part of the problem is the Block ads by sensitive category Google Adsense configurations.
In your Google AdSense account you may decide what type of ads to block for your users, e.g., sexual content, etc.
With the current code, there is 2% (or more, see below) chance that your rules will be overriden completely. Whatever you configured in your Google AdSense account will just not work, because the authoritative server replaces your banner and interstitial ids with the ones sent with the JSON reply. Your users may get offended and uninstall your app.
Is it 2% banners? How long are the they shown?
First, I'm not so sure that Java pseudonumbers are the correct thing to use here.
SecureRandom() provides more entropy, it might be that 2% happens 3 times in a row currently.
Second, the way I see it, this adlic call is done only once your app initialises.
This means, you will be showing the 2% authors' ads throughout the whole time a user uses your app. These 2% will be recalculated only if the users explicitly closes your app and therefore re-initialises the call to the authoritative server. I might be wrong here, so someone please review and comment on this.
Free App Issues
Last, this really is NOT a free app. It should already be obvious. The authors make money from your app, even if it is 2%. This really isn't a problem, the problem is that they state it is free and open source, but the info about the 2% and the authoritative server is obscure.
Also, important parts of the app, as shown in this thread, are also closed source binary files committed in Github and carefully masked with the name cordova-extension.
Looking at the README it is totally unclear what this plugin does and what the binaries contain. In my opinion - this is unacceptable and quite frankly dangerous!
So, I urge the authors to revisit these points. I think this plugin is better suited as trial software. Use it 30 days for free and then pay for a license. This would be something I'd consider as well, but right now everything is quite obscure and it does indeed, really look like a scam. I'm sorry.

@jmelvin the 2% royalty is NOT documented in the README on github nor in the README on the npm registry.
The link to the Licence Agreement page is buried in the right hand side menu in the wiki.
Yes that README is a little bit better (have to go to the API overview to hear of the ad sharing though).
@rene-molineux thanks for these precisions
I'll opt out of this plugin.

@rene-molineux You post is very logical and reasonable, good points! I appreciate logic, not rude shouting. So I decide to reply in a good mood.
First, this one: https://github.com/floatinghotpot/cordova-plugin-admob
It is my first ad plugin project, fully open source, it's welcome and forked a lot. Sharing and fork, improve and send PR, it's the great culture that GitHub creates. I am okay with it, and even love it.
But some guys just copy it, change a name, then publish to npm and claim as their own. I don't like such behavior.  :-(
At the same time, lots of guys hope to get a high-quality plugin, and they are willing to pay, for the product, and also for the support. Some companies also contact me for outsourcing project to write some Ad plugins, like this ones:
https://github.com/floatinghotpot/cordova-plugin-flurry
https://github.com/floatinghotpot/cordova-smart-adserver
After I've finished 7-8 Ad plugin outsourcing projects, I found most ad network SDKs are quite similar, the core part of the ad plugins can be highly reused. Then I re-architect and abstract the core part, to be reused by all ad plugins, and also add license control. This time, to avoid copier, I decided to close part of the code. ;-)
This is this project: https://github.com/floatinghotpot/cordova-admob-pro
Later, some indie from some poor country/area contact me, they have no paypal account, and even no enough money to pay for the license. Then I create another model (I call it partnership), they can use this plugin for free, ship my code with their app, just share me very little ad traffic (2% Ad or 2% user), that's the model we are disputing today.
So I summarize all 3 business models in the wiki License Agreement.
In later iteration, I found some guys attempt to reverse engineering my binary, crack my code, and generate fake license key, then I setup a server in cloud to anti-crack, adlic, means "Ad License". Each time the plugin initialize, it will send the license key to server for validation against the database records. That's why I ask userweb's package Id and license key for double check, but unfortunately, I did not get the answer I want.
The above are the full story of the Ad plugins, open source one, and this pro one, and also the 3 business models.
As to privacy, or collecting user's IP, of course not, it's not my interests, and not my strength to be a hacker or spy like the guys in movie "Jason Bourne". I am only an indie, not CIA or FBI. :-)
Yes, @rene-molineux, you are correct, this plugin is not a 100% FREE plugin. It's mainly for commercial purpose, but it can be used for free (before you earn enough to afford the license fee). It's also okay to share very little Ad traffic instead of directly paying me cash or PayPal.
I am quite open on how you use it, just do not copy, no fake license, no rude shouting. One thing is sure, quite a lot of developers from the poor countries/areas are benefited from this plugin and this creative model, so I believe this ad sharing model has nothing wrong.
Okay, I accept your urging points, to make it more precisely, now, I update the README with following content (Please help me check it's clarified enough clear):

You can use this plugin for free for trial purpose. If it earns less than $1000 for you, you can continue to use for free.
If use in commercial project, please get a license, if you have monetized more than $1000 using this plugin, you are also required to: either get a commercial license ($20) without ad sharing, or no need pay but share 2% Ad traffic, read the License Agreement for details. As a commercial customer, you will be supported with high priority, via private email or even Skype chat.
If you hope to get a fully open source plugin and need DIY, use this one instead:
https://github.com/floatinghotpot/cordova-plugin-admob

@floatinghotpot that's better but you're still a bit shy.
I think that the Licence Agreement section or at leat a mention of the ad sharing needs to be near the top of the README. That's just my opinion.
You're not the only one whose giving time and putting effort for the community,
but you're probably one of the few who do earn money off of your plugins.
I'm not saying it's a bad thing and that you're a bad guy,
but  indies like me deserve to be better informed.
Also, sorry to bother you, but you did not clearly respond to @userweb (even though he's used some rude shooting) about the adlicRate. he said he's not using a license key. True of false it's worth double checking.
You lost me on this. For this reason and others, as I said I'm opting out of your plugin and I'll see if any differences occur.
probably my last post here ;)

One more word on cordova-extension project, it's another story.
It's some bigger than a plugin only. I attempted to write something really cool, but still not achieve it yet.
As we know, Cordova / Cocos2d-X / Unity are the most popular cross-platform app/game technology for mobile development. But only cordova ecosystem provides so many plugins with a very excellent architecture and convenient management utility. It's quite hard for find similar plugins for Cocos2d-X and Unity. People have to re-write plugins, even almost the same logic.
I was thinking and experimenting, why not reuse the code, is it possible to get them reusable for Cocos2d-X and Unity?
2 years ago, I spent more than 1 months, full time (actually 14 working hours a day, you know, sometimes when you have a crazy idea, you just cannot stop coding), working on an experimental project, a general plugin framework for Cocos2d-x to call Cordova plugins, I call it "Magpie", here:
https://github.com/HandyWit/magpie
As it's README states:

Extend the Cordova plugin base class with adapter interface. Plugin written based on this interface, may also be reused for Unity, Cocos2d-X, and other frameworks.

Purpose

Make Cordova Plugins reusable.

To use mobile device native functionalities and integrate 3rd-party SDKs, mobile developers are writting hundreds plugins for Cordova, Unity, Cocos2d-X, and other frameworks.

Can they be reused? Yes, it's possible.

Cordova plugin manager is bridging function call between javascript and native languages, actually, it can be ported to bridge with C, C++, C#, then it can be reused for Unity, Cocos2d-X and other frameworks.

And here is the successful demo to call Cordova Plugins in Cocos2d-X Game:
https://github.com/HandyWit/MagpieDemo
Though the experiment is quite successful, but it's not easy to be used by community, and also no enough influence to get sponsor or volunteer to join me.
I did not continue to write the adapter for Unity, it's only used in Cordova plugins, as it is till today.

@floatinghotpot I have three open issues right now. Do you confirm that if I get a licence, you'll provide support until they are solved (if due to bugs in the plugin, then you'll fix them) ?

@floatinghotpot Fair enough and thanks for the clarifications! Like I said, it is OK to get paid for working on something, this is fair.
I'd advise putting the 2% and license info & link under a section called License or something in the README.md. That's where most users will look I think.
Other than that, I would also add the info about the data sent to your adlic server. Please understand, this really could be an issue in some countries or in some commercial environments.
Also,  in the 2% explanation you should also include the info that any Admob rules a user has made will not affect the case where your 2% ads are shown. Just for clarity.
Other than that, good work!

@zabojad If you are a commercial customer, please drop me a private email (rjfun.mobile at gmail.com) and show us your license. We will try our best to provide support.
At the same time, please be aware that we can only resolve the bugs in our plugin. If it's the problem or limitation in your own code or in AdMob SDK, it's out of our capability, then need turn to Google AdMob official forum or stackoverflow.com for help.

I just want a quick summary. Right now I am making very little. Like $10 a month. Once I have made $1000 you will start taking 2% unless I buy a license. Is this correct?

Is it $20 per app or a one time license for a Dev?

@rene-molineux @userweb @becvert Do you guys have any other plugins you recommend? I might fork the open source just to update AdMob SDK. This is a big issue for me right now. Time is of the essence as always.

@rene-molineux Also thanks for the in depth analysis. @floatinghotpot Thank you for taking pride in your work and working with us about this issue.

@rene-molineux Thanks for the reminder about privacy. I just update the License Agreement with following content:

Privacy Statement
When this plugin is initialized, it will send license key and app id to our license control servers, only for validation it's used with legal authorization. It won't collect any user's IP or any privacy data and store in our server.
The plugin is built based on AdMob SDK, when your app send Ad request to AdMob servers, Google's server might collect user's IP for big data analysis and Ad optimization purpose. It's covered by Google's policy, not ours.
If you want to increase accuracy of Ad publishing to improve click rate, targeting the right users is a good idea. You may optionally send the gender/age/location info to Google Ad server by setting the related info in the API. It's your own behavior and responsibility to balance the pros/cons, nothing to do with us.

@floatinghotpot Is it $20 per app or a one time license for a Developer?

@bflopez
So far cordova-plugin-admob-free is the only one I've seen that's completely free, without ad sharing and full open source.
It's basically a fork of cordova-plugin-admob-simple with the ad sharing removed.
cordova-plugin-admob-simple itself probably just copied @floatinghotpot's work.
I opened an issue over there about the 2% ad sharing, the guy edited my message and closed the issue in just under a few minutes. seems very dishonest. a scam.
All other plugins seem to do ad sharing.
And no one advertises it properly.
very deceitful.
Anyway I'm looking into improving cordova-plugin-admob-free and adding mediation for the Facebook Audience Network right now.
Still you may consider admobpro if you don't mind licence fee or ad sharing and need support plus more mediation networks.

@floatinghotpot
you write

You can use this plugin for free during trial purpose. If it earns less than $1000 for you, you can continue to use for free.
If use in commercial project, please get a license, or, you have monetized more than $1000 using this plugin, you are also required to: either get a commercial license ($20), or, no need pay but share 2% Ad traffic

I do believe until you get a licence key a 2% ad sharing is applied. it's never completely free?
So non commercial project earning less than $1000 are penalized too?
Please correct me If I'm wrong.
Thank you.

@becvert

You can use this plugin for free during trial purpose. If it earns less than $1000 for you, you can continue to use for free.

Only abuse of this plugin, for example, attempt to crack, reverse-engineer, generate a fake license key, or steal a license key from others, such behavior will be penalized.
Frankly speaking, time is valuable and limited to anyone. It cost us time to work on this project, especially provide support by replying the questions and reply emails one by one. It's fair that I get rewarded. If you want my support completely free, then you are consuming my time for FREE. It's not fair.
This project is also created by me, it's completely FREE: https://github.com/floatinghotpot/cordova-plugin-admob

@floatinghotpot you're missing the point. I'm just trying to help you out.
Again reading the source code, I think the 2% penalty is applied until one get a licence.
But this is not what I understand reading the licence agreement.
I'm just saying the wording needs reviewing again. Maybe I'm wrong about it.
And please stop saying your time is valuable.
I have a few plugins of my own, I don't make a fuss about my precious time.
Plus I don't get paid for it either.
How many devs out there are giving time and effort to the cordova community?
How many are rewarded?
Sorry I'm just a bit pissed, not especially at you, but at all those admobs plugins that are being dishonest. I feel it is not in the good spirit of the open cordova community.
To complete my previous post, cordova-plugin-admob-free is the only one free along with yours cordova-plugin-admob obviously.

@becvert Let's stop arguing and make things simple.

cordova-plugin-admob, it's FREE and fully open source, it's donated to community and we appreciate the good spirit. Welcome to fork, improve, send PR. :-)

I'm not arguing about cordova-plugin-admob (thanks for the donation)
I'm arguing about cordova-plugin-admobpro.
Besides please allow me to say that iAd has been discontinued,
so you should probably remove the iAd PluginPro license payment option

Linux (free and open source), and Mac (commercial with support), both have their own reason to exist, and live together peacefully. ;-)
Thanks for the reminder about iAd. 👍   I will remove it from related docs.

@floatinghotpot that's not the point.
I'm fine with admobpro.
The wording though does not reflect what's happening in your code.
You should write

until you buy a licence, a 2% ad sharing is applied

That's all I'm saying :wink:

I thought that i give you only 2%, but i checked url and saw, that 2% is 30%.
500$ each month. LOL! Thief!

https://github.com/floatinghotpot/cordova-admob-pro/issues/640
FROM A FRIEND:
Read the license and you can see, that he promised to take only 2 percent of ad traffic, but in fact he takes up to 30%.
Why am I writing this?
Because I noticed that my money was also stolen and good must defeat evil
How did you know my mail?
I spent a lot of money and time to parse all google play apps (yes, +2.2M apps), and I found all the applications that use this plugin
What should I do?
First, do not write to the creator of the plugin. I do not know what he can do in a panic, but he can control your ad traffic, so trust me and be ninja.
Second, make an update without this plugin.

@floatinghotpot   you is  a fuckingggg   LIER !!!!!!!!


Docs: add example map to gallery

Add the web map from Gisolutions

Thanks for this @JakobMiksch, LGTM, will merge now.


Doesn't compile on Lua 5.2

Hi, I fixed this code for Lua 5.2 and put a pull request here:
https://github.com/x25/murmurhash3-lua/pull/1
Do you think you could merge it? Thanks.

Merged and updated to v1.3.
Thank you.


dbs-virtio-devices: add virtio net device.

Add virtio net device and epoll handler.

Could you please fix the clippy warnings/ errors


Fix subscribe/unsubscribe buttons.

Automated message from Dropbox CLA bot
@showell, it looks like you've already signed the Dropbox CLA. Thanks!

Merged, thanks @showell!


Added option to override the preview screen styling

This PR adds a new option: previewClass
previewClass accepts a string or array of strings (string | string[]), these strings will added as classes on the editor's preview screen.
The default is editor-preview.
Keep in mind that overwriting this class will remove all applied css from the preview screen.
This option is best used like this: previewClass: ["editor-preview", "my-custom-class"]. This will give a developer the opportunity to overwrite and apply custom css, while still having the original css as a base.

Awesome, will merge this and cut a new release soon.

Many thanks 👍


fix to allow single sided borders

Thanks @seanwoodward, nice catch :+1:

Nice catch :+1:
I made a minor feedback just to improve that implementation, but looks good!
I'm gonna let @JakeLin make the final review :dancers:

Good one, :+1:
agree with @tbaranes ,  it is better to group them within one. Can we optimise that in this PR as well? Thanks.

@seanwoodward thanks again for your PR, do you have time to make the last change according to @tbaranes 's comment? Or we can merge this PR then make the change after. We are about to release 2.2, 😉 thanks.

I think we can merge it. We can handle that comment, or even do it directly in master.

@seanwoodward thanks again for your PR. @tbaranes working on release 2.2 now.


feat: Add docker push

Release dev docker image on push master

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:
:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.


TenantId should be Tenant

As per: https://docs.microsoft.com/en-us/powershell/module/az.accounts/Connect-AzAccount?view=azps-4.2.0
The below:
https://github.com/Azure/AzOps/blob/99c1e0cf2b17be976368b8ba6a0e9ada938c964f/entrypoint.ps1#L28
Should Be:
Connect-AzAccount -Tenant $credentials.tenantId -ServicePrincipal -Credential $credential -SubscriptionId $credentials.subscriptionId -WarningAction SilentlyContinue | Out-Null
as it gives errors:

Thanks for submitting this @liamfoneill, investigating this issue and will update shortly.

I get this too, from the warning I'd say the issue was here:
https://github.com/Azure/AzOps/blob/99c1e0cf2b17be976368b8ba6a0e9ada938c964f/src/public/Initialize-AzOpsRepository.ps1#L122

@liamfoneill @matt-FFFFFF  - how long ago did you create SPN and granted permission at tenant scope?

A couple of hours @uday31in

just received the same error:

any idea how to make it work?
thanks


Display a wrong tooltip when hovering over the 'Undelete' icon for one blob container

Storage Explorer Version: 1.9.0_master_20190711.5
Platform/OS: Linux Ubuntu/macOS High Sierra/Windows 10
Architecture: ia32/x64
Commit: a1cd90ad
Regression From: Previous release(1.9.0)
Steps to reproduce:

Expand a Non-ADLS Gen2 account -> Blob Container.
Create a new blob container -> Hover over the 'Undelete' icon on the toolbar.
Check the tooltip.

Expected Experience:
The tooltip shows 'Undelete'.

Actual Experience:
The tooltip shows 'ASX_UndoDropdown_blue23x19'.

More Info：

This issue also reproduces on feature/main-host 20190711.2.
This issue doesn't reproduce when hovering over the 'Undelete' item.
This issue also reproduces when hovering over the 'Move' icon for one ADLS Gen1 account.

This issue also reproduces for toolbar 'Pin to Quick access' on the build master/20190711.8 for one ADLS Gen1 account.

This issue has been fixed on the latest master build 20190717.6. So closed it,


Test fails if folder name contains parenthesis

I understand this is probably an edge case but would be nice to have this resolved.
Do you want to request a feature or report a bug?
Report a bug.
What is the current behavior?
If a folder name contains parenthesis ( ) then tests fail.

A similar issue was reported #1462 and #1551.
If the current behavior is a bug, please provide the steps to reproduce and either a repl.it demo through https://repl.it/languages/jest or a minimal repository on GitHub that we can yarn install and yarn test.

Download the repo
Rename main folder from jesting-test- to jesting (test)
npm install and run npm test on Windows 10. You should get the error mentioned above.

What is the expected behavior?
To pass the test. Simply remove the parenthesis and run the test again. It should pass as expected.

Please provide your exact Jest configuration and mention your Jest, node, yarn/npm version and operating system.
Node v7.10.0
NPM v4.2.0
Jest v21.0.2 (default configuration)
Windows 10 (Version: 1607, OS Build: 14393.1593)

Duplicate of https://github.com/facebook/jest/issues/2381


Revocation tests

Hi,
I couldn't find tests about revocation, is it something supported ?
My use case is: a third party client app registers and gets clientId/ClientSecret, then uses Client Credentials flow to get Access Token and then perform APIs calls on the Resource Server.
I then decide to revoke the access to my APIs to that particular client App, if the Authorization server doesn't revoke the Access Token (and even the Refresh one) the client can keep performing secured APIs calls.
How can I revoke the access and refresh token? Is there an example ?
Thanks a lot in advance

You authorise every client in getClient, you could check if the client is revoked here and if so not return any client details - this would result in an invalid_client "Client credentials are invalid" error
Another option would be to implement grantTypeAllowed and return invalid_client "The grant type is unauthorised for this client_id"
I'm not aware of anything in the spec specifically about revocation

Thanks

Sorry one last question, getClient seems to be called during the OAuth flow but not when accessing the secured API.
How can I check there that the Access Token used is not from a Client that was revoked ?
I've overridden requireUser, how can I retrieve the clientId from the the Access Token?
Thanks

In your getAccessToken when you pull out the access token you can check the associated client id is still valid

Thanks, I'll try that.
How do I get clientId from the bearer token ?

You should be storing it alongside the token, this is how it's done in the examples: https://github.com/thomseddon/node-oauth2-server/blob/master/examples/postgresql/model.js


⚠ Turnos 24x7 has degraded performance

In 2ec3f8e, Turnos 24x7 (https://reservas-dev.alternativasinteligentes.com/) experienced degraded performance:

HTTP code: 200
Response time: 1512 ms

Resolved: Turnos 24x7 performance has improved in 6988e9a.


Sandbox crashed

My hosted sandbox that has been running for days recently crashed with this error. I have no idea when or why it happened.
Version: 0.62.0
 2024-11-24T06:25:16.512Z aztec:pxe_synchronizer [ERROR] Error in synchronizer workNoteProcessorCatchUp: RangeError [ERR_BUFFER_OUT_OF_BOUNDS]: Attempt to access memory outside buffer bounds
aztec-1     |     at new NodeError (node:internal/errors:405:5)
aztec-1     |     at boundsError (node:internal/buffer:86:11)
aztec-1     |     at Buffer.readUInt8 (node:internal/buffer:254:5)
aztec-1     |     at EncryptedLogPayload.decryptAsIncoming (file:///usr/src/yarn-project/circuit-types/dest/logs/l1_payload/encrypted_log_payload.js:100:38)
aztec-1     |     at L1NotePayload.decryptAsIncoming (file:///usr/src/yarn-project/circuit-types/dest/logs/l1_payload/l1_note_payload.js:59:50)
aztec-1     |     at NoteProcessor.process (file:///usr/src/yarn-project/pxe/dest/note_processor/note_processor.js:102:71)
aztec-1     |     at async Synchronizer.workNoteProcessorCatchUp (file:///usr/src/yarn-project/pxe/dest/synchronizer/synchronizer.js:165:17)
aztec-1     |     at async file:///usr/src/yarn-project/pxe/dest/synchronizer/synchronizer.js:70:32
aztec-1     |     at async file:///usr/src/yarn-project/foundation/dest/queue/serial_queue.js:58:33
aztec-1     |     at async FifoMemoryQueue.process (file:///usr/src/yarn-project/foundation/dest/queue/base_memory_queue.js:116:17) {
aztec-1     |   code: 'ERR_BUFFER_OUT_OF_BOUNDS'
aztec-1     | }

@Maddiaa0 i didn't test versions after 0.62.0. I will re-open this issue if similar error occurs.


What version of boost is required ?

I have a current project that uses boost 1.69 - is that good enough to do websocket client and server connections ? Or is it worthwhile upgrading to 1.71?

1.69 should work, but every new version of Boost contains bug fixes and improvements to Beast, so if you want the "best" version, you should use the latest.

Hi Vinnie, I'm using the example from 1.66 and they work well.  I changed the "onread" function so it constantly calls itself. I create the connection, then  use the same connection to constantly read from the same source (should be faster than constantly re establishing a new connection)  . Would the connection eventually time out if there is no traffic? Or if there is constant traffic would it stay open indefinitely?
`void
on_read(
boost::system::error_code ec,
std::size_t bytes_transferred)
{
boost::ignore_unused(bytes_transferred);
    if(ec)
        return fail(ec, "read");

    if (!closeConnection ) {
        // Read a message into our buffer
        ws_.async_read(
                buffer_,
                std::bind(
                        &Session::on_read,
                        shared_from_this(),
                        std::placeholders::_1,
                        std::placeholders::_2));

        std::cout << boost::beast::buffers(buffer_.data()) << std::endl;
    }
    else
    {
        // Close the WebSocket connection
        ws_.async_close(websocket::close_code::normal,
                        std::bind(
                                &Session::on_close,
                                shared_from_this(),
                                std::placeholders::_1));
    }
}`

ps Congrats on getting beast into boost!

1.71 has timeouts:
https://www.boost.org/doc/libs/1_71_0/libs/beast/doc/html/beast/using_io/timeouts.html

Cheers - I'll check that out - thanks!


Refactor try_seh to support capturing and forwarding out a return value

This is fairly trivial to do, here is an example:
/// Execute a closure inside of a SEH block and return the result.
fn try_seh_rv<T>(f: impl Fn() -> T) -> Result<T, microseh::Exception> {
    let mut rv = MaybeUninit::uninit();
    microseh::try_seh(|| {
        rv.write(f());
    })?;

    // SAFETY: We should only reach this point if the inner closure has returned
    // without throwing an exception, so `rv` should be initialized.
    Ok(unsafe { rv.assume_init() })
}

I believe that this change is also non-SemVer breaking, so you can probably avoid cutting a new major release if you change try_seh.

This is a good idea, thank you! I wonder if this could be the right moment to add a try_seh! macro that also takes care of this

Oh that is awesome, thank you for making this change so quickly!


Correct ImageCreate - platform parameter added

closes: https://github.com/docker/docker.github.io/issues/9305

Please do not send pull requests to this docker/docker-ce repository.

The CONTRIBUTINGmd didn't cover patches against older documentation.
Couldn't see how to create a PR against 17.09 in https://github.com/moby/moby
Also needs a fix in 17.10 (API 1.33).
The 17.11 (API 1.34) branch contains the same text so it should be ok.

:small_airplane:

This repository is not used for backporting fixes, but only used in the build-pipeline (with the "components" directories being updated with the upstream sources from https://github.com/moby/moby, https://github.com/docker/cli, and https://github.com/docker/docker-ce-packaging).
If this still needs fixing, could you open a pull request in https://github.com/moby/moby/ ? current version of the swagger file can be found in https://github.com/moby/moby/blob/master/api/swagger.yaml, and copies of the file for older versions are now in https://github.com/moby/moby/tree/master/docs/api
I'm closing the PR here, but feel free to continue the conversation


Added a solar system generator for any star on screen

This uses a constellation of solar system and planetary simulators

done


Consider accepting non-accessibility contributions?

I was about to make a PR but noticed you're only accepting accessibility contributions. Slick has been inactive for 2 years now and have a lot of issues and PR waiting open. Your repo have a working build, is active and by being accessible can be considered superior quality. I understand this would mean more work, but would you consider accepting non-accessibility related contributions?

Hey Jean-Sébastien! It's a good question for sure. This package and repo are provided by Accessible360 to help "stop the bleeding" around accessibility caused by Slick Slider downstream, but not treat all of the other conditions that it currently has outside of accessibility.
Since our company is focused on digital accessibility and is pretty small and lean, we just wouldn't have the capacity or skillset to support such a large community outside of our core business. Currently Slick Slider has over 1,000 open issues and over 200 open PRs, some going back several years - that's quite a lift for any organization!
I agree that it appears the Slick Slider project has been abandoned for quite while now, but because it has not been officially deprecated/archived, people are still using it without knowing that it isn't a good idea. I would suggest trying to directly reach out to the project's author to ask them to add a deprecation notice to Github and NPM, or archive it entirely, or maybe even transfer it to a "successor" (org or maintainer). There is also some discussion going on around adding a feature to "claim" abandoned repos, which you could upvote and/or participate in: https://github.com/isaacs/github/issues/1385. Beyond that, maybe you could help get the word out about the status of this repo by writing a short article or posting on social media, which could potentially be found in search results when people are researching Slick in the future!


How do you specify a default on a filter?

Hi,
How you you specify a default for a filter?
I want to display a single image based on a specified tag and if that tag isn't found then just display the most recent image from a user.
I have looked at this issue: https://github.com/stevenschobert/instafeed.js/issues/244
I have it working so that it will take a pool of 20 of the most recent images from Instagram and then filter them based on a tag. The most recent tagged image will be displayed if it is in that pool of 20.
var matches = 0;
var feed = new Instafeed ({
   get: 'user',
   userId: 123123,
   clientId: '123abc123abc',
   accessToken: '1a2b3c1a2b3c1a2b3c1a2b3c',
    links: false,
    resolution: 'standard_resolution',
    template: '<img src="' + 'images/blank-image-grid.png" class="b-grid__instagram" style="background-image: url({{image}})">',
    limit: 20,
    filter: function(image) {
       if (matches < 1 && image.tags && image.tags.indexOf('mytag') >= 0) {
          matches += 1;
          return true;
       }
// else { some logic here to select the most recent image on the users feed ??? }
       return false;
   }
    });
    feed.run();

Thanks for any help.

I can get half way there with this filter:
					filter: function(image) {

                        console.log('--> ' + image.images.standard_resolution.url + ' COUNT = ' + count);

                        if (matches < 1 && image.tags && image.tags.indexOf('xnotmytagx') >= 0) {
                            matches += 1;

                            console.log('MATCHES = ' + matches);

                            return true;
                        }

                        count += 1;
                        if (count == (maxLimit)) {
                            console.log('---- TAG NOT FOUND ----');
                            return true;
                        }

                        return false;
					}

In the above I create a count to run to 20 (maxLimit) and if the tag isn't found then return true.
This will give me the 20th most recent image rather than the 1st most recent image.
How do I set a default to use the most recent image if the tag isn't found?
Thanks.


Timeline: add ability to tag other users on feed post

This is an important feature in a regular Social community. Members should be able to tag each other during feed posting.

It's already possible, just type @ and mention somebody


Fix 'Do not leave a blank line after "public:"' issue in mainwindow.h

CodeFactor found an issue: Do not leave a blank line after "public:"
It's currently on:
mainwindow.h:67

https://github.com/Paracetamol56/Observeur2/pull/9


search -> find next should set focus to editor

From<EMAIL_ADDRESS>on 2010-08-16T06:44:57Z
Hello,
when you're in the editor and type CTRL+F for search, you can type in a word. When you want to find the next reference (F3) the focus is not set to the editor. When you set the focus to the editor then and keep hitting F3, the focus stays on the editor. I would prefer that when you hit F3 the focus is always set to the editor for the found word, to start typing/navigating...
Original issue: http://code.google.com/p/spyderlib/issues/detail?id=297

From pierre.raybaut on 2010-08-18T10:20:21Z
Fixed in v2.0
Status: Fixed


consider locking protobuf dep version

After installing polars I started getting a strange error message. I think something might have changed in the protobuf library.
  File "/home/xk/.local/share/virtualenvs/lb-f3y78r55/lib/python3.10/site-packages/pychromecast/__init__.py", line 14, in <module>
    from . import socket_client
  File "/home/xk/.local/share/virtualenvs/lb-f3y78r55/lib/python3.10/site-packages/pychromecast/socket_client.py", line 23, in <module>
    from . import cast_channel_pb2
  File "/home/xk/.local/share/virtualenvs/lb-f3y78r55/lib/python3.10/site-packages/pychromecast/cast_channel_pb2.py", line 33, in <module>
    _descriptor.EnumValueDescriptor(
  File "/home/xk/.local/share/virtualenvs/lb-f3y78r55/lib64/python3.10/site-packages/google/protobuf/descriptor.py", line 755, in __new__
    _message.Message._CheckCalledFromGeneratedFile()
AttributeError: module 'google._upb._message' has no attribute 'Message'. Did you mean: 'CMessage'?

When updating pychromecast>=12 the error goes away -- but I get another error when trying to cast:
Exception in thread Thread-4:
Traceback (most recent call last):
  File "/usr/lib64/python3.10/threading.py", line 1009, in _bootstrap_inner
    self.run()
  File "/home/xk/.local/share/virtualenvs/lb-f3y78r55/lib/python3.10/site-packages/pychromecast/socket_client.py", line 525, in run
    self.initialize_connection()
  File "/home/xk/.local/share/virtualenvs/lb-f3y78r55/lib/python3.10/site-packages/pychromecast/socket_client.py", line 295, in initialize_connection
    host, port, service_info = get_host_from_service(
  File "/home/xk/.local/share/virtualenvs/lb-f3y78r55/lib/python3.10/site-packages/pychromecast/dial.py", line 38, in get_host_from_service
    service_info = zconf.get_service_info("_googlecast._tcp.local.", service.data)
  File "/home/xk/.local/share/virtualenvs/lb-f3y78r55/lib/python3.10/site-packages/zeroconf/_core.py", line 540, in get_service_info
    if info.request(self, timeout, question_type):
  File "/home/xk/.local/share/virtualenvs/lb-f3y78r55/lib/python3.10/site-packages/zeroconf/_services/info.py", line 459, in request
    assert zc.loop is not None and zc.loop.is_running()
AssertionError

After downgrading to protobuf<4 everything works now

Hmm, does this issue happen when you use pipx? Or is this more of an issue with multiple dependencies in the same env?

Is that an issue? Does Catt not work with the old version?

This was fixed upstream ( thanks @chapmanjacobd ).
@skorokithakis Maybe we should pin protobuf until we get catt on a more recent version of pychromecast.

If this gets pulled in with the version of pychromecast we're using, yeah, I agree.

It does, I had issues with this earlier today. I'll make a PR (if you dont beat me to it :smiley: )

I think I just did!


@auth Per Field

Is your feature request related to a problem? Please describe.
Right now the @auth transformer can be applied to the model, but some use cases come up where you want only certain users to be able to access specific fields on a Type.
Describe the solution you'd like
Would like to be able to use the @auth transform on a per field basis
Describe alternatives you've considered
None, other than be implementing custom resolvers.
Additional context
None.

I think this is a good idea. Have you thought more about how you would like to see it implemented?
I see two main options:

Add arguments to @auth. Usage would look something like:

type Post @model @auth(allow: owner, fields: ["a", "b", "c"]) { ... }

Allow @auth to be specified on fields. Something like:

type User @model {
  ssn: String @auth(allow: owner)
}

Downsides of this approach are that you would have to define @auth per field that you want to protect. That being said you could always put @auth on the type with the most basic auth for all fields then fine tune using @auth on the field level.
Let me know what you think.

Hi @mikeparisstuff, thanks for your reply. I think I like #2 better. It is more declarative and explicit when looking at the schema from a top level. Agreed, you'd generally want the most basic auth at top level for the model and then fine-grained definitions on a per-field basis.

This would be absolutely amazing to have.

We (the AWS AppSync team) are currently looking for feedback on a server side solution for supporting field level auth and would love community feedback on the following RFC:
https://github.com/aws/aws-appsync-community/issues/1

For anyone looking (On Google, I found this first instead of the actual docs and only found them two days later):
This is supported now: https://docs.amplify.aws/cli/graphql-transformer/directives#field-level-authorization


[Iot agent http] It is not possible to publish data using a certificate issued by a trusted CA

I'm submitting a ...

[X] bug report
[ ] feature request
[ ] support request

What is the current behavior?

It is not possible to publish data using a certificate issued by a trusted CA. Socket is closed during TLS handshake.
I ran the openssl s_client -showcerts -connect command and saw the "Acceptable client certificate CA names" field. The added trusted CA was only listed when I ran against the mqtt port. See the attached file and search for "CN = My CA"
Commands:
openssl s_client -showcerts -connect <HOST>:8883
openssl s_client -showcerts -connect <HOST>:8080

https_trustedCA.txt

Please tell us about your environment:

Version: 0.7.1-rc.1
Environment: docker-compose
Operating system: Ubuntu 18.04

Other information (e.g. detailed explanation, stacktraces, related issues, suggestions how to fix, links for us to have context, eg. stackoverflow, gitter, etc)

Have the CAs been updated?

No. In http agent conteiner it is not updated. But we can see it on x509 api or at "Acceptable client certificate CA names" field of mqtt agent.

I updated the http-agent-cert-sidecar container with the following environment variables:

CERT_SC_CERTS_FILES_CABUNDLE: cabundle.crt
CERT_SC_CRON_CABUNDLE: "true"

Now the cabundle.crt is updated, but the client still can't connect. See the attached files.
http-agent.log
cabundle_test.txt

It is not necessary to define the variables CERT_SC_CERTS_FILES_CABUNDLE and CERT_SC_CRON_CABUNDLE

cabundle.crt has not been updated yet:

mosquitto_pub -h localhost -p 8883 -t admin:711ac5/attrs -m '{"temperature": 30}' --cafile caDojot.crt --cert device_cert_ext.crt --key device_cert_ext.key -d
Client mosqpub|24002-mcity75 sending CONNECT
Error: A TLS error occurred.

curl -X POST https://localhost:8080/http-agent/v1/incoming-messages -H 'Content-Type: application/json' -H "Authorization: ${JWT}" -d '{
      "data": {
        "temperature": 26
      }
  }'   --cacert caDojot.crt --cert device_cert_ext.crt --key device_cert_ext.key
curl: (52) Empty reply from server

cabundle.crt is updated:

publicação mqtt: OK

iotagent-mqtt-cert-sidecar_1  | 2022-01-10T16:00:00.450Z -- cert-sc-iotagent-mqtt:CertificatesMgmt -- debug: retrieveCRL: Old Fingerprint CRL 4E:1E:3B:0A:B8:B7:E8:A1:67:3F:DB:8E:54:76:08:4C:5E:D4:96:3D:2D:F4:F6:98:EF:E8:E3:FC:5B:4E:5B:B3
iotagent-mqtt-cert-sidecar_1  | 2022-01-10T16:00:00.451Z -- cert-sc-iotagent-mqtt:CertificatesMgmt -- debug: retrieveCRL: New Intention Fingerprint CRL 4E:1E:3B:0A:B8:B7:E8:A1:67:3F:DB:8E:54:76:08:4C:5E:D4:96:3D:2D:F4:F6:98:EF:E8:E3:FC:5B:4E:5B:B3
iotagent-mqtt-cert-sidecar_1  | 2022-01-10T16:00:00.451Z -- cert-sc-iotagent-mqtt:CertificatesMgmt -- debug: retrieveCRL: Is this the First Retrieve? false
iotagent-mqtt-cert-sidecar_1  | 2022-01-10T16:00:00.451Z -- cert-sc-iotagent-mqtt:CertificatesMgmt -- debug: retrieveCRL: Are the CRL differents? false
iotagent-mqtt-cert-sidecar_1  | 2022-01-10T16:00:00.451Z -- cert-sc-iotagent-mqtt:CertificatesMgmt -- info: retrieveCRL: CRL doesn't change
iotagent-mqtt-cert-sidecar_1  | 2022-01-10T16:00:00.451Z -- cert-sc-iotagent-mqtt:CertificatesMgmt -- info: retrieveCRL: ...ending retrieve CRL.
iotagent-mqtt-cert-sidecar_1  | 2022-01-10T16:00:00.454Z -- cert-sc-iotagent-mqtt:Utils -- debug: createFile: Creating a file=/vernemq/cert/cabundle.crt
iotagent-mqtt-cert-sidecar_1  | 2022-01-10T16:00:00.455Z -- cert-sc-iotagent-mqtt:Utils -- info: createFile: /vernemq/cert/cabundle.crt is created!
iotagent-mqtt-cert-sidecar_1  | 2022-01-10T16:00:00.455Z -- cert-sc-iotagent-mqtt:CertificatesMgmt -- info: retrieveCaBundle: ... ending retrieve a CA Certificate Bundle...

mosquitto_pub -h localhost -p 8883 -t admin:711ac5/attrs -m '{"temperature": 30}' --cafile caDojot.crt --cert device_cert_ext.crt --key device_cert_ext.key -d
Client mosqpub|5265-mcity75 sending CONNECT
Client mosqpub|5265-mcity75 received CONNACK
Client mosqpub|5265-mcity75 sending PUBLISH (d0, q0, r0, m1, 'admin:711ac5/attrs', ... (19 bytes))
Client mosqpub|5265-mcity75 sending DISCONNECT

publicação http: NOK

http-agent-cert-sidecar_1     | 2022-01-10T16:00:00.345Z -- cert-sc-http-agent:CertificatesMgmt -- debug: retrieveCRL: Old Fingerprint CRL 4E:1E:3B:0A:B8:B7:E8:A1:67:3F:DB:8E:54:76:08:4C:5E:D4:96:3D:2D:F4:F6:98:EF:E8:E3:FC:5B:4E:5B:B3
http-agent-cert-sidecar_1     | 2022-01-10T16:00:00.345Z -- cert-sc-http-agent:CertificatesMgmt -- debug: retrieveCRL: New Intention Fingerprint CRL 4E:1E:3B:0A:B8:B7:E8:A1:67:3F:DB:8E:54:76:08:4C:5E:D4:96:3D:2D:F4:F6:98:EF:E8:E3:FC:5B:4E:5B:B3
http-agent-cert-sidecar_1     | 2022-01-10T16:00:00.345Z -- cert-sc-http-agent:CertificatesMgmt -- debug: retrieveCRL: Is this the First Retrieve? false
http-agent-cert-sidecar_1     | 2022-01-10T16:00:00.345Z -- cert-sc-http-agent:CertificatesMgmt -- debug: retrieveCRL: Are the CRL differents? false
http-agent-cert-sidecar_1     | 2022-01-10T16:00:00.345Z -- cert-sc-http-agent:CertificatesMgmt -- info: retrieveCRL: CRL doesn't change
http-agent-cert-sidecar_1     | 2022-01-10T16:00:00.345Z -- cert-sc-http-agent:CertificatesMgmt -- info: retrieveCRL: ...ending retrieve CRL.
http-agent-cert-sidecar_1     | 2022-01-10T16:00:00.375Z -- cert-sc-http-agent:Utils -- debug: createFile: Creating a file=/certs/cabundle.crt
http-agent-cert-sidecar_1     | 2022-01-10T16:00:00.379Z -- cert-sc-http-agent:Utils -- info: createFile: /certs/cabundle.crt is created!
http-agent-cert-sidecar_1     | 2022-01-10T16:00:00.379Z -- cert-sc-http-agent:CertificatesMgmt -- info: retrieveCaBundle: ... ending retrieve a CA Certificate Bundle...
http-agent-cert-sidecar_1     | 2022-01-10T16:00:50.463Z -- cert-sc-http-agent:x509IdentityMgmt/Client -- debug: getCACert: Getting the CA certificate...

curl -X POST https://localhost:8080/http-agent/v1/incoming-messages -H 'Content-Type: application/json' -H "Authorization: ${JWT}" -d '{
      "data": {
        "temperature": 26
      }
  }'   --cacert caDojot.crt --cert device_cert_ext.crt --key device_cert_ext.key
curl: (52) Empty reply from server

Preconditions:

healthy services
Trusted CA registered
certificate signed by this trusted CA registered

certificado assinado pela Dojot: OK
mosquitto_pub -h localhost -p 8883 -t admin:2a1503/attrs --cafile caDojot.crt --cert admin_2a1503.crt --key admin_2a1503.key -m '{"temperature": 20}' -d
Client mosqpub|22188-mcity75 sending CONNECT
Client mosqpub|22188-mcity75 received CONNACK
Client mosqpub|22188-mcity75 sending PUBLISH (d0, q0, r0, m1, 'admin:2a1503/attrs', ... (19 bytes))
Client mosqpub|22188-mcity75 sending DISCONNECT
curl -X POST https://localhost:8080/http-agent/v1/incoming-messages -H 'Content-Type: application/json' -H "Authorization: ${JWT}" -d '{
"data": {
"temperature": 16
}
}'   --cacert caDojot.crt --cert admin_2a1503.crt --key admin_2a1503.key
certificado externo

MQTT: OK

mosquitto_pub -h localhost -p 8883 -t admin:711ac5/attrs -m '{"temperature": 51}' --cafile caDojot.crt --cert device_cert_ext.crt --key device_cert_ext.key -d
Client mosqpub|636-mcity75 sending CONNECT
Client mosqpub|636-mcity75 received CONNACK
Client mosqpub|636-mcity75 sending PUBLISH (d0, q0, r0, m1, 'admin:711ac5/attrs', ... (19 bytes))
Client mosqpub|636-mcity75 sending DISCONNECT

HTTP: NOK

curl -X POST https://localhost:8080/http-agent/v1/incoming-messages -H 'Content-Type: application/json' -H "Authorization: ${JWT}" -d '{
"data": {
"temperature": 15
}
}'   --cacert caDojot.crt --cert device_cert_ext.crt --key device_cert_ext.key
curl: (52) Empty reply from server
data is only sent after http agent service is restarted
mosquitto_pub -h localhost -p 8883 -t admin:711ac5/attrs -m '{"temperature": 41}' --cafile caDojot.crt --cert device_cert_ext.crt --key device_cert_ext.key -d
Client mosqpub|25885-mcity75 sending CONNECT
Client mosqpub|25885-mcity75 received CONNACK
Client mosqpub|25885-mcity75 sending PUBLISH (d0, q0, r0, m1, 'admin:711ac5/attrs', ... (19 bytes))
Client mosqpub|25885-mcity75 sending DISCONNECT
curl -X POST https://localhost:8080/http-agent/v1/incoming-messages -H 'Content-Type: application/json' -H "Authorization: ${JWT}" -d '{
"data": {
"temperature": 14
}
}'   --cacert caDojot.crt --cert device_cert_ext.crt --key device_cert_ext.key

Fixed by https://github.com/dojot/dojot/pull/2471.

cabundle.crt has not yet been updated

cabundle.crt is updated

http-agent_1                  | 2022-02-01T18:15:00.196Z -- http-agent:Server -- debug: File changed cabundle.crt (event: change)
http-agent_1                  | 2022-02-01T18:15:00.196Z -- http-agent:Server -- info: Reloading secure context...
http-agent_1                  | 2022-02-01T18:15:00.197Z -- http-agent:Server -- info: Reloading secure context succeeded!
http-agent_1                  | 2022-02-01T18:15:00.197Z -- http-agent:Server -- debug: File changed cabundle.crt (event: change)
http-agent_1                  | 2022-02-01T18:15:00.197Z -- http-agent:Server -- info: Reloading secure context...
http-agent_1                  | 2022-02-01T18:15:00.198Z -- http-agent:Server -- info: Reloading secure context succeeded!

http-agent-cert-sidecar_1     | 2022-02-01T18:15:00.016Z -- cert-sc-http-agent:CertificatesMgmt -- info: retrieveCaBundle: Retrieving  a CA Certificate Bundle...
http-agent-cert-sidecar_1     | 2022-02-01T18:15:00.016Z -- cert-sc-http-agent:x509IdentityMgmt/Client -- debug: getCABundle: Getting the trusted CA's certificate bundle...
http-agent-cert-sidecar_1     | 2022-02-01T18:15:00.195Z -- cert-sc-http-agent:Utils -- debug: createFile: Creating a file=/certs/cabundle.crt
http-agent-cert-sidecar_1     | 2022-02-01T18:15:00.196Z -- cert-sc-http-agent:Utils -- info: createFile: /certs/cabundle.crt is created!
http-agent-cert-sidecar_1     | 2022-02-01T18:15:00.196Z -- cert-sc-http-agent:CertificatesMgmt -- info: retrieveCaBundle: ... ending retrieve a CA Certificate Bundle...
http-agent-cert-sidecar_1     | 2022-02-01T18:15:08.988Z -- cert-sc-http-agent:x509IdentityMgmt/Client -- debug: getCACert: Getting the CA certificate...

/certs # ls -lrt
total 20
-rw-r--r--    1 root     root          1678 Feb  1 17:59 http-agent.key
-rw-r--r--    1 root     root          1918 Feb  1 17:59 http-agent.crt
-rw-r--r--    1 root     root          2109 Feb  1 17:59 ca.crt
-rw-r--r--    1 root     root          1079 Feb  1 17:59 ca.crl
-rw-r--r--    1 root     root          3652 Feb  1 18:15 cabundle.crt
/certs #

iotagent-mqtt-cert-sidecar_1  | 2022-02-01T18:15:00.016Z -- cert-sc-iotagent-mqtt:CertificatesMgmt -- info: retrieveCaBundle: Retrieving  a CA Certificate Bundle...
iotagent-mqtt-cert-sidecar_1  | 2022-02-01T18:15:00.195Z -- cert-sc-iotagent-mqtt:Utils -- info: createFile: /vernemq/cert/cabundle.crt is created!
iotagent-mqtt-cert-sidecar_1  | 2022-02-01T18:15:00.195Z -- cert-sc-iotagent-mqtt:CertificatesMgmt -- info: retrieveCaBundle: ... ending retrieve a CA Certificate Bundle...

bash-5.1$ cd cert/
bash-5.1$ ls -lrt
total 20
-rw-r--r--    1 root     root          1678 Feb  1 17:59 iotagent-mqtt.key
-rw-r--r--    1 root     root          1926 Feb  1 17:59 iotagent-mqtt.crt
-rw-r--r--    1 root     root          2109 Feb  1 17:59 ca.crt
-rw-r--r--    1 root     root          1079 Feb  1 17:59 ca.crl
-rw-r--r--    1 root     root          3652 Feb  1 18:15 cabundle.crt
bash-5.1$

after new cabundle updates data continues to be sent


Fix integer overflow in the LCM algorithm

Changing the operation order helps in preventing Int overflow when a * b exceeds the maximum value

Codecov Report

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

@@            Coverage Diff            @@
##             master       #1   +/-   ##
=========================================
  Coverage     60.62%   60.62%
  Complexity      278      278
=========================================
  Files            47       47
  Lines           838      838
  Branches        205      205
=========================================
  Hits            508      508
  Misses          259      259
  Partials         71       71

Impacted Files
Coverage Δ
Complexity Δ

src/main/io/uuddlrlrba/ktalgs/math/Gcd.kt
100% <100%> (ø)
0 <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 1c3cf7c...5d6031b. Read the comment docs.

Thanks!


update MLKEM code points

Fixes #556

Just curious, was there a specific reason to use decimal here, while all other codepoints are in hexadecimal?


test tofu

What kind of change does this PR introduce?
Testing OpenTofu implementation on existing configuration.
What is the current behaviour?
AWS configuration stack provisioned with Terraform on S3 backend.
Does this PR introduce a breaking change?
With any luck, no!
Signed-off-by: Rishav Dhar<EMAIL_ADDRESS>

-tf=plan -chdir=stacks/sample_instance -workspace=dev -var-file=env/dev.tfvars


Chips Support?

Will Chirps support be coming any time soon?
I really like your fireware version, but...  Without Chirps support, why use this?  Good thing I don't have too make any changes to memory channels, for now.  Programming direct in the radio is simly a pain.

uv-k5-chirp-driver
https://github.com/armel/uv-k5-chirp-driver

THANK YOU!
I should dug a bit deeper and after the first cup of coffee... Or, maybe the second.
Thanks again!

@N8ZC you mind closing this issue? Its resolved after all, isnt it.

sorry.  i'm a newby here.


Add support for UserActivityFeed api (aka Checkins).

Fix for issue #1. I have not added a command to the cli program.

Thanks for merging! And good idea using maxint for the MinMax: was thinking about how that could be solved, but all my "solutions" involved nil checks.

Yeah, I'm not completely thrilled with that solution, so I thought about using a "magic number" like -1 instead, but I think it is at least somewhat reasonable.


I am receiving this issue after attempting to run once I ran setup.exe

This application was configured to use a bundled Java Runtime Environment bu the runtime is missing or corrupted
Can anyone help me?

Because you mentioned "setup.exe", I think you are on Windows. Check if Java is available by opening a command prompt and typing java -version. If you don't have Java, you can get it from here. You can then run it with the following command:
java -jar FlagMaker.exe


Fix font/background contrast on website

Is your feature request related to a problem? Please describe.
Reading the text while scrolling through a bright background and bright text is a jarring experience which might also have implications on accessibility. (e.g. white font color on yellow)

Describe the solution you'd like
Consider using group colors with high contrast.
Describe alternatives you've considered
N/A
Additional context
N/A

Hi @GuessWhoSamFoo,
Thank you for your feedback!
Do you have any group colors that you want to suggest so we can analyze them internally?


run both MySQL and PostgreSQL in Continues Integration

Codecov Report

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

@@           Coverage Diff           @@
##             master     #8   +/-   ##
=======================================
  Coverage       100%   100%
  Complexity       38     38
=======================================
  Files            18     18
  Lines           152    150    -2
=======================================
- Hits            152    150    -2

Flag
Coverage Δ
Complexity Δ

#tests
100% <ø> (ø)
38 <ø> (ø)
:arrow_down:

Impacted Files
Coverage Δ
Complexity Δ

src/App/ConfigProvider.php
100% <0%> (ø)
3% <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 4707dd3...1f7706a. Read the comment docs.


Fix reporting spacing

Before:
$ detect-secrets audit --report .secrets.baseline

10 potential secrets in .secrets.baseline were reviewed. Found 1 live secret, 1 unaudited secret and 1 secret that was audited as real.

Failed Condition    Secret Type              Filename                                 Line
------------------  -----------------------  -------------------------------------  ------
Live                Hex High Entropy String  docs/scan.md                               49
Unaudited           Private Key              detect_secrets/plugins/private_key.py      51
Audited as real     Private Key              detect_secrets/plugins/private_key.py      50

Failed conditions:

        - Unaudited secrets were found

                Run detect-secrets audit .secrets.baseline, and audit all potential secrets.
        - Live secrets were found

                Revoke all live secrets and remove them from the codebase. Afterwards, run detect-secrets scan --update .secrets.baseline to re-scan.
        - Audited true secrets were found

                Remove secrets meeting this condition from the codebase, and run detect-secrets scan --update .secrets.baseline to re-scan.

For additional help, run detect-secrets audit --help.

After:

10 potential secrets in .secrets.baseline were reviewed. Found 1 live secret, 1 unaudited secret and 1 secret that was audited as real.

Failed Condition    Secret Type              Filename                                 Line
------------------  -----------------------  -------------------------------------  ------
Live                Hex High Entropy String  docs/scan.md                               49
Unaudited           Private Key              detect_secrets/plugins/private_key.py      51
Audited as real     Private Key              detect_secrets/plugins/private_key.py      50

Failed conditions:

        - Unaudited secrets were found

                Run detect-secrets audit .secrets.baseline, and audit all potential secrets.

        - Live secrets were found

                Revoke all live secrets and remove them from the codebase. Afterwards, run detect-secrets scan --update .secrets.baseline to re-scan.

        - Audited true secrets were found

                Remove secrets meeting this condition from the codebase, and run detect-secrets scan --update .secrets.baseline to re-scan.

For additional help, run detect-secrets audit --help.

We love spacing!

we sure do 😄


Publish

Docs Build status updates of commit 643efd6:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/concepts/add-in-development-best-practices.md
:white_check_mark:Succeeded

docs/concepts/correlated-objects-pattern.md
:white_check_mark:Succeeded

docs/concepts/resource-limits-and-performance-optimization.md
:white_check_mark:Succeeded

docs/develop/convert-javascript-to-typescript.md
:white_check_mark:Succeeded

docs/excel/excel-add-ins-error-handling.md
:white_check_mark:Succeeded

docs/images/outlook-android-create-online-meeting-load-expanded.png
:white_check_mark:Succeeded

docs/images/outlook-android-create-online-meeting-load.png
:white_check_mark:Succeeded

docs/images/outlook-android-create-online-meeting-off-expanded.png
:white_check_mark:Succeeded

docs/images/outlook-android-create-online-meeting-off.png
:white_check_mark:Succeeded

docs/images/outlook-android-create-online-meeting-on-expanded.png
:white_check_mark:Succeeded

docs/images/outlook-android-create-online-meeting-on.png
:white_check_mark:Succeeded

docs/images/outlook-android-join-online-meeting-view-expanded.png
:white_check_mark:Succeeded

docs/images/outlook-android-join-online-meeting-view.png
:white_check_mark:Succeeded

docs/outlook/add-mobile-support.md
:white_check_mark:Succeeded

docs/outlook/online-meeting.md
:white_check_mark:Succeeded

docs/reference/objectmodel/preview-requirement-set/outlook-requirement-set-preview.md
:white_check_mark:Succeeded

docs/toc.yml
:white_check_mark:Succeeded

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


Mobile Responsiveness - Register Campus Partner User

The registerCampusPartnerUser url needs to be updated for mobile responsiveness.
URL: http://uno-cpi-sta.herokuapp.com/registerCampusPartnerUser/
Issue: When this link is opened and rotated to a portrait view, the ‘Campus Partner’ box moves out of frame.

https://docs.google.com/spreadsheets/d/1DKL7oyKx3C1TmBHICYxmVeOT3JpfutbeUYKKHrOaVXE/edit#gid=6383154


Include stdout/stderr in failure messages for devicelab's tests

Sometimes some of these tests unexpectedly fail with a non-zero exit code. This ensures stdout/stderr is included in the test failure message when this happens so that we can track down the issue.
Before:
00:01 +0 -2: run.dart script accepts file paths [E]
  Expected: <0>
    Actual: <1>

  package:test              expect
  test/run_test.dart 33:7   main.<fn>.expectScriptResult
  ===== asynchronous gap ===========================
  dart:async                _AsyncAwaitCompleter.completeError
  test/run_test.dart        main.<fn>.expectScriptResult
  ===== asynchronous gap ===========================
  dart:async                _asyncThenWrapperHelper
  test/run_test.dart 28:89  main.<fn>.expectScriptResult
  test/run_test.dart 43:31  main.<fn>.<fn>

After:
00:01 +0 -2: run.dart script accepts file paths [E]
  Expected: <0>
    Actual: <1>
  [ stderr from test process ]

  [ end of stderr ]

  [ stdout from test process ]

      ═════════════════╡ ••• Running task "smoke_test_success" ••• ╞══════════════════

      Executing: /Users/dantup/Dev/Google/flutter/dev/devicelab/../../bin/cache/dart-sdk/bin/dart --enable-vm-service=0 --no-pause-isolates-on-exit bin/tasks/smoke_test_success.dart
      RegExp: pattern=Observatory listening on (\S+:(\d+)/\S*)$ flags=
      Instance of '_RegExpMatch'
      [smoke_test_success] [STDOUT] Observatory listening on http://<IP_ADDRESS>:65284/
      exitcode: 0
      Task result:
      {
        "success": false,
        "reason": "fake error"
      }

      ═════════════════╡ ••• Finished task "smoke_test_success" ••• ╞═════════════════

  [ end of stdout ]

  package:test              expect
  test/run_test.dart 33:7   main.<fn>.expectScriptResult
  ===== asynchronous gap ===========================
  dart:async                _AsyncAwaitCompleter.completeError
  test/run_test.dart        main.<fn>.expectScriptResult
  ===== asynchronous gap ===========================
  dart:async                _asyncThenWrapperHelper
  test/run_test.dart 28:89  main.<fn>.expectScriptResult
  test/run_test.dart 43:31  main.<fn>.<fn>

(Windows build failure is https://github.com/flutter/flutter/issues/18287 so I've kicked it off again..)

And this time it seems to have been terminated after an hour while running tests :/ Trying again!


Flutter test directly on your mobile phone

I would like to test my app developed in Flutter / Android Studios directly on my mobile phone. How do I save the new app on my phone?

@rodnic28
this issue doesn't seem to describe a bug or a feature request,
if you need assistance please follow the link at I want help writing my application in the new issue choice

@rodnic28
this issue doesn't seem to describe a bug or a feature request,
if you need assistance please follow the link at I want help writing my application in the new issue choice

Closing this as non-issue. @rodnic28 Your question is better suited for Stackover flow. Please follow the link mentioned above to get answer on your question.

Closing this as non-issue. @rodnic28 Your question is better suited for Stackover flow. Please follow the link mentioned above to get answer on your question.


[Bug]: GraphQL request redirected to favicon.ico

What happened?
Navigated to https://localhost:5001
Console:
info: Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker[3]
      Route matched with {action = "Find", controller = "Rest"}. Executing controller action with signature System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Mvc.IActionResult] Find(System.String) on controller Azure.DataApiBuilder.Service.Controllers.RestController (Azure.DataApiBuilder.Service).
fail: Azure.DataApiBuilder.Service.Controllers.RestController[0]
      02f4732e-ab4e-4f7b-acbb-d07f758a5384: GraphQL request redirected to favicon.ico.
fail: Azure.DataApiBuilder.Service.Controllers.RestController[0]
      02f4732e-ab4e-4f7b-acbb-d07f758a5384:    at Azure.DataApiBuilder.Service.Controllers.RestController.HandleOperation(String route, EntityActionOperation operationType)
info: Microsoft.AspNetCore.Mvc.Infrastructure.SystemTextJsonResultExecutor[1]
      Executing JsonResult, writing value of type '<>f__AnonymousType0`1[[<>f__AnonymousType1`3[[System.String, System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.String, System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Int32, System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], Azure.DataApiBuilder.Service, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null]]'.

Configuration:
{
  "$schema": "https://github.com/Azure/data-api-builder/releases/download/v0.8.52/dab.draft.schema.json",
  "data-source": {
    "database-type": "mssql",
    "connection-string": "@env('my-connection-string')"
  },
  "runtime": {
    "rest": {
      "enabled": true,
      "path": "/api"
    },
    "graphql": {
      "enabled": false
    },
    "host": {
      "cors": {
        "origins": [],
        "allow-credentials": false
      },
      "authentication": {
        "provider": "StaticWebApps"
      },
      "mode": "development"
    }
  },
  "entities": {
    "PageCustomers": {
      "source": {
        "object": "[dbo].[PageCustomers]",
        "type": "stored-procedure",
        "parameters": {
          "PageSize": "",
          "StartIndex": ""
        }
      },
      "graphql": {
        "enabled": false
      },
      "rest": {
        "enabled": true
      },
      "permissions": [
        {
          "role": "anonymous",
          "actions": [ "execute" ]
        }
      ]
    }
  }
}

SQL schema:
CREATE PROCEDURE PageCustomers
    @StartIndex INT = 1,
    @PageSize INT
AS
BEGIN
    SELECT [Id], [Name], [City], [State]
    FROM Customers
    ORDER BY Name
    OFFSET (@StartIndex - 1) * @PageSize ROWS
    FETCH NEXT @PageSize ROWS ONLY;
END

CREATE TABLE Customers
(
      Id INT PRIMARY KEY IDENTITY(1, 1)
    , Name NVARCHAR(50) NULL
    , City VARCHAR(MAX) NOT NULL
    , State VARCHAR(50) NOT NULL DEFAULT 'CO'
    , Location AS (City + ', ' + State) PERSISTED
    , SpecialRank DECIMAL(18, 2) NOT NULL DEFAULT 0
)

Version
Microsoft.DataApiBuilder 0.8.52+c69925060e1942d28515b9c4b89ea24832da0c7c
What database are you using?
Azure SQL
What hosting model are you using?
Local (including CLI)
Which API approach are you accessing DAB through?
REST
Relevant log output
C:\Temp\dab>dab start
Information: Microsoft.DataApiBuilder 0.8.52+c69925060e1942d28515b9c4b89ea24832da0c7c
Information: Config not provided. Trying to get default config based on DAB_ENVIRONMENT...
Information: Environment variable DAB_ENVIRONMENT is (null)
Loading config file from dab-config.json.
Information: Loaded config file: dab-config.json
Information: Setting default minimum LogLevel: Debug for Development mode.
Starting the runtime engine...
Loading config file from dab-config.json.
info: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[63]
      User profile is available. Using 'C:\Users\jerry\AppData\Local\ASP.NET\DataProtection-Keys' as key repository and Windows DPAPI to encrypt keys at rest.
info: Azure.DataApiBuilder.Core.Services.ISqlMetadataProvider[0]
      PageCustomers path: /api/PageCustomers
dbug: Azure.DataApiBuilder.Core.Resolvers.IQueryExecutor[0]
      Executing query:
SELECT name as result_field_name, TYPE_NAME(system_type_id) as result_type, is_nullable FROM sys.dm_exec_describe_first_result_set_for_object (OBJECT_ID('dbo.PageCustomers'), 0) WHERE is_hidden is not NULL AND is_hidden = 0
dbug: Azure.DataApiBuilder.Core.Services.ISqlMetadataProvider[0]
      Logging primary key information for entity: PageCustomers.
info: Azure.DataApiBuilder.Core.Configurations.RuntimeConfigValidator[0]
      Validating Relationship Section in Config...
info: Azure.DataApiBuilder.Service.Startup[0]
      Successfully completed runtime initialization.
info: Microsoft.Hosting.Lifetime[14]
      Now listening on: http://localhost:5000
info: Microsoft.Hosting.Lifetime[14]
      Now listening on: https://localhost:5001
info: Microsoft.Hosting.Lifetime[0]
      Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
      Hosting environment: Production
info: Microsoft.Hosting.Lifetime[0]
      Content root path: C:\Temp\dab
info: Microsoft.AspNetCore.Hosting.Diagnostics[1]
      Request starting HTTP/2 GET https://localhost:5001/ - -
dbug: Azure.DataApiBuilder.Core.AuthenticationHelpers.ClientRoleHeaderAuthenticationMiddleware[0]
      4dd1aa81-0cfa-42b6-bd61-b3b234ad3700: Request authentication state: Anonymous.
dbug: Azure.DataApiBuilder.Core.AuthenticationHelpers.ClientRoleHeaderAuthenticationMiddleware[0]
      4dd1aa81-0cfa-42b6-bd61-b3b234ad3700: The request will be executed in the context of Anonymous role
info: Microsoft.AspNetCore.Routing.EndpointMiddleware[0]
      Executing endpoint 'Health checks'
info: Microsoft.AspNetCore.Routing.EndpointMiddleware[1]
      Executed endpoint 'Health checks'
info: Microsoft.AspNetCore.Hosting.Diagnostics[2]
      Request finished HTTP/2 GET https://localhost:5001/ - - - 200 - text/plain 23.9130ms
info: Microsoft.AspNetCore.Hosting.Diagnostics[1]
      Request starting HTTP/2 GET https://localhost:5001/favicon.ico - -
dbug: Azure.DataApiBuilder.Core.AuthenticationHelpers.ClientRoleHeaderAuthenticationMiddleware[0]
      b388e75c-ea75-41c8-8d20-e64151c27bcc: Request authentication state: Anonymous.
info: Microsoft.AspNetCore.Routing.EndpointMiddleware[0]
      Executing endpoint 'Azure.DataApiBuilder.Service.Controllers.RestController.Find (Azure.DataApiBuilder.Service)'
dbug: Azure.DataApiBuilder.Core.AuthenticationHelpers.ClientRoleHeaderAuthenticationMiddleware[0]
      b388e75c-ea75-41c8-8d20-e64151c27bcc: The request will be executed in the context of Anonymous role
info: Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker[3]
      Route matched with {action = "Find", controller = "Rest"}. Executing controller action with signature System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Mvc.IActionResult] Find(System.String) on controller Azure.DataApiBuilder.Service.Controllers.RestController (Azure.DataApiBuilder.Service).
fail: Azure.DataApiBuilder.Service.Controllers.RestController[0]
      b388e75c-ea75-41c8-8d20-e64151c27bcc: GraphQL request redirected to favicon.ico.
fail: Azure.DataApiBuilder.Service.Controllers.RestController[0]
      b388e75c-ea75-41c8-8d20-e64151c27bcc:    at Azure.DataApiBuilder.Service.Controllers.RestController.HandleOperation(String route, EntityActionOperation operationType)
info: Microsoft.AspNetCore.Mvc.Infrastructure.SystemTextJsonResultExecutor[1]
      Executing JsonResult, writing value of type '<>f__AnonymousType0`1[[<>f__AnonymousType1`3[[System.String, System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.String, System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Int32, System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], Azure.DataApiBuilder.Service, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null]]'.
info: Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker[2]
      Executed action Azure.DataApiBuilder.Service.Controllers.RestController.Find (Azure.DataApiBuilder.Service) in 20.2691ms
info: Microsoft.AspNetCore.Routing.EndpointMiddleware[1]
      Executed endpoint 'Azure.DataApiBuilder.Service.Controllers.RestController.Find (Azure.DataApiBuilder.Service)'
info: Microsoft.AspNetCore.Hosting.Diagnostics[2]
      Request finished HTTP/2 GET https://localhost:5001/favicon.ico - - - 400 - application/json;+charset=utf-8 39.3177ms
info: Microsoft.Hosting.Lifetime[0]
      Application is shutting down...

Code of Conduct

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

There are two parts to this bug:

Why doesn't it work?
This error message is useless to the developer.

This error is emitted into the logs because a browser attempts to load a favicon.ico file to display in the browser tab. Since DAB is an API endpoint, this type of request isn't honored. As an API, DAB would respond to direct requests for resources instead of the many requests a browser may try to send. Here is a screenshot of loading https://localhost:5001 in the browser:

Agreed. We probably shouldn't return this error or should offer a way to mitigate.

Closing criteria:

Change how DAB alerts/logs to failed favicon requests by disabling ASP.NET logs by default in appsettings.json in favor of DAB only displaying DAB specific logs.
DAB should not log favicon.ico requests as failures that imply something is wrong with DAB normal operation.
DAB should return 404 Not Found and not 400 Bad request for favicon requests.

Context:
The following events are logged to the console for every favicon.ico request:

fail: Azure.DataApiBuilder.Service.Controllers.RestController[0]
b388e75c-ea75-41c8-8d20-e64151c27bcc: GraphQL request redirected to favicon.ico.
fail: Azure.DataApiBuilder.Service.Controllers.RestController[0]
b388e75c-ea75-41c8-8d20-e64151c27bcc:    at Azure.DataApiBuilder.Service.Controllers.RestController.HandleOperation(String route, EntityActionOperation operationType)

A favicon request is a valid and expected requests from a web browser. The DAB API endpoint has no file to return because it is not meant to be browser/user facing (no GUI). DAB is really only meant to be accessed directly within a browser when a developer is actively building a DAB solution.
Production deployed apps will use DAB behind the scenes with HTTP requests to the exposed API endpoints.

Moving to 1.1rc to potentially clean up.


Generate Kustomization file in /deploy

Feature Request
First of all, thanks for your awesome work. :+1:
This is the first time I get in touch with operator-sdk, so if there is a better way let me know.
Instead of generating deploy yaml files with lots of placeholder like REPLACE_* I would love to see one env file (defining all required fields) which will be used by kustomize to generate a ConfigMap which is used as a variable reference. These variables (e.g. $(SDK_NAMESPACE)) are used instead of placeholders.
And as kustomize is already included within kubectl this would be really convenient.

My two cents, this is something kubebuilder is already using, and I think it could be pretty useful to incorporate into the SDK.
One minor concern is that we would need to add a new dependency on kustomize, bump our kubectl dependency to 1.14.x, or vendor kustomize into the SDK or SDK projects.
If other maintainers agree that this is a good idea, the next step would be to draft a proposal to describe the details of the design and implementation. We would also need to come up with a plan for how to migrate existing projects to use the the kustomize functionality.
@hasbro17 @shawn-hurley @estroz @LiliC @AlexNPavel @theishshah, thoughts?

@joelanford agreed it would be something nice to have, especially since kustomize is already part of kubectl! My only fear is when do we stop, which ways do we expect and which we reject. We have OLM for obvious reasons, and yaml as that is the default option. But if someone wants jssonet do we want to support that?
@fentas would this be something you would be interested in working, no worries if not. If yes, we have a guide on how to submit a new proposal -> https://github.com/operator-framework/operator-sdk/tree/master/doc/proposals

Would love to but atm I am quite busy creating an operator. :+1:

/remove-lifecycle stale

/lifecycle frozen

This issue should be resolved once the SDK integrates Kubebuilder and we switch over to using Kustomize per the Kubebuilder workflow for updating manifest configurations.
See: https://github.com/operator-framework/operator-sdk/blob/master/doc/proposals/kubebuilder-integration.md

After 0.19 SDK release, the new projects created with the tool will be configured via kustomize be the default. In this way, I am closing this one as sorted out.


PageTransitionSwitcher from animation package adds a grey background

I'm running into this weird bug that I've confirmed now.
When you use the PageTransitionSwitcher in any widget it adds a light grey background into that view. What is causing that? I'd like to remove it if possible. It's making any transition with a different background color than light grey look out of place to me, I'd like only my UI to fade in and set a "global" background color.
Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  // Register all the models and services before the app starts
  await setupLocator();
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'My App',
      theme: ThemeData(
        primaryColor: Color.fromARGB(255, 9, 202, 172),
      ),
      home: Expanded(
           child:  PageTransitionSwitcher(
                          duration: const Duration(milliseconds: 200),
                          transitionBuilder: (
                            Widget child,
                            Animation<double> animation,
                            Animation<double> secondaryAnimation,
                          ) {
                  return SharedAxisTransition(
                       transitionType: SharedAxisTransitionType.vertical,
                       animation: animation,
                       secondaryAnimation: secondaryAnimation,
                       child: child,
                      );
                    },
                   child: Center(),
              ),
    ),
    );
  }
}

Found it. The transitions use Theme.of(context).canvasColor . I set that to transparent in my main theme and the grey block went away


Inquiry Regarding the Tokenize Function

I have a question regarding the tokenize_fn function. I am curious about the choice to use tokenizer.eos_token.join(example["text"]). Does it imply the concatenation of all rows within each batch?
def tokenize_fn(tokenizer, example):
    context_length = tokenizer.model_max_length
    outputs = tokenizer(
        tokenizer.eos_token.join(example["text"]),
        truncation=False,
        return_tensors="pt",
        pad_to_multiple_of=context_length,
        padding=True,
    )
    return {"input_ids": outputs["input_ids"].view(-1, context_length)}

Thank you for your assistance

I had the same question

Yes, it is for concatenation. For example, if for one row of text is less than the context length, it will concatenate another row until the context length. This will ensure that all training batches reach the context length.
We refer this for this setting.
https://github.com/epfml/landmark-attention/blob/111ee30e693ccc23a12b57c1d41f8ae2cc5b4867/llama/train.py#L102

I will close this issue as it has been inactivate for several days. Please feel free to reopen it if there are any others to discuss.


Add support for checking insecure SSM parameters

This PR resolves #2761 by adding support for checking insecure SSM parameters.

@kapilt Fair enough  . . . I wanted to go through the process of a filter just to see how it worked, but I'll remove it. Thanks!

@kapilt All fixed


WIP: new bench Kafka

Kafka

It is running the simple_produce_bench for now, which is one of the default workloads.

TODO

[ ] Data calibration. Kafka can be used in lots of ways. Overall, it is a distributed streaming platform. Details in here

Merged into dev-chopin


fix11068 InputDecoration 'errorText' custom builder

Me, Daniele Cambi and Cosimo Tassone made this PR that allows to customize the errorText of an InputDecoration with an errorWidgetBuilder function that takes in input the errorText String that cames from InputDecoration, when it is not null, and allows to build a custom Widget for the error.
The default behavior doesn't change if the errorWidgetBuilder is not provided.
Without error widget builder:

With custom errorWidgetBuilder:

List which issues are fixed by this PR. You must list at least one issue.
Fixes #11068
Pre-launch Checklist

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] I read the Tree Hygiene wiki page, which explains my responsibilities.
[x] I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[x] I signed the CLA.
[x] I listed at least one issue that this PR fixes in the description above.
[x] I updated/added relevant documentation (doc comments with ///).
[ ] I added new tests to check the change I am making, or this PR is test-exempt.
[x] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel on Discord.

Hi @justinmc, thanks for reviewing the code.

Yes, we might have, is there a quick way to roll back?

Sure, we'll figure what exactly should be tested, I'm not sure we can have widget tests within flutter itself, right?

We'll have a look into it, I remember running into issues when trying to go that route, that's why we settled for a builder in the end.

I think it does make sense to have it for helperText as well, we'll have a look into it.

@justinmc upon further analysis on the current error implementation on both TextField and TextFormField, which both use InputDecoration, we consider the builder approach the better one as it doesn't brake the form validation logic.
We're working on adding tests and helperWidgetBuilder

Specifying an errorWidget  instead of errorText seems sufficient, since the developer needs to specify one or the other for InputDecoration and if we allow an errorWidget to be specified, some apps may choose to just show an icon (or whatever) rather than a text message.
This PR reformats InputDecorator.dart; it should not. Please only change as much of the existing code as is necessary to make your change.
Not also: tests for this new feature will be needed.

+1 to the above.  I'm not sure if there's an easy way to rollback the formatter changes or not.  For tests, take a look at input_decorator_test.dart or maybe text_field_test.dart.

@dancamdev @Michele-x98 Are you guys still available to finish this PR?  Let me know if there's anything blocking you.
It looks like there is a merge conflict, but it's probably just due to the formatting changes in input_decorator.dart.

@xvrh That's the point, you can't. Now with the simple errorWidget you can just add something under the field and it is permanently showed, without the builder you don't have access to the error message string if that is not null. In the previous version that i proposed, the builder method allow to take the message error in input and handle it as you want, but as @justinmc  and @HansMuller said, that logic works only if the widget is "linked" to the errorText, and if the errorText is Null, the widget is never displayed.

@Michele-x98

that logic works only if the widget is "linked" to the errorText, and if the errorText is Null, the widget is never displayed.

Unless I'm missing something, this is the behaviour we want.
And if not, then we can also update the builder to be Widget? Function(String? errorMessage) errorBuilder. So the user of the API can really decide what to do with and without an error message.

@xvrh I follow this logic above:

Specifying an errorWidget instead of errorText seems sufficient, since the developer needs to specify one or the other for InputDecoration and if we allow an errorWidget to be specified, some apps may choose to just show an icon (or whatever) rather than a text message.

But i think that it also works as you propose as well, maybe the function could be Nullable and the return type Widget not?
Widget Function(String? errorMessage)? errorBuilder
This make more sense to me.
Let me know if it's ok

any update on this?

I'm closing this due to lack of activity. If you decide to resume working on it, please reopen the PR.


Are there release notes?

Hi,
I just got a notification in intellij that I can update the plugin but I can't find any release notes to explain what this upgrade offers. I tried looking in the intellij popup, the intellij plugin repository and here.
If there aren't any I strongly recommend adding it for every release.

There are release notes, but we never got around to filtering them for open-source users.
I've added them for the next release.


fix: Fix some callbacks not fired

Fix onFirstLocalVideoFramePublished not fired, the one with connection is fired by Native SDK.
Fix onLocalVideoStats not fired, the one with connection is fired by Native SDK.

Fix https://github.com/AgoraIO-Extensions/Agora-Flutter-SDK/issues/1988