Quirk with Rails 5.2 Encrypted Secrets and Slack Client IDs for OAuth

I’m building a Slack App on top of ZapCircle, so that you can leave status updates from Slack, and also publish them directly from Slack. Part of this is managing flow for OAuth, so you can add the ZapCircle app to your Slack team, and there is a connection.

OAuth requires a client ID and client secret – from Slack, my client id happened to be all numbers with a period in the middle. I didn’t happen to notice this when pasting it into the Rails 5.2 encrypted secrets file, which is YAML.

Unfortunately, YAML coerced that client ID into a float type, and then rounded off after the significant digit. That number didn’t match anything Slack had, so I had to debug it.

The simple fix was to wrap the Slack client ID in double quotes in my YAML file.

I don’t know if this is a common bug, but hopefully this saves you (or future me) a few minutes of debugging in the future!


ZapCircle: Status Updates for Remote Teams

I work with a lot of different companies and teams as a remote software developer – sometimes it’s just a handful of us, all in different cities, sometimes everyone is in Austin, but never goes into the office. I work remotely when I write code, and have done so for about six years now.

TLDR: My new SaaS web application is ZapCircle – go ahead and get started now!

One of the common threads between all of these different teams is communication about the different projects everyone is working on. There are many different ways to solve this problem – daily in-person standup meetings, conference calls, emails out to the whole group at the end of the day – none of which I’m personally thrilled about.

Sample Status Update for ZapCircle.

I decided to try and focus on building a software tool for status updates for teams. For those of you coming from a Unix background, it’s basically the equivalent of the .plan file. Coming from an agile background, this is a replacement for a standup meeting. There are definitely other pieces of software you can use to solve this problem – Slack is probably the most obvious – but I wanted to build something for just this need.

To that end, I focused on small teams (probably up to ten people), and two different areas – status updates, and important project dates.

It’s easy to get started:

  • Create an account, and name your team
  • Invite your team members
  • Setup the important project dates (due dates, reviews, trips)
  • Write a status update when you’ve accomplished something!

You can also change the questions ZapCircle uses for your team, if the standard ones don’t work.

It’s been a long development process so far, but I’ve taken all of the “must haves” for a 1.0 release out of the Trello backlog, and moved them to Done, so I’m happy to launch the project today!