Skip to content

Commit ef91ab6

Browse files
committed
Update docs with config reference + links
1 parent 0893adf commit ef91ab6

8 files changed

Lines changed: 417 additions & 60 deletions

File tree

File renamed without changes.

src/wwwroot/gfm/_scratch/02.html

Lines changed: 161 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,161 @@
1+
<div class="gfm"><table>
2+
<thead>
3+
<tr>
4+
<th>name</th>
5+
<th>default</th>
6+
<th>description</th>
7+
</tr>
8+
</thead>
9+
<tbody>
10+
<tr>
11+
<td>bind</td>
12+
<td>localhost</td>
13+
<td>Which hostname to bind .NET Core Server to</td>
14+
</tr>
15+
<tr>
16+
<td>ssl</td>
17+
<td>true</td>
18+
<td>Use https for .NET Core Server</td>
19+
</tr>
20+
<tr>
21+
<td>port</td>
22+
<td>5001</td>
23+
<td>Which port to bind .NET Core Server to</td>
24+
</tr>
25+
<tr>
26+
<td>name</td>
27+
<td>Sharp App</td>
28+
<td>AppHost name (also used in Shortcuts)</td>
29+
</tr>
30+
<tr>
31+
<td>debug</td>
32+
<td>ASP.NET Default</td>
33+
<td>Enable additional logging &amp; diagnostics</td>
34+
</tr>
35+
<tr>
36+
<td>contentRoot</td>
37+
<td>app.settings dir</td>
38+
<td>ASP.NET Content Root Directory</td>
39+
</tr>
40+
<tr>
41+
<td>webRoot</td>
42+
<td>wwwroot/</td>
43+
<td>ASP.NET Web Root Directory</td>
44+
</tr>
45+
<tr>
46+
<td>apiPath</td>
47+
<td>/api</td>
48+
<td>Path of Sharp APIs</td>
49+
</tr>
50+
<tr>
51+
<td>defaultRedirect</td>
52+
<td></td>
53+
<td>Default Fallback RedirectPath</td>
54+
</tr>
55+
<tr>
56+
<td>db</td>
57+
<td></td>
58+
<td>OrmLite Dialect: sqlite, sqlserver, mysql postgres</td>
59+
</tr>
60+
<tr>
61+
<td>db.connection</td>
62+
<td></td>
63+
<td>RDBMS Connection String</td>
64+
</tr>
65+
<tr>
66+
<td>redis.connection</td>
67+
<td></td>
68+
<td>ServiceStack.Redis Connection String</td>
69+
</tr>
70+
<tr>
71+
<td>files</td>
72+
<td></td>
73+
<td>VFS provider: filesystem, s3, azureblob</td>
74+
</tr>
75+
<tr>
76+
<td>files.config</td>
77+
<td></td>
78+
<td>Virtual File System JS Object Configuration</td>
79+
</tr>
80+
<tr>
81+
<td>checkForModifiedPagesAfterSecs</td>
82+
<td></td>
83+
<td>How long to check backing VFS provider for changes</td>
84+
</tr>
85+
<tr>
86+
<td>defaultFileCacheExpirySecs</td>
87+
<td></td>
88+
<td>How long to preserve static file caches for</td>
89+
</tr>
90+
<tr>
91+
<td>defaultUrlCacheExpirySecs</td>
92+
<td></td>
93+
<td>How long to preserve URL caches for</td>
94+
</tr>
95+
<tr>
96+
<td>features</td>
97+
<td></td>
98+
<td>List of plugins to load</td>
99+
</tr>
100+
<tr>
101+
<td>markdownProvider</td>
102+
<td>MarkDig</td>
103+
<td>Markdown provider: MarkdownDeep, Markdig</td>
104+
</tr>
105+
<tr>
106+
<td>jsMinifier</td>
107+
<td>NUglify</td>
108+
<td>JS Minifier: NUglify, ServiceStack</td>
109+
</tr>
110+
<tr>
111+
<td>cssMinifier</td>
112+
<td>NUglify</td>
113+
<td>CSS Minifier: NUglify, ServiceStack</td>
114+
</tr>
115+
<tr>
116+
<td>htmlMinifier</td>
117+
<td>NUglify</td>
118+
<td>HTML Minifier: NUglify, ServiceStack</td>
119+
</tr>
120+
<tr>
121+
<td>icon</td>
122+
<td>favicon.ico</td>
123+
<td>Relative or Absolute Path to Shortcut &amp; Desktop icon</td>
124+
</tr>
125+
<tr>
126+
<td>appName</td>
127+
<td></td>
128+
<td>Unique Id to identify Desktop App (snake-case)</td>
129+
</tr>
130+
<tr>
131+
<td>description</td>
132+
<td></td>
133+
<td>Short Description of Desktop App (20-150 chars)</td>
134+
</tr>
135+
<tr>
136+
<td>tags</td>
137+
<td></td>
138+
<td>Desktop App Tags space-delimited, snake-case, 3 max</td>
139+
</tr>
140+
</tbody>
141+
</table>
142+
<div class="highlight highlight-source-cs"><pre><span class="pl-smi">Plugins</span>.<span class="pl-en">Add</span>(<span class="pl-k">new</span> <span class="pl-en">DesktopFeature</span> {
143+
<span class="pl-c"><span class="pl-c">//</span> access role for Script, File &amp; Download services</span>
144+
<span class="pl-smi">AccessRole</span> <span class="pl-k">=</span> <span class="pl-smi">Config</span>.<span class="pl-smi">DebugMode</span>
145+
<span class="pl-k">?</span> <span class="pl-smi">RoleNames</span>.<span class="pl-smi">AllowAnon</span>
146+
<span class="pl-k">:</span> <span class="pl-smi">RoleNames</span>.<span class="pl-smi">Admin</span>,
147+
<span class="pl-smi">ImportParams</span> <span class="pl-k">=</span> { <span class="pl-c"><span class="pl-c">//</span> app.settings you want auto-populated in your App</span>
148+
<span class="pl-s"><span class="pl-pds">"</span>debug<span class="pl-pds">"</span></span>,
149+
<span class="pl-s"><span class="pl-pds">"</span>connect<span class="pl-pds">"</span></span>,
150+
},
151+
<span class="pl-c"><span class="pl-c">//</span> Create a URL Scheme proxy rule for each registered site</span>
152+
<span class="pl-smi">ProxyConfigs</span> <span class="pl-k">=</span> <span class="pl-smi">sites</span>.<span class="pl-smi">Keys</span>.<span class="pl-en">Map</span>(<span class="pl-smi">baseUrl</span> <span class="pl-k">=&gt;</span> <span class="pl-k">new</span> <span class="pl-en">Uri</span>(<span class="pl-smi">baseUrl</span>))
153+
.<span class="pl-en">Map</span>(<span class="pl-smi">uri</span> <span class="pl-k">=&gt;</span> <span class="pl-k">new</span> <span class="pl-en">ProxyConfig</span> {
154+
<span class="pl-smi">Scheme</span> <span class="pl-k">=</span> <span class="pl-smi">uri</span>.<span class="pl-smi">Scheme</span>,
155+
<span class="pl-smi">TargetScheme</span> <span class="pl-k">=</span> <span class="pl-smi">uri</span>.<span class="pl-smi">Scheme</span>,
156+
<span class="pl-smi">Domain</span> <span class="pl-k">=</span> <span class="pl-smi">uri</span>.<span class="pl-smi">Host</span>,
157+
<span class="pl-smi">AllowCors</span> <span class="pl-k">=</span> <span class="pl-c1">true</span>,
158+
<span class="pl-smi">IgnoreHeaders</span> <span class="pl-k">=</span> { <span class="pl-s"><span class="pl-pds">"</span>X-Frame-Options<span class="pl-pds">"</span></span>, <span class="pl-s"><span class="pl-pds">"</span>Content-Security-Policy<span class="pl-pds">"</span></span> },
159+
})
160+
});</pre></div>
161+
</div>

