Skip to content

Components idea #48

Open
Open
@maxwalls

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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions