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


Next Steps  

We’ll dive into the details of creating the topology of a platform solution.

Click here to continue