src/wwwroot/gfm/apps/04.html

Lines changed: 169 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,169 @@
1+
<div class="gfm"><table>
2+
<thead>
3+
<tr>
4+
<th>name</th>
5+
<th>default</th>
6+
<th>description</th>
7+
</tr>
8+
</thead>
9+
<tbody>
10+
<tr>
11+
<td>bind</td>
12+
<td>localhost</td>
13+
<td>Which hostname to bind .NET Core Server to</td>
14+
</tr>
15+
<tr>
16+
<td>ssl</td>
17+
<td>true</td>
18+
<td>Use https for .NET Core Server</td>
19+
</tr>
20+
<tr>
21+
<td>port</td>
22+
<td>5001</td>
23+
<td>Which port to bind .NET Core Server to</td>
24+
</tr>
25+
<tr>
26+
<td>name</td>
27+
<td>Sharp App</td>
28+
<td>AppHost name (also used in Shortcuts)</td>
29+
</tr>
30+
<tr>
31+
<td>debug</td>
32+
<td>ASP.NET Default</td>
33+
<td>Enable additional logging &amp; diagnostics</td>
34+
</tr>
35+
<tr>
36+
<td>contentRoot</td>
37+
<td>app.settings dir</td>
38+
<td>ASP.NET Content Root Directory</td>
39+
</tr>
40+
<tr>
41+
<td>webRoot</td>
42+
<td>wwwroot/</td>
43+
<td>ASP.NET Web Root Directory</td>
44+
</tr>
45+
<tr>
46+
<td>apiPath</td>
47+
<td>/api</td>
48+
<td>Path of Sharp APIs</td>
49+
</tr>
50+
<tr>
51+
<td>defaultRedirect</td>
52+
<td></td>
53+
<td>Default Fallback RedirectPath</td>
54+
</tr>
55+
<tr>
56+
<td>db</td>
57+
<td></td>
58+
<td>OrmLite Dialect: sqlite, sqlserver, mysql postgres</td>
59+
</tr>
60+
<tr>
61+
<td>db.connection</td>
62+
<td></td>
63+
<td>RDBMS Connection String</td>
64+
</tr>
65+
<tr>
66+
<td>redis.connection</td>
67+
<td></td>
68+
<td>ServiceStack.Redis Connection String</td>
69+
</tr>
70+
<tr>
71+
<td>files</td>
72+
<td></td>
73+
<td>VFS provider: filesystem, s3, azureblob</td>
74+
</tr>
75+
<tr>
76+
<td>files.config</td>
77+
<td></td>
78+
<td>Virtual File System JS Object Configuration</td>
79+
</tr>
80+
<tr>
81+
<td>checkForModifiedPagesAfterSecs</td>
82+
<td></td>
83+
<td>How long to check backing VFS provider for changes</td>
84+
</tr>
85+
<tr>
86+
<td>defaultFileCacheExpirySecs</td>
87+
<td></td>
88+
<td>How long to preserve static file caches for</td>
89+
</tr>
90+
<tr>
91+
<td>defaultUrlCacheExpirySecs</td>
92+
<td></td>
93+
<td>How long to preserve URL caches for</td>
94+
</tr>
95+
<tr>
96+
<td>features</td>
97+
<td></td>
98+
<td>List of plugins to load</td>
99+
</tr>
100+
<tr>
101+
<td>markdownProvider</td>
102+
<td>MarkDig</td>
103+
<td>Markdown provider: MarkdownDeep, Markdig</td>
104+
</tr>
105+
<tr>
106+
<td>jsMinifier</td>
107+
<td>NUglify</td>
108+
<td>JS Minifier: NUglify, ServiceStack</td>
109+
</tr>
110+
<tr>
111+
<td>cssMinifier</td>
112+
<td>NUglify</td>
113+
<td>CSS Minifier: NUglify, ServiceStack</td>
114+
</tr>
115+
<tr>
116+
<td>htmlMinifier</td>
117+
<td>NUglify</td>
118+
<td>HTML Minifier: NUglify, ServiceStack</td>
119+
</tr>
120+
<tr>
121+
<td>icon</td>
122+
<td>favicon.ico</td>
123+
<td>Relative or Absolute Path to Shortcut &amp; Desktop icon</td>
124+
</tr>
125+
<tr>
126+
<td>appName</td>
127+
<td></td>
128+
<td>Unique Id to identify Desktop App (snake-case)</td>
129+
</tr>
130+
<tr>
131+
<td>description</td>
132+
<td></td>
133+
<td>Short Description of Desktop App (20-150 chars)</td>
134+
</tr>
135+
<tr>
136+
<td>tags</td>
137+
<td></td>
138+
<td>Desktop App Tags space-delimited, snake-case, 3 max</td>
139+
</tr>
140+
<tr>
141+
<td>args.*</td>
142+
<td></td>
143+
<td>Any additional rich config args to define in App</td>
144+
</tr>
145+
</tbody>
146+
</table>
147+
<p>Desktop specific Apps like <a href="https://github.com/ServiceStack/Studio">ServiceStack/Studio</a> enable additional Desktop functionality by
148+
configuring the <a href="https://github.com/ServiceStack/ServiceStack/blob/master/src/ServiceStack.Desktop/DesktopFeature.cs">DesktopFeature</a> plugin in
149+
<a href="https://www.nuget.org/packages/ServiceStack.Desktop" rel="nofollow">ServiceStack.Desktop</a>, e.g:</p>
150+
<div class="highlight highlight-source-cs"><pre><span class="pl-smi">Plugins</span>.<span class="pl-en">Add</span>(<span class="pl-k">new</span> <span class="pl-en">DesktopFeature</span> {
151+
<span class="pl-c"><span class="pl-c">//</span> access role for Script, File &amp; Download services</span>
152+
<span class="pl-smi">AccessRole</span> <span class="pl-k">=</span> <span class="pl-smi">Config</span>.<span class="pl-smi">DebugMode</span>
153+
<span class="pl-k">?</span> <span class="pl-smi">RoleNames</span>.<span class="pl-smi">AllowAnon</span>
154+
<span class="pl-k">:</span> <span class="pl-smi">RoleNames</span>.<span class="pl-smi">Admin</span>,
155+
<span class="pl-smi">ImportParams</span> <span class="pl-k">=</span> { <span class="pl-c"><span class="pl-c">//</span> app.settings you want auto-populated in your App</span>
156+
<span class="pl-s"><span class="pl-pds">"</span>debug<span class="pl-pds">"</span></span>,
157+
<span class="pl-s"><span class="pl-pds">"</span>connect<span class="pl-pds">"</span></span>,
158+
},
159+
<span class="pl-c"><span class="pl-c">//</span> Create a URL Scheme proxy rule for each registered site</span>
160+
<span class="pl-smi">ProxyConfigs</span> <span class="pl-k">=</span> <span class="pl-smi">sites</span>.<span class="pl-smi">Keys</span>.<span class="pl-en">Map</span>(<span class="pl-smi">baseUrl</span> <span class="pl-k">=&gt;</span> <span class="pl-k">new</span> <span class="pl-en">Uri</span>(<span class="pl-smi">baseUrl</span>))
161+
.<span class="pl-en">Map</span>(<span class="pl-smi">uri</span> <span class="pl-k">=&gt;</span> <span class="pl-k">new</span> <span class="pl-en">ProxyConfig</span> {
162+
<span class="pl-smi">Scheme</span> <span class="pl-k">=</span> <span class="pl-smi">uri</span>.<span class="pl-smi">Scheme</span>,
163+
<span class="pl-smi">TargetScheme</span> <span class="pl-k">=</span> <span class="pl-smi">uri</span>.<span class="pl-smi">Scheme</span>,
164+
<span class="pl-smi">Domain</span> <span class="pl-k">=</span> <span class="pl-smi">uri</span>.<span class="pl-smi">Host</span>,
165+
<span class="pl-smi">AllowCors</span> <span class="pl-k">=</span> <span class="pl-c1">true</span>,
166+
<span class="pl-smi">IgnoreHeaders</span> <span class="pl-k">=</span> { <span class="pl-s"><span class="pl-pds">"</span>X-Frame-Options<span class="pl-pds">"</span></span>, <span class="pl-s"><span class="pl-pds">"</span>Content-Security-Policy<span class="pl-pds">"</span></span> },
167+
})
168+
});</pre></div>
169+
</div>

