Skip to content

Commit

Permalink
Add External Events (#1396)
Browse files Browse the repository at this point in the history
* Merge timeline Activity Layer & External Event Layer to new Discrete Layer object

* Update view schema for Discrete Layer

* Add basic support for external events in the 'Activity & Resource Types' menu item

* Add external source/event e2e tests, unittests

* Update plan view for external sources/events, derivation groups

* Incorporate external sources, effects, derivation groups into permissions

* Add GQL wrappers to effects for external sources, events, derivation groups

* Add GQL queries/mutations for external events/sources

* Add ExternalSourceManager

Main page for users to upload/manage external sources, derivation groups, and external event/source types
---------

Co-authored-by: JosephVolosin <[email protected]>
Co-authored-by: psubram3 <[email protected]>
  • Loading branch information
3 people authored Oct 22, 2024
1 parent 063b04f commit 66b24bf
Show file tree
Hide file tree
Showing 93 changed files with 9,254 additions and 1,182 deletions.
1 change: 1 addition & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
.svelte-kit/**
build/**
e2e-test-results/**
e2e-tests/data/**
node_modules/**
src/css/utilities.css
static/**
Expand Down
59 changes: 59 additions & 0 deletions e2e-tests/data/example-external-source-missing-field.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
{
"source": {
"key": "ExampleExternalSource:example-external-source.json",
"valid_at": "2024-021T00:00:00Z",
"period": {
"start_time": "2024-021T00:00:00Z",
"end_time": "2024-028T00:00:00Z"
},
"metadata": {
"version": 1,
"spacecraft": [
"sc1",
"sc2"
]
}
},
"events": [
{
"key": "ExampleEvent:1/sc/sc1:1:X/1",
"event_type": "ExampleEvent",
"start_time": "2024-022T12:05:00Z",
"duration": "02:10:00",
"properties": {
"example1": "value",
"example2": 1
}
},
{
"key": "ExampleEvent:2/sc/sc2:1:X/1",
"event_type": "ExampleEvent",
"start_time": "2024-022T13:15:00Z",
"duration": "02:40:00",
"properties": {
"example1": "value",
"example2": 1
}
},
{
"key": "ExampleEvent:3/sc/sc3:1:X/1",
"event_type": "ExampleEvent",
"start_time": "2024-022T19:15:00Z",
"duration": "01:40:00",
"properties": {
"example1": "value",
"example2": 1
}
},
{
"key": "ExampleEvent:4/sc/sc4:1:X/1",
"event_type": "ExampleEvent",
"start_time": "2024-022T21:25:00Z",
"duration": "01:30:00",
"properties": {
"example1": "value",
"example2": 1
}
}
]
}
57 changes: 57 additions & 0 deletions e2e-tests/data/example-external-source-syntax-error.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
{
"source": {
"key": "ExampleExternalSource:example-external-source.json",
"source_type": "Example External Source",
"valid_at": "2024-021T00:00:00Z",
"period": {
"start_time": "2024-021T00:00:00Z",
"end_time": "2024-028T00:00:00Z"
},
"metadata": {
"version": 1,
"spacecraft": ["sc1", "sc2"]
}
},
"events": [
{
"key": "ExampleEvent:1/sc/sc1:1:X/1",
"event_type": "ExampleEvent",
"start_time": "2024-022T12:05:00Z",
"duration": "02:10:00",
"properties": {
"example1": "value",
"example2": 1
}
},
{
"key": "ExampleEvent:2/sc/sc2:1:X/1",
"event_type: "ExampleEvent",
"start_time": "2024-022T13:15:00Z",
"duration": "02:40:00",
"properties": {
"example1": "value",
"example2": 1
}
},
{
"key": "ExampleEvent:3/sc/sc3:1:X/1",
"event_type": "ExampleEvent",
"start_time": "2024-022T19:15:00Z",
"duration": "01:40:00",
"properties": {
"example1": "value",
"example2": 1
}
},
{
"key": "ExampleEvent:4/sc/sc4:1:X/1",
"event_type": "ExampleEvent",
"start_time": "2024-022T21:25:00Z",
"duration": "01:30:00",
"properties": {
"example1": "value",
"example2": 1
}
}
]
}
30 changes: 30 additions & 0 deletions e2e-tests/data/example-external-source.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{
"source": {
"key": "ExampleExternalSource:example-external-source.json",
"source_type": "Example External Source",
"valid_at": "2022-001T00:00:00Z",
"period": {
"start_time": "2022-001T00:00:00Z",
"end_time": "2022-002T00:00:00Z"
},
"metadata": {
"version": 1,
"spacecraft": [
"sc1",
"sc2"
]
}
},
"events": [
{
"key": "ExampleEvent:1/sc/sc1:1:X/1",
"event_type": "ExampleEvent",
"start_time": "2022-001T12:00:00Z",
"duration": "00:00:00",
"properties": {
"example1": "value",
"example2": 1
}
}
]
}
54 changes: 54 additions & 0 deletions e2e-tests/data/external-event-derivation-1.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
{
"source": {
"key": "external-event-derivation-1.json",
"source_type": "Derivation Test",
"valid_at": "2022-018T00:00:00Z",
"period": {
"start_time": "2022-005T00:00:00Z",
"end_time": "2022-011T00:00:00Z"
},
"metadata": {}
},
"events": [
{
"key": "2",
"event_type": "DerivationD",
"start_time": "2022-005T23:00:00Z",
"duration": "01:10:00",
"properties": {
"rules": [
3,
4
],
"notes": "subsumed by test 01, even though end lies outside of 01, also replaced by test 01 by key",
"should_present": false
}
},
{
"key": "7",
"event_type": "DerivationC",
"start_time": "2022-009T23:00:00Z",
"duration": "02:00:00",
"properties": {
"rules": [
3
],
"notes": "subsumed by test 02, even though end lies outside of 01, because start time during 01",
"should_present": false
}
},
{
"key": "8",
"event_type": "DerivationB",
"start_time": "2022-010T11:00:00Z",
"duration": "01:05:00",
"properties": {
"rules": [
1
],
"notes": "after everything, subsumed by nothing despite being from oldest file",
"should_present": true
}
}
]
}
66 changes: 66 additions & 0 deletions e2e-tests/data/external-event-derivation-2.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
{
"source": {
"key": "external-event-derivation-2.json",
"source_type": "Derivation Test",
"valid_at": "2022-019T00:00:00Z",
"period": {
"start_time": "2022-001T00:00:00Z",
"end_time": "2022-007T00:00:00Z"
},
"metadata": {}
},
"events": [
{
"key": "1",
"event_type": "DerivationA",
"start_time": "2022-001T00:00:00Z",
"duration": "02:10:00",
"properties": {
"rules": [
1
],
"notes": "before everything, subsumed by nothing",
"should_present": true
}
},
{
"key": "2",
"event_type": "DerivationA",
"start_time": "2022-001T12:00:00Z",
"duration": "02:10:00",
"properties": {
"rules": [
4
],
"notes": "overwritten by key in later file, even with type change",
"should_present": false
}
},
{
"key": "3",
"event_type": "DerivationB",
"start_time": "2022-002T23:00:00Z",
"duration": "03:00:00",
"properties": {
"rules": [
2
],
"notes": "starts before next file though occurs during next file, still included",
"should_present": true
}
},
{
"key": "4",
"event_type": "DerivationB",
"start_time": "2022-005T21:00:00Z",
"duration": "03:00:00",
"properties": {
"rules": [
3
],
"notes": "start subsumed by 02, not included in final result",
"should_present": false
}
}
]
}
53 changes: 53 additions & 0 deletions e2e-tests/data/external-event-derivation-3.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
{
"source": {
"key": "external-event-derivation-3.json",
"source_type": "Derivation Test",
"valid_at": "2022-020T00:00:00Z",
"period": {
"start_time": "2022-003T00:00:00Z",
"end_time": "2022-010T00:00:00Z"
},
"metadata": {}
},
"events": [
{
"key": "5",
"event_type": "DerivationC",
"start_time": "2022-005T23:00:00Z",
"duration": "01:10:00",
"properties": {
"rules": [
1
],
"notes": "not subsumed, optionally change this event to have key 6 and ensure this test fails",
"should_present": true
}
},
{
"key": "6",
"event_type": "DerivationC",
"start_time": "2022-006T12:00:00Z",
"duration": "02:00:00",
"properties": {
"rules": [
1
],
"notes": "not subsumed",
"should_present": true
}
},
{
"key": "2",
"event_type": "DerivationB",
"start_time": "2022-009T11:00:00Z",
"duration": "01:05:00",
"properties": {
"rules": [
4
],
"notes": "replaces 2 in test 01, despite different event type",
"should_present": true
}
}
]
}
29 changes: 29 additions & 0 deletions e2e-tests/data/external-event-derivation-4.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{
"source": {
"key": "external-event-derivation-4.json",
"source_type": "Derivation Test",
"valid_at": "2022-021T00:00:00Z",
"period": {
"start_time": "2022-001T12:00:00Z",
"end_time": "2022-002T12:00:00Z"
},
"metadata": {
"notes": "events in here aren't too significant. The existence of this ingest is to ensure that slots work correctly in the SQL query."
}
},
"events": [
{
"key": "9",
"event_type": "DerivationC",
"start_time": "2022-002T00:00:00Z",
"duration": "01:00:00",
"properties": {
"rules": [
1
],
"notes": "not subsumed",
"should_present": true
}
}
]
}
Loading

0 comments on commit 66b24bf

Please sign in to comment.