Skip to content

Instantly share code, notes, and snippets.

@judell
judell / callListAnything.go
Created May 5, 2024 00:40
callListAnything.go
func listDevices(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) {
var visitor ListPredicate = func(client *kolide.Client, cursor string, limit int32, searches ...kolide.Search) (interface{}, error) {
return client.GetDevices(cursor, limit, searches...)
}
return listAnything(ctx, d, h, "kolide_device.listDevices", visitor, "Devices")
}
func listAdminUsers(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) {
@judell
judell / listAnything.go
Last active May 5, 2024 00:39
kolide.listAnything
func listAnything(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData, callee string, visitor ListPredicate, target string) (interface{}, error) {
// Create a slice to hold search queries
searches, err := query(ctx, d)
if err != nil {
plugin.Logger(ctx).Error(callee, "qualifier_operator_error", err)
return nil, err
}
// Establish connection to Kolide client
client, err := connect(ctx, d)
@judell
judell / jsonb-cte-tutor.md
Last active April 19, 2024 13:57
jsonb-cte-tutor

You are a SQL tutor who helps people write Steampipe queries that involve JSON columns. Such queries can be hard to understand, so we want to provide queries in two forms: concise and expanded.

For example, we want a query to count my gists by language.

Here is the schema for the github_my_gist table

ctx	jsonb		Steampipe context in JSON form, e.g. connection_name.
comments	bigint		The number of comments for the gist.
created_at	timestamp with time zone		The timestamp when the gist was created.
@judell
judell / press-release-coach.md
Last active March 17, 2024 16:56
press-release-coach

You are a writing coach who helps companies improve their business communication.

I'll show you an example of a successful intervention you've made to improve this poorly-written press release.

Remcom Broadens Capabilities Of Schematic Editor To Support Diplex Matched Antennas In XFdtd EM Simulation Software

Remcom announces expanded capabilities within its schematic editor in the latest release of XFdtd 3D EM Simulation Software, including support for diplex matched antennas and new efficiencies aimed at streamlining antenna design workflows and shortening design cycles.

XFdtd' schematic editor is a novel electromagnetic simulation tool that combines matching network analysis with full-wave results, making it ideal for complex antenna design applications involving multi-state and multi-port aperture or impedance tuners and corporate feed networks with digital phase shifters.

@judell
judell / workflow-test-setup.md
Created February 2, 2024 17:50
workflow-test-setup

Today I learned that * * * * * and select random() are your friends when starting a Flowpipe mod that uses a query trigger.

* * * * * to iterate as fast as possible: every minute

select random() to ensure there is always fresh data, otherwise nothing will happen

If you're trying to debug something downstream, like sending email, this ensures you'll actually test the downstream thing every time.

Here's the foundation for a mod that will check for new access keys and alert when a new one is found. I used the test pipeline as an initial check, then switched to the email pipeline in order to debug separate issues with that (it's always about auth, right?) once I knew the pipeline would receive a message every minute.

@judell
judell / changelog-summarizer-prompt.md
Created August 20, 2023 18:35
changelog summarizer prompt

Please write a Python-based changelog summarizer for a GitHub repo. Here is an example of the changelog format we are targeting.

data = """
## v0.115.0 [2023-08-08]

_Enhancements_

- Updated the `Makefile` to build plugin in `STEAMPIPE_INSTALL_DIR` if set. ([#1857](https://github.com/turbot/steampipe-plugin-aws/pull/1857)) (Thanks [@pdecat](https://github.com/pdecat) for the contribution!)
- Added column `offering_class` to `aws_pricing_product` table ([#1863](https://github.com/turbot/steampipe-plugin-aws/pull/1863)) (Thanks [@rasta-rocket](https://github.com/rasta-rocket) for the contribution!)
@judell
judell / changelog.py
Last active August 24, 2023 23:36
changelog summarizer
import argparse, os, re, requests, sys
import pandas as pd
import plotly.graph_objects as go
import mpld3
from datetime import datetime, timedelta
from enum import Enum
IS_TEST_MODE = False
IS_NEW_MODE = False
DATAFILE = 'data.csv'
@judell
judell / cross-join-lateral-example.md
Last active July 16, 2023 23:01
cross join lateral example

Here's part of a query to list, combine, and contextualize IP addresses from various parts of AWS.

ec2 as (
    -- Check ec2 so we can provide better details
    SELECT v.ip as ip,
        'ec2' as source,
        title as title,
        instance_id as id,
        region as region,
@judell
judell / oss-spotlight-v2.md
Last active June 15, 2023 21:33
oss-spotlight-v2

Title: "Steampipe: The Swiss army knife for platform engineers"

Platform engineers need a flexible, scalable, and efficient way to query cloud APIS and extract actionable insights from the data. Steampipe, an open-source SQL-oriented tool, is becoming their Swiss army knife.

The AWS pros at CMD Solutions Australia use Steampipe to query CrowdStrike for vulnerabilities, then join results with Salesforce data to map from a vulnerability to a device to a person. They've also built custom benchmarks to validate that organizational email domains are configured for DMARC, and to check for inactive Okta accounts.

Claranet France, a managed IT services firm, used Steampipe to revamp their in-house CMDB. The pre-existing Python scripts ran slowly, and it was hard to align results to a common format. Steampipe's highly-concurrent architecture sped up data acquisition, a