src/wwwroot/gfm/apps/04.md

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
2+
| name | default | description |
3+
-------------------|-------------------------|------------------------------------------------------|
4+
| bind | localhost | Which hostname to bind .NET Core Server to |
5+
| ssl | true | Use https for .NET Core Server |
6+
| port | 5001 | Which port to bind .NET Core Server to |
7+
| name | Sharp App | AppHost name (also used in Shortcuts) |
8+
| debug | ASP.NET Default | Enable additional logging & diagnostics |
9+
| contentRoot | app.settings dir | ASP.NET Content Root Directory |
10+
| webRoot | wwwroot/ | ASP.NET Web Root Directory |
11+
| apiPath | /api | Path of Sharp APIs |
12+
| defaultRedirect | | Default Fallback RedirectPath |
13+
| db | | OrmLite Dialect: sqlite, sqlserver, mysql postgres |
14+
| db.connection | | RDBMS Connection String |
15+
| redis.connection | | ServiceStack.Redis Connection String |
16+
| files | | VFS provider: filesystem, s3, azureblob |
17+
| files.config | | Virtual File System JS Object Configuration |
18+
| checkForModifiedPagesAfterSecs | | How long to check backing VFS provider for changes |
19+
| defaultFileCacheExpirySecs | | How long to preserve static file caches for |
20+
| defaultUrlCacheExpirySecs | | How long to preserve URL caches for |
21+
| features | | List of plugins to load |
22+
| markdownProvider | MarkDig | Markdown provider: MarkdownDeep, Markdig |
23+
| jsMinifier | NUglify | JS Minifier: NUglify, ServiceStack |
24+
| cssMinifier | NUglify | CSS Minifier: NUglify, ServiceStack |
25+
| htmlMinifier | NUglify | HTML Minifier: NUglify, ServiceStack |
26+
| icon | favicon.ico | Relative or Absolute Path to Shortcut & Desktop icon |
27+
| appName | | Unique Id to identify Desktop App (snake-case) |
28+
| description | | Short Description of Desktop App (20-150 chars) |
29+
| tags | | Desktop App Tags space-delimited, snake-case, 3 max |
30+
| args.* | | Any additional rich config args to define in App |
31+
32+
Desktop specific Apps like [ServiceStack/Studio](https://github.com/ServiceStack/Studio) enable additional Desktop functionality by
33+
configuring the [DesktopFeature](https://github.com/ServiceStack/ServiceStack/blob/master/src/ServiceStack.Desktop/DesktopFeature.cs) plugin in
34+
[ServiceStack.Desktop](https://www.nuget.org/packages/ServiceStack.Desktop), e.g:
35+
36+
```csharp
37+
Plugins.Add(new DesktopFeature {
38+
// access role for Script, File & Download services
39+
AccessRole = Config.DebugMode
40+
? RoleNames.AllowAnon
41+
: RoleNames.Admin,
42+
ImportParams = { // app.settings you want auto-populated in your App
43+
"debug",
44+
"connect",
45+
},
46+
// Create a URL Scheme proxy rule for each registered site
47+
ProxyConfigs = sites.Keys.Map(baseUrl => new Uri(baseUrl))
48+
.Map(uri => new ProxyConfig {
49+
Scheme = uri.Scheme,
50+
TargetScheme = uri.Scheme,
51+
Domain = uri.Host,
52+
AllowCors = true,
53+
IgnoreHeaders = { "X-Frame-Options", "Content-Security-Policy" },
54+
})
55+
});
56+
```

0 commit comments

Comments
 (0)