Barista (Java Chef Client)

Daniel DeGroff

java native bindings

At Inversoft, we like open source and we like Java.

When we built out our platform to support our new cloud product offerings we started using Chef to help us manage our deployment strategy.

While a well documented and easy to use RESTful API over HTTP is great, that same API provided with native bindings is awesome. Native APIs save developers a lot of hours of reading through documentation and building their own domain object and REST bindings. We use a number of native APIs for services like Stripe and Intuit and provide a native bindings for Passport in Java, PHP, JavaScript, Python and C#.

When we began working on some new backend features for our cloud product offerings, I set out to find a Chef Client written in Java in order to simplify our integration.

As luck wouldn’t have it (yes you read that correctly), I was unable to find a Java library that really made my life easier. There are other Chef libraries out there, but all of them were very lightweight wrappers around HTTP calls. Some went so far as to return the JSON response from the Chef server as a String rather than right POJO.

Rather than limping along with a library that was essentially a glorified URLConnection, I did what any software engineer would do, I wrote it myself.

Behold Barista! A native binding for Chef that provides rich domain objects and REST bindings to work with a Chef server.

https://github.com/inversoft/barista

Building a properly authenticated HTTP request to Chef is not great fun, so I don’t suggest you do it yourself unless you enjoy the pain. We’ve done the heavy lifting for you and we did this without using any third party encryption libraries. This means you can pick up this library without dragging along any unnecessary dependencies like Bouncycastle.

Continue reading

Tags:
API Chef java

HackedThat: Minding the backdoor

Daniel DeGroff

Hack This

Earlier this summer, we published a comprehensive Guide to User Data Security detailing steps to harden a server and secure applications. We provisioned a couple Linode servers and hardened them to the guides specifications to stand by our claim. We shared the IP addresses and proposed a challenge. 

Github: https://github.com/inversoft/2016-security-scripts

Hack This: https://hackthis.inversoft.com

We dared anyone to hack our database. To add incentive, we offered a fully loaded MacBook Pro as a reward. 

Continue reading

Tags:
None

Like your avatar? You can keep it.

Daniel DeGroff

keep_avatar

Did you know that you can now bring your avatar with you when you log into Passport?

Gravatar provides users with a globally recognized avatar. If you already have a Gravatar account then you need not do anything else, we’ve taken care of everything. For those without a Gravatar account you’ll still see a randomly generated Gravatar. Everyone wins.

Continue reading

Got Users? How About 100 Million of Them?

Daniel DeGroff

got users passport database

Passport User Registration Hits 100,000,000 in Load Test

Did you know that each time you log into Facebook, check your email or fire up Candy Crush, a software engineer has thought about user registration and authentication. Hopefully she has thought a lot about it. For example, what happens if Call of Duty goes offline for maintenance and then six million users try to log back in at the same time? It could take days for users to get back online if peak loads aren’t planned for.

Our CleanSpeak product filters billions of messages in any given month, so when we started developing Passport a few years ago we spent a lot of time thinking about scale and performance.

Continue reading

Gather Forum Software Update: Maintenance Mode

Daniel DeGroff

Gather Maintenance ModeWith the release of Gather 0.1.7 we have focused on a few areas to reduce friction during installation.

Maintenance Mode

We are introducing the concept of Maintenance Mode in Gather. During startup Gather will enter Maintenance Mode when database configuration is necessary.

For example, as long as you have a MySQL or PostgreSQL database available, the database portion of the installation can be skipped. Upon startup Gather will enter Maintenance Mode and will alert the user that additional configuration needs to be performed. By providing Gather with the super user credentials to your database it is able to create the necessary database schema and bootstrap itself.

Continue reading