![]()
A summary of high-level steps in the solution development process are listed below in the order they are typically used.
![]()
| 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. |
![]()
| 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 |
![]()
| 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 |
![]()
| 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 |
![]()
| 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 |
![]()
| 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.