Opportunity - Editor Integration with System Initiative

By Paul Stack
1/21/2025

Every DevOps practitioner curates a personalized toolchain that maximizes their productivity. At the heart of this toolchain is their local editor—a workspace tailored to their unique preferences and workflow. It’s where they feel most comfortable and capable. With this in mind, System Initiative is introducing seamless integration between asset authoring and your preferred integrated development environment (IDE), empowering you to work more efficiently within your trusted setup. This post will fill you in on the details, and you can always watch the readout of the opportunity on YouTube.

If this is your first exposure to how we communicate about the ongoing development of System Initiative, welcome! On our docs site, you can learn more about what opportunities are and how we work on System Initiative. You will also find our vocabulary page useful.

System Initiative as a mounted file system

Working efficiently with Infrastructure as Code (IaC) demands seamless integration with local development environments. Writing and maintaining IaC involves complex configurations, syntax-specific nuances, and frequent iteration. Editor integration is critical to this workflow, offering features like syntax highlighting, autocompletion, linting, and real-time validation directly within the tools developers already use. This not only enhances productivity but also reduces the risk of errors, ensuring infrastructure definitions are both accurate and consistent.

These practices are deeply ingrained in how practitioners work today. One of the most frequent questions we hear from our users is: “Can I author assets in System Initiative using my local development tooling?” This question reflects the reality of modern workflows, where your editor or IDE isn’t just another tool—it’s the command center of your day-to-day operations. By integrating asset authoring directly into your editor of choice, we’re bridging the gap between DevOps workflows and the tools you already know and trust.

Our integration takes a bold and innovative approach by leveraging a FUSE-based file system to connect your local development environment with System Initiative seamlessly. By mounting a System Initiative workspace directly, users can interact with it using familiar Unix-style calls. This approach ensures that asset authoring and management feel like a natural extension of your existing tools, eliminating friction and empowering you to focus on building and deploying with confidence. It’s not just integration—it’s a reimagining of how DevOps tools fit into your daily workflow.

This integration offers more than just convenience—it transforms your workflow in several key ways:

  • Efficiency Through Reduced Context Switching Switching between your editor and external tools disrupts focus and adds friction. With in-editor integration, everything you need is in one place, allowing you to stay in the zone and move faster.
  • A Gentle Learning Curve Embedding functionality directly into your editor reduces the cognitive load of learning a new interface. This allows you to hit the ground running, leveraging what you already know.
  • Error Reduction and Built-In Safeguards Inline validation, warnings, and guidance help you avoid common pitfalls. You can trust that your changes align with tool requirements before they’re committed.

Our implementation plan

In this first iteration, we’re focusing exclusively on the authoring experience for System Initiative. By prioritizing this critical aspect, we aim to deliver a seamless and intuitive workflow, empowering users to create and manage assets easily and precisely. This targeted approach lays the foundation for deeper integrations while ensuring immediate value for developers and practitioners alike.

Our implementation plan is as follows:

  • A user can download a binary that will allow them to mount a specific System Initiative workspace
    • The user will need to provide a bearer token for that workspace
  • A user can see a list of open change sets in their workspace listed as directories
    • A new change set can be made via mkdir, but no deletion or merge will be supported at this time
  • The change set will list all of the schemas available in System Initiative, each represented by a directory structure
    • Uninstalled schemas will not have any folder contents
    • A schema can be installed by making a lock folder mkdir as part of the empty tree structure
  • Each installed asset will have a tree structure of its assets represented by kind and then a folder for each schema name
  • All of the functions available in a workspace will be represented as a folder structure, and adding a new function will also be the equivalent of a mkdir command
  • All of the schema and function bindings and metadata will be present as attribute files in the subtree

Example file system

The final file system layout isn’t complete at this time, but we believe that it will follow this structure:

.
├── HEAD
│   └── assets
│       └── AWS EC2 Instance
│           └── locked
│               ├── actions
│               │   ├── si:awsEc2CreateAction
│               │   │   └── locked
│               │   │       ├── main-attrs.json
│               │   │       └── main.ts
│               │   ├── si:awsEc2DeleteAction
│               │   │   └── locked
│               │   │       ├── main-attrs.json
│               │   │       └── main.ts
│               │   └── si:awsEc2RefreshAction
│               │       └── locked
│               │           ├── main-attrs.json
│               │           └── main.ts
│               ├── attribute
│               │   └── si:resourcePayloadToValue
│               │       └── locked
│               │           ├── main-attrs.json
│               │           └── main.ts
│               ├── codegen
│               │   └── si:generateAwsEc2JSON
│               │       └── locked
│               │           ├── main-attrs.json
│               │           └── main.ts
│               ├── management
│               ├── qualifications
│               │   └── si:qualificationEc2CanRun
│               │       ├── locked
│               │       │   ├── main-attrs.json
│               │       │   └── main.ts
│               │       └── unlocked
│               │           ├── main-attrs.json
│               │           └── main.ts
│               ├── schema-attrs.json
│               ├── schema-metadata.json
│               └── schema.ts
└── changeset 1
    └── assets
        ├── AWS
        ├── AWS EC2 Instance
        │   └── locked
        │       ├── actions
        │       │   ├── si:awsEc2CreateAction
        │       │   │   └── locked
        │       │   │       ├── main-attrs.json
        │       │   │       └── main.ts
        │       │   ├── si:awsEc2DeleteAction
        │       │   │   └── locked
        │       │   │       ├── main-attrs.json
        │       │   │       └── main.ts
        │       │   └── si:awsEc2RefreshAction
        │       │       └── locked
        │       │           ├── main-attrs.json
        │       │           └── main.ts
        │       ├── attribute
        │       │   └── si:resourcePayloadToValue
        │       │       └── locked
        │       │           ├── main-attrs.json
        │       │           └── main.ts
        │       ├── codegen
        │       │   └── si:generateAwsEc2JSON
        │       │       └── locked
        │       │           ├── main-attrs.json
        │       │           └── main.ts
        │       ├── management
        │       ├── qualifications
        │       │   └── si:qualificationEc2CanRun
        │       │       ├── locked
        │       │       │   ├── main-attrs.json
        │       │       │   └── main.ts
        │       │       └── unlocked
        │       │           ├── main-attrs.json
        │       │           └── main.ts
        │       ├── schema-attrs.json
        │       ├── schema-metadata.json
        │       └── schema.ts
        ├── ECS
        ├── Service
        ├── VPC
        └── my-asset

When can I expect this to land?

This opportunity has a budget of four weeks, ending January 31th, 2025. You can follow along with our progress by watching our weekly demos, posted every Monday on Discord, YouTube, and our Changelog. You can always find this, and every other active opportunity, in our Road map.

Paul Stack, Director of Product

Paul is an engineer turned product manager who is passionate about the Continuous Delivery and DevOps movements and how they are critical in helping businesses deliver value to their customers.

Use System Initiative.

Generous free tier