Development Process Summary

High Level Steps
A summary of high-level steps in the solution development process are listed below in the order they are typically used.

Principals, profiles, login
action |
fsoc command format |
fsoc command example |
description |
Create a service-principal profile |
fsoc config set --profile <profile_name> auth=service-principal secret-file=<path_to_service_principal.json> |
fsoc config set --profile my-sp-profile auth=service-principal secret-file=service- principal.json |
Creates a service-principal profile on your workstation that points to your tenant |
Create an agent-principal profile |
fsoc config set --profile <profile_name> auth=agent-principal secret-file= <path_to_collectors_values.yaml> |
fsoc config set --profile my-ap-profile auth=agent-principal secret-file=collectors-values.yaml |
Creates an agent-principal profile on your workstation that points to your tenant |
Switch profiles |
fsoc config use <profile_name> |
fsoc config use my-sp-profile |
Changes your current profile to the profile name you provide. Set your profile to your service-principal profile before you use fsoc to login. |
Login with service-principal profile |
fsoc login |
fsoc login |
Logs you into your tenant so can create and publish your solution. |

Topology, entities, attributes, mappings
action |
fsoc command format |
fsoc command example |
description |
Initialize your solution |
fsoc solution init <solution_name> |
fsoc solution init ugottaride |
Creates a directory named ugottaride and adds the manifest.json file in it |
Change your version of your solution |
done manually |
|
Update your manifest.json file |
Add entities to your solution |
fsoc solution extend --add-entity <entity_name> |
fsoc solution extend --add-entity ride |
Creates a new entity file <entity_name>.json |
Add attributes to your entities |
done manually |
|
Update your <entity_name>.json files |
Add resource mappings for your entities |
fsoc solution extend --add-resourceMapping <entity_name> |
fsoc solution extend --add-resourceMapping ride |
Creates a new resource mapping file <entity_name>resourceMapping.json |

Topology, metrics, associations, priorities
action |
fsoc command format |
fsoc command example |
description |
Add metrics for your solution |
fsoc solution extend --add-metric <metric_name> |
fsoc solution extend --add-metric miles_traveled |
Creates a new metric file <metric_name>.json |
Add metrics to your entities |
done manually |
|
Update your <entity_name>.json files |
Add association types to your entities |
done manually |
|
Update your <entity_name>.json files |
Add association declarations for your entities |
fsoc solution extend --add-associationDeclarations <entity_name> |
fsoc solution extend --add-associationDeclarations ride |
Creates a new association declaration file <entity_name>associationDeclarations.json |
Add association derivations for your entities |
done manually |
|
Create your association derivation directory and json files and add their reference in your manifest.json file |
Add entity priorities |
done manually |
|
Create your entity priorities directory and json file and add their reference in your manifest.json file |

Deployment, validate, push, status
action |
fsoc command format |
fsoc command example |
description |
Validate your solution |
fsoc solution validate --tag dev |
|
Validates the solution to check for any issues |
Push your solution |
fsoc solution push --tag dev |
|
Pushes / publishes your solution to the platform with a dev tag |
Push solution with bump option |
fsoc solution push --bump --tag dev |
|
Pushes / publishes your solution to the platform with a dev tag after incrementing your solution version for you |
Check solution status |
fsoc solution status <solution_name> --tag dev |
fsoc solution status ugottaride --tag dev |
Checks the installation status of your solution |
Subscribe to your solution |
fsoc solution subscribe <solution_name> |
fsoc solution subscribe ugottaride |
Subscribe to your solution after the first push / deployment |

Sending MELT signal data
action |
fsoc command format |
fsoc command example |
description |
Generate sample MELT data |
fsoc melt model |
|
Generates a mock MELT Yaml data file based on your solutions entity and metric definitions in their current state |
Update sample MELT data |
done manually |
|
|
Push sample MELT data |
fsoc melt push <melt_file.yaml> --profile <profile_name> |
fsoc melt push 001-melt.yaml --profile my-ap-profile |
Sends mock MELT data for your solution |
Single Entity Query |
|
fsoc uql "since now - 1h FETCH attributes('riderid'), attributes('display_name'), attributes('first_name'), attributes('last_name'), metrics('ugottaride:miles_traveled') from entities('ugottaride:rider')
|
Queries the rider entity with attributes and a metric |
Parent to Child Entity Query |
|
fsoc uql "since now - 1h FETCH type,count FROM entities(ugottaride:rider).out.to()"
|
Queries the rider entity with its associated ride entity |
Child to Parent Entity Query |
|
fsoc uql "since now - 1h FETCH type,count,attributes('rideid'), attributes('driverid'), attributes('vin') from entities('ugottaride:ride_assign').in.from()
|
Queries the ride assign entity with its associated parent entities |

User interface
action |
fsoc command format |
fsoc command example |
description |
Add an ecpHome UI conponent |
fsoc solution extend --add-ecpHome |
fsoc solution extend --add-ecpHome |
Creates your ecpHome directory and json file and adds their reference in your manifest.json |
Add ecpList UI components |
fsoc solution extend --add-ecpList <entity_name> |
fsoc solution extend --add-ecpList rider |
Creates your template directory for your entity UI and json files and adds their reference in your manifest.json |
Add ecpDetails UI components |
fsoc solution extend --add-ecpDetails <entity_name> |
fsoc solution extend --add-ecpDetails rider |
Creates your entity ecpDetails UI json files and adds their reference in your manifest.json |

We’ll dive into the details of creating the topology of a platform solution.
Click here to continue