Problem
The free RAMSES build refuses any network above 1000 buses, failing at network reading with
STOP CALL FROM Get buses:
You do not have license for more than 1000 buses. Please contact the authors.
The full version is unlocked by a settings record of the form
$LICENSE <email> <64-hex-character key> ;
There is no way to enter one in the interface. A licensed user has to open the settings
file of every case by hand and paste the record in, which puts a personal key into case
data that is often under version control and shared.
Suggestion
Add a licence entry point to the GUI: two fields, the licensee email and the key, stored
once per installation and injected into the generated command file for every run, so the
key never has to appear in a case file the user edits or shares.
Points to settle:
- Where it lives in the UI. Preferences seems the natural home, next to the existing
RAMSES settings. A prompt offering to open it when a run fails on the 1000-bus message
would turn the most confusing failure in the product into a one-click fix.
- How it is stored. The preferences node is my.stepss.StepssUI, so a plain string
there is readable by anything on the machine. Encrypting at rest is worth doing, though
note that a desktop application has nowhere truly safe to keep the decryption key, so
this raises the bar rather than making the key secret. Obfuscation that pretends
otherwise would be worse than storing it plainly and saying so. Worth brainstorming.
- Migration. Whatever key name is chosen has to be added to PreferenceMigration,
which copies every key out of the old my.ramses.RamsesUI node, so an installation
upgraded later does not lose the licence.
- Feedback. Show whether a licence is currently active and which email it is bound
to. The engine banner prints (Full Version) whether or not a licence is loaded, so it
cannot be used to tell.
- Validation. The key is 64 hex characters and bound to the email, so a typo can be
caught at entry rather than surfacing later as a misleading 1000-bus error.
See the companion issue in stepss-python-ui (SPS-L/stepss-python-ui#4) for the API side.
Ideally both read the same stored credential rather than each keeping its own copy.
Reactions are currently unavailable
Problem
The free RAMSES build refuses any network above 1000 buses, failing at network reading with
The full version is unlocked by a settings record of the form
There is no way to enter one in the interface. A licensed user has to open the settings
file of every case by hand and paste the record in, which puts a personal key into case
data that is often under version control and shared.
Suggestion
Add a licence entry point to the GUI: two fields, the licensee email and the key, stored
once per installation and injected into the generated command file for every run, so the
key never has to appear in a case file the user edits or shares.
Points to settle:
RAMSES settings. A prompt offering to open it when a run fails on the 1000-bus message
would turn the most confusing failure in the product into a one-click fix.
there is readable by anything on the machine. Encrypting at rest is worth doing, though
note that a desktop application has nowhere truly safe to keep the decryption key, so
this raises the bar rather than making the key secret. Obfuscation that pretends
otherwise would be worse than storing it plainly and saying so. Worth brainstorming.
which copies every key out of the old my.ramses.RamsesUI node, so an installation
upgraded later does not lose the licence.
to. The engine banner prints (Full Version) whether or not a licence is loaded, so it
cannot be used to tell.
caught at entry rather than surfacing later as a misleading 1000-bus error.
See the companion issue in stepss-python-ui (SPS-L/stepss-python-ui#4) for the API side.
Ideally both read the same stored credential rather than each keeping its own copy.