Skip to content

Instantly share code, notes, and snippets.

@salrashid123
salrashid123 / decrypt.go
Last active July 18, 2022 14:21
Decrypt encrypted data for BigQuery SQL column-level encryption https://blog.salrashid.dev/articles/2022/bq_kms/
package main
import (
"bytes"
"encoding/base64"
"flag"
"fmt"
"github.com/google/tink/go/aead"
@salrashid123
salrashid123 / main.py
Created June 22, 2022 11:15
google healthcare api client using discovery and authorized session (https://cloud.google.com/healthcare-api/docs/how-tos/nlp)
import httplib2
import google.auth
from apiclient.discovery import build
from oauth2client.service_account import ServiceAccountCredentials
from oauth2client.client import GoogleCredentials
from google.api_core import operations_v1
from google.api_core import operation
from google.auth.transport.requests import AuthorizedSession
project_id = 'yourproject'
@salrashid123
salrashid123 / hmacsha.go
Last active June 21, 2022 17:36
hmac signedURL for GCS
package main
import (
"crypto/hmac"
"crypto/sha1"
"encoding/base64"
"flag"
"fmt"
"io"
"net/http"
@salrashid123
salrashid123 / main.go
Last active June 11, 2022 14:12
Create and manage google api keys in go (https://blog.salrashid.dev/articles/2022/google_api_keys/)
package main
import (
"encoding/json"
"flag"
"fmt"
"time"
"golang.org/x/net/context"
@salrashid123
salrashid123 / main.go
Last active June 6, 2022 14:45
gRPC healthcheck using curl
package main
/*
grpc Healthcheck from scratch
https://blog.salrashid.dev/articles/2022/grpc_healthcheck_curl/
*/
$ go run src/grpc_client.go --host xds:///be-srv
2022/06/04 08:04:55 INFO: [core] [Channel #1] Channel created
2022/06/04 08:04:55 INFO: [core] [Channel #1] original dial target is: "xds:///be-srv"
2022/06/04 08:04:55 INFO: [core] [Channel #1] parsed dial target is: {Scheme:xds Authority: Endpoint:be-srv URL:{Scheme:xds Opaque: User: Host: Path:/be-srv RawPath: ForceQuery:false RawQuery: Fragment: RawFragment:}}
2022/06/04 08:04:55 INFO: [core] [Channel #1] Channel authority set to "be-srv"
2022/06/04 08:04:55 INFO: [xds] [xds-resolver 0xc0003a0cc0] Creating resolver for target: {Scheme:xds Authority: Endpoint:be-srv URL:{Scheme:xds Opaque: User: Host: Path:/be-srv RawPath: ForceQuery:false RawQuery: Fragment: RawFragment:}}
2022/06/04 08:04:55 INFO: [xds] [xds-bootstrap] Bootstrap content: {
"xds_servers": [
{
admin:
access_log_path: /dev/null
address:
socket_address:
address: 127.0.0.1
port_value: 9000
node:
cluster: service_greeter
id: test-id
static_resources:
admin:
access_log_path: /dev/null
address:
socket_address:
address: 127.0.0.1
port_value: 19000
node:
cluster: service_greeter
id: test-id
static_resources:
@salrashid123
salrashid123 / main.go
Last active May 12, 2022 01:08
Reading live audit log changes using GCP Cloud Logging (https://blog.salrashid.dev/articles/2022/asset_monitor/
package main
import (
"bytes"
"flag"
"fmt"
"io"
"google.golang.org/protobuf/encoding/protojson"
@salrashid123
salrashid123 / main.go
Last active May 11, 2022 13:11
Using GCP Asset Inventory Feed to monitor resources (https://blog.salrashid.dev/articles/2022/asset_monitor/
package main
import (
"fmt"
"time"
"flag"
"cloud.google.com/go/pubsub"
"golang.org/x/net/context"