About

Justin Poehnelt

I'm a Developer Relations Engineer at Google, focusing on Google Workspace. My work involves creating tools and supporting the open-source community.

Before Google, I had the opportunity to work with geospatial data at Descartes Labs and the US Geological Survey.

When I'm not coding, I'm usually running long distances in the mountains of Colorado.

Topics

Lead Story

Resolving Google Chat User IDs to Emails: The Least Privilege Way

google chat, google workspace, service account, admin sdk, people api, service account impersonation, custom role, least privilege, directory api, domain wide delegation

A secure strategy to resolve Google Chat User IDs to email addresses without using Domain-Wide Delegation. By combining Direct Role Assignment with Service Account Impersonation, you can maintain Least Privilege security.

Exploring Apps Script CacheService Limits

A deep dive into Apps Script CacheService limits. I verify key/value constraints and uncover the undocumented FIFO batch eviction policy at the 1000-item limit.

Google Drive Picker TypeScript - Types Updated

Last week I submitted a pull request to the DefinitelyTyped repository for the Google Drive Picker API. Not a big deal in itself, but these types are generated from the same source as the Google Drive Picker reference documentation and should be more correct and consistent than the community types that were previously in the DefinitelyTyped repository.

Drive File Get Blob and Scopes in Google Apps Script

Working with binary files like PDFs or images in Google Drive with Google Apps Script can be a bit tricky due to scopes. Here is a comparison of the three main ways to get the Blob of a file in Google Drive and the scopes required.

Race Results

TrailRun 163.50 km 5553 m
TrailRun 20.15 km 712 m
TrailRun 173.22 km 6428 m
TrailRun 147.63 km 9507 m
TrailRun 161.39 km 6705 m
TrailRun 99.78 km 1693 m
TrailRun 391.21 km 9436 m
Run 77.68 km 1427 m
Run 50.99 km 1132 m
Run 18.64 km 759 m

Running Tracker (km)

Year-to-Date Distance: 2842.2 km

Activities

TrailRun 14.50 km 432 m
TrailRun 10.73 km 306 m
TrailRun 11.46 km 327 m
TrailRun 14.51 km 419 m
TrailRun 8.06 km 164 m