brexhq / substation

Substation is a toolkit for routing, normalizing, and enriching security event and audit logs.
https://substation.readme.io
MIT License
330 stars 21 forks source link

feat: Add Playground Demo #82

Closed jshlbrd closed 1 year ago

jshlbrd commented 1 year ago

Description

Motivation and Context

WebAssembly is used by other projects (e.g., Jsonnet, GJSON) to demo functionality locally in the browser, this change brings the same concept to Substation. This has low impact on the core functionality of the project but makes it easier for non-users to demo the system.

WebAssembly doesn't support every feature of the project, so I've added build tags that separates production builds from WASM builds. This has the most impact in the process library where _wasm.go files were added -- these only exist to satisfy interfaces and ensure cross-compatibility with other operating systems. If a user calls one of these processors in the browser, then they get an ENOSYS error.

How Has This Been Tested?

It's running here: substation-play.pages.dev.

Types of changes

Checklist: