Browse Source

add microservice and cdn plugins

pull/1/head
Stephanie Gredell 7 months ago
parent
commit
fb57b8c0a5
  1. 2
      static/app.js
  2. 54
      static/game.html
  3. 34
      static/plugins/cdn.js
  4. 34
      static/plugins/microservice.js

2
static/app.js

@ -6,6 +6,8 @@ import './plugins/cache.js'; @@ -6,6 +6,8 @@ import './plugins/cache.js';
import './plugins/loadbalancer.js';
import './plugins/database.js';
import './plugins/messageQueue.js';
import './plugins/cdn.js';
import './plugins/microservice.js';
import { PluginRegistry } from './pluginRegistry.js';
export class CanvasApp {

54
static/game.html

@ -758,6 +758,60 @@ @@ -758,6 +758,60 @@
<label>Retention Time (sec)</label>
<input type="number" name="retentionSeconds" min="1" />
</div>
<div id="cdn-group" data-group="cdn-group" class="prop-group">
<label>TTL (seconds)</label>
<input type="number" name="ttl" min="1" />
<label>Geo Replication</label>
<select name="geoReplication">
<option value="global">Global</option>
<option value="regional">Regional</option>
<option value="custom">Custom</option>
</select>
<label>Caching Strategy</label>
<select name="cachingStrategy">
<option value="cache-first">Cache First</option>
<option value="network-first">Network First</option>
<option value="stale-while-revalidate">Stale While Revalidate</option>
</select>
<label>Compression</label>
<select name="compression">
<option value="brotli">Brotli</option>
<option value="gzip">Gzip</option>
<option value="none">None</option>
</select>
<label>HTTP/2 Support</label>
<select name="http2">
<option value="enabled">Enabled</option>
<option value="disabled">Disabled</option>
</select>
</div>
<div id="microservice-group" data-group="microservice-group" class="prop-group">
<label>Instance Count</label>
<input type="number" name="instanceCount" min="1" />
<label>Instance Size</label>
<select name="instanceSize">
<option value="small">Small</option>
<option value="medium">Medium</option>
<option value="large">Large</option>
</select>
<label>Scaling Strategy</label>
<select name="scalingStrategy">
<option value="manual">Manual</option>
<option value="auto">Auto</option>
<option value="scheduled">Scheduled</option>
</select>
<label>API Version</label>
<input type="text" name="apiVersion" />
</div>
<!-- PUT NEW COMPONENTS BEFORE THIS BUTTON -->
<button id="node-props-save" disabled>save</button>
</div>
<div id="bottom-panel">

34
static/plugins/cdn.js

@ -0,0 +1,34 @@ @@ -0,0 +1,34 @@
import { PluginRegistry } from "../pluginRegistry.js";
PluginRegistry.register('cdn', {
type: 'cdn',
label: 'CDN',
props: [
{ name: 'label', type: 'string', default: 'CDN', group: 'label-group' },
{ name: 'ttl', type: 'number', default: 3600, group: 'cdn-group' },
{
name: 'geoReplication',
type: 'string',
default: 'global',
group: 'cdn-group'
},
{
name: 'cachingStrategy',
type: 'string',
default: 'cache-first',
group: 'cdn-group'
},
{
name: 'compression',
type: 'string',
default: 'brotli',
group: 'cdn-group'
},
{
name: 'http2',
type: 'string',
default: 'enabled',
group: 'cdn-group'
}
]
});

34
static/plugins/microservice.js

@ -0,0 +1,34 @@ @@ -0,0 +1,34 @@
import { PluginRegistry } from "../pluginRegistry.js";
PluginRegistry.register('microservice', {
type: 'microservice',
label: 'Microservice',
props: [
{ name: 'label', type: 'string', default: 'Service', group: 'label-group' },
{
name: 'instanceCount',
type: 'number',
default: 3,
group: 'microservice-group'
},
{
name: 'instanceSize',
type: 'string',
default: 'medium',
group: 'microservice-group'
},
{
name: 'scalingStrategy',
type: 'string',
default: 'auto',
group: 'microservice-group'
},
{
name: 'apiVersion',
type: 'string',
default: 'v1',
group: 'microservice-group'
}
]
});
Loading…
Cancel
Save