Weeknotes 2022-01-24
,For my podcast hosting SaaS. I need a way to deploy a new podcast. All the Unix user, database, and config file creation can be handled via fastdeploy, but there's one pretty scary part: Someone on the internet types stuff like a domain name into a web form and I have to use this user input in deployment scripts running as root on my infrastructure. For example, let's assume I'll just start an ansible playbook and pass this user input as `ansible-playbook podcast.yml --extra-vars "fqdn=foobar.example.com"` in a shell command line. It's easy to see how this might go wrong. After first using a temporary file I found out how to use sudo with environment variables. So I'm now using an environment variable to pass the user input and then validating it in the deploy script using pydantic. The start-deployment endpoint now takes an additional optional DeploymentContext which gets passed like this to the script starting the deployment process. Maybe it's not perfect but safe enough for me to stop worrying :) (probably famous last words).
Articles
- JavaScript date objects | Oh yes, I also stumbled across this when I was trying to sort steps in fastdeploy by DateTime, but I didn't take the time to write up the lessons learned, thanks a lot for that
- cattrs I: un/structuring speed
Useful Websites
Books
Software
Podcasts
- (108) Letzte Ausfahrt Omikron? (Coronavirus-Update)
- Wer ist hier sensibel? (Was denkst du denn?)
- WR1319 Realität 2022… die überleben wollen (WRINT: Wer redet ist nicht tot)
- Rettend? - Technik und Wissenschaft (Das philosophische Radio)
- Episode #266: Python has a glossary? (Python Bytes)
- Django at UC Berkeley - Mohammed Shamma and Matthew Newton (Django Chat)
- Episode 495: Vaughn Vernon on Strategic Monoliths and Microservices (Software Engineering Radio)
- Title Ilya Grigorik // Principal Engineer at Shopify Episode Number Episode #43 Episode #43 Ilya Grigorik // Principal Engineer at Shopify (ALPHALIST CTO PODCAST)
- WR1323 Die teilweise deprimierende Sphäre des wissenschaftlichen Humors (WRINT: Wer redet ist nicht tot)
- Episode 40: Resolve (HOTEL BAR SESSIONS)
- #258 – Yann LeCun: Dark Matter of Intelligence and Self-Supervised Learning (Lex Fridman Podcast)