Skip to content

Instantly share code, notes, and snippets.

Avatar
👷‍♂️
Building stuff

Alexander Zeitler AlexZeitler

👷‍♂️
Building stuff
View GitHub Profile
View tenant-bridging.md

Tenant Bridges

This document defines a mechanism to establish multiplexed, platform-level information flow between the tenant scopes of different, multitenant platform-as-a-service (PaaS) or software-as-a-service (SaaS) systems. In particular, this specification introduces the concept of a tenant-bridging “channel” that is established as a communication link between the tenants of two cooperating platforms. While the mechanism defined here is quite simple, the solved problem requires quite a bit of context setting:

What are we solving?

The "cooperating platforms" are commonly from different cloud service vendors and are addressing different customer scenarios. Examples might be enterprise resource planning (ERP) on one side and general-purpose application hosting on the other. A scenario to enable might be for the ERP system to be easily extensible with event-driven serverless functionality hosted on the other platform.

In such a scenario, it will likely be the same customer organization who is a te

@AlexZeitler
AlexZeitler / vscode-italics.json
Created Jul 12, 2021 — forked from dev01d/vscode-italics.json
VSCode italics in (almost) any theme
View vscode-italics.json
// All you need to do is add a font that has pretty good itlaics support i.e Fira, Operator, etc. and then add these two params to your existing User settings.
{
"editor.fontFamily": "'Operator Mono', Menlo, Monaco, 'Courier New', monospace",
"editor.tokenColorCustomizations": {
"textMateRules": [
{
"scope": [
"comment",
"keyword.control",
@AlexZeitler
AlexZeitler / set-keycloak-client-secret.groovy
Created Jul 11, 2021 — forked from goeh/set-keycloak-client-secret.groovy
Inject client secrets from a local file into a Keycloak Realm Export (JSON) file
View set-keycloak-client-secret.groovy
import groovy.json.JsonSlurper
import groovy.json.JsonOutput
def jsonSlurper = new JsonSlurper()
def secrets = jsonSlurper.parse(new File(args[1] ?: "secrets.json")).clients.inject([:]) { map, c -> map[c.client] = c.secret; map }
def realm = jsonSlurper.parse(new File(args[0]))
for(client in realm.clients) {
if(secrets[client.clientId]) {
@AlexZeitler
AlexZeitler / CloudAgent-1.fs
Created Jun 13, 2021 — forked from isaacabraham/CloudAgent-1.fs
Local Mailbox Processor
View CloudAgent-1.fs
// Our simple domain model
type Priority =
| Low
| Normal
| High
type Message = {
Text : string
Priority : Priority
}
@AlexZeitler
AlexZeitler / HttpClient.FSharp.fs
Created May 30, 2021 — forked from jhewlett/HttpClient.FSharp.fs
Functional wrapper around System.Net.Http.HttpClient. Inspired in part by Http.fs (https://github.com/haf/Http.fs) and FSharp.Data (https://fsharp.github.io/FSharp.Data/library/Http.html)
View HttpClient.FSharp.fs
namespace HttpClient.FSharp
open System
open System.Net.Http
type HttpMethod =
| Post
| Put
| Delete
| Get
@AlexZeitler
AlexZeitler / idiomaticjsonserialiser.fs
Created May 15, 2021 — forked from isaacabraham/idiomaticjsonserialiser.fs
This JSON.Net converter handles F# discriminated unions with more "idiomatic" JSON than what is generated by the current version of JSON .NET. Option types and single case DUs are transparently handled, and tuple-style properties are used rather than array notation.
View idiomaticjsonserialiser.fs
namespace Newtonsoft.Json.Converters
open Microsoft.FSharp.Reflection
open Newtonsoft.Json
open System
type IdiomaticDuConverter() =
inherit JsonConverter()
[<Literal>]
@AlexZeitler
AlexZeitler / SCU.fs
Created May 15, 2021 — forked from JordanMarr/SCU.fs
JSON.NET SCU Converter
View SCU.fs
// Single case union
[<Struct>] type MHPI = MHPI of double
// An entity that contains SCU
type Entity = {
Foo: string
Bar: MHPI
}
// JSON.NET Converter
View JsonSerializer.fs
namespace Infrastructure
open System.Text.Encodings.Web
open System.Text.Json
open System.Text.Json.Serialization
[<RequireQualifiedAccess>]
module JsonSerializer =
let private setupOptions (options: JsonSerializerOptions) =
options.PropertyNamingPolicy <- JsonNamingPolicy.CamelCase
@AlexZeitler
AlexZeitler / .editorconfig
Last active May 2, 2021
TypeScript + React + Tailwind + VS Code Project settings
View .editorconfig
root = false
[**/**.{yml,ts,tsx,js,json,jsx,html}]
indent_style = space
indent_size = 2
insert_final_newline = true