Skip to content

Components idea #48

Description

@maxwalls

As a language developer, you could provide the user with a set of standard components to be used for modeling.
Components could be .json files stored in src/main/resources/components.
The format could be something like:

{
  "language": {
    "id": "org.mal-lang.mylang",
    "version": "1.0.0"
  },
  "name": "MyComponent",
  "category": "Computers",
  "assets": [
    {
      "type": "Computer",
      "id": "1",
      "name": "Home laptop 1",
      "overrides": {
        "attackSteps": {
          "compromise": "Exponential(0.5)"
        },
        "defenses": {
          "antiVirus": true,
          "aslr": false,
          "passwordProtected": 0.5
        }
      }
    },
    {
      "type": "Computer",
      "id": "2",
      "name": "Home laptop 2"
    }
  ],
  "associations": [
    {
      "sourceId": "1",
      "targetId": "2",
      "sourceField": "receivingComputer",
      "targetField": "transmittingComputer"
    }
  ]
}

We should also allow users to create components themselves.
We need a method to validate a component against a MAL language.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions