<commit_before>

# Every sub-command will --help

# Start anew
- Clone project: `git clone https://github.com/tadpol/GWE-Multitool.git demo01`
- `cd demo01`

- Pick a bussiness: `murano business list`
- Set it: `murano config business.id ZZZZZZZZZ`

- Create a product: `murano product create myawesomeproduct`
- Save the result: `murano config product.id YYYYYYYYY`

- Set the product definition: `murano config product.spec gwe-multitool.yaml`
- Set the directory to look for specs. `murano config location.specs spec`
- Sync the product definition up: `murano syncup -V --specs`

- Create a solution: `murano solution create myawesomesolution`
- Save the result: `murano config solution.id XXXXXX`
- Assign the product to the solution: `murano assign set`

# What got configured?
`murano config --dump`






# <voice type='orc'>Work Work</voice>

- What is going to change? `murano status`
- Sync solution code up: `murano syncup -V`

- Change a file
- What is going to change? `murano status`
- Details of change: `murano diff`




# Devices
- Add a real device: `murano product device enable 42:42:42:42:42:42`
- !!!cheet and activate by hand: `murano product device activate 42:42:42:42:42:42`
- Which resources are there? `murano product spec pull`
- What did the device write to that one resource?
  `murano product device read 42:42:42:42:42:42 update_interval`
- `murano product device write 42:42:42:42:42:42 update_interval 300`



# Multiple configs
Because Developing, Staging, Production.

Set addition config file to load with `MR_CONFIGFILE`

Also supports '.env'




# Device Content Area

See GWE.





# Debugging

## Logs
- `murano logs`
- `murano logs --follow`






## Keystore
### What is in the Keystore?
`murano keystore list`

### Write and Read a Key
- `murano keystore set test greebled`
- `murano keystore get test`

### Write to a Set
- `murano keystore command sadd myset greebled`
Or any other supported Redis command.

### Remove just the ones with 'socketmap'
`murano keystore list | grep socketmap | xargs -L1 murano keystore delete`




## TSDB

- `murano tsdb list metrics`
- `murano tsdb list tags`
- `murano tsdb query @sn=1 temp0`
- `murano tsdb query @sn=1 temp0 --limit=4`
- `murano tsdb query @sn=1 --limit=10 -c outformat=csv --epoch ms`



<commit_msg>In demo.md, Replace references to 'solution' with 'application'.<commit_after>

# Every sub-command will --help

# Start anew
- Clone project: `git clone https://github.com/tadpol/GWE-Multitool.git demo01`
- `cd demo01`

- Pick a business: `murano business list`
- Set it: `murano config business.id ZZZZZZZZZ`

- Create a product: `murano product create myawesomeproduct`
- Save the result: `murano config product.id YYYYYYYYY`

- Set the product definition: `murano config product.spec gwe-multitool.yaml`
- Set the directory to look for specs. `murano config location.specs spec`
- Sync the product definition up: `murano syncup -V --specs`

- Create an application: `murano application create myawesomesolution`
- Save the result: `murano config application.id XXXXXX`
- Assign the product to the application: `murano assign set`

# What got configured?
`murano config --dump`






# <voice type='orc'>Work Work</voice>

- What is going to change? `murano status`
- Sync solution code up: `murano syncup -V`

- Change a file
- What is going to change? `murano status`
- Details of change: `murano diff`




# Devices
- Add a real device: `murano product device enable 42:42:42:42:42:42`
- !!!cheet and activate by hand: `murano product device activate 42:42:42:42:42:42`
- Which resources are there? `murano product spec pull`
- What did the device write to that one resource?
  `murano product device read 42:42:42:42:42:42 update_interval`
- `murano product device write 42:42:42:42:42:42 update_interval 300`



# Multiple configs
Because Developing, Staging, Production.

Set addition config file to load with `MR_CONFIGFILE`

Also supports '.env'




# Device Content Area

See GWE.





# Debugging

## Logs
- `murano logs`
- `murano logs --follow`






## Keystore
### What is in the Keystore?
`murano keystore list`

### Write and Read a Key
- `murano keystore set test greebled`
- `murano keystore get test`

### Write to a Set
- `murano keystore command sadd myset greebled`
Or any other supported Redis command.

### Remove just the ones with 'socketmap'
`murano keystore list | grep socketmap | xargs -L1 murano keystore delete`




## TSDB

- `murano tsdb list metrics`
- `murano tsdb list tags`
- `murano tsdb query @sn=1 temp0`
- `murano tsdb query @sn=1 temp0 --limit=4`
- `murano tsdb query @sn=1 --limit=10 -c outformat=csv --epoch ms`




{'fraction_non_alphanumeric': 0.10358138537422261, 'fraction_numerical': 0.027450139395239118, 'mean_word_length': 3.940677966101695, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 4, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6289276', 'n_tokens_mistral': 1729, 'n_tokens_neox': 1515, 'n_words': 593}