<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://community.rws.com/cfs-file/__key/system/syndication/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US"><title type="html">Developer Blog</title><subtitle type="html" /><id>https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog/atom</id><link rel="alternate" type="text/html" href="https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog" /><link rel="self" type="application/atom+xml" href="https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog/atom" /><generator uri="http://telligent.com" version="12.1.4.25258">Telligent Community (Build: 12.1.4.25258)</generator><updated>2016-11-03T08:28:00Z</updated><entry><title>How To Install Tridion Docs Plugin Template</title><link rel="alternate" type="text/html" href="https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog/posts/how-to-install-tridion-docs-plugin-template" /><link rel="enclosure" type="text/html; charset=UTF-8" length="-1" href="https://justsayantan.wordpress.com/2021/05/28/how-to-install-tridion-docs-plugin-template/" /><id>https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog/posts/how-to-install-tridion-docs-plugin-template</id><published>2021-06-03T17:21:00Z</published><updated>2021-06-03T17:21:00Z</updated><content type="html">If you are wondering how to start with a Tridion Docs plugin from scratch? Then here is the solution &amp;ndash;
To make your life easy our experts have already created the Tridion Docs Publish template. This framework contains the basics to create your ...(&lt;a href="https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog/posts/how-to-install-tridion-docs-plugin-template"&gt;read more&lt;/a&gt;)&lt;img src="https://community.rws.com/aggbug?PostID=9641&amp;AppID=109&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</content><author><name>Sayantan Basu</name><uri>https://community.rws.com/members/sayantanbasu_5f00_1</uri></author><category term="docsplugin" scheme="https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog/archive/tags/docsplugin" /><category term="Plugin" scheme="https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog/archive/tags/Plugin" /><category term="publishplugin" scheme="https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog/archive/tags/publishplugin" /><category term="TridionDocs" scheme="https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog/archive/tags/TridionDocs" /></entry><entry><title>SDL Tridion Docs – HTML output customization - create DITA-OT plugin</title><link rel="alternate" type="text/html" href="https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog/posts/sdltridiondocshtmloutputcustomization" /><id>https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog/posts/sdltridiondocshtmloutputcustomization</id><published>2020-07-29T12:19:00Z</published><updated>2020-07-29T12:19:00Z</updated><content type="html">Objective
Need to customize HTML output when we publish a publication from Tridion Docs.
How to Do it
We need to create DITA-OT plugin which extends html5 plugin
Let&amp;rsquo;s do it
&amp;nbsp;
What we need is Tridion Docs installed on server 
And we should...(&lt;a href="https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog/posts/sdltridiondocshtmloutputcustomization"&gt;read more&lt;/a&gt;)&lt;img src="https://community.rws.com/aggbug?PostID=9146&amp;AppID=109&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</content><author><name>Neetesh Narvaria</name><uri>https://community.rws.com/members/neeteshnarvaria_5f00_1</uri></author><category term="DITA-OT" scheme="https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog/archive/tags/DITA_2D00_OT" /></entry><entry><title>[automation] ISHRemote 0.4 publicly available on www.powershellgallery.com</title><link rel="alternate" type="text/html" href="https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog/posts/automation-ishremote-0-4-publicly-available-on-www-powershellgallery-com" /><id>https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog/posts/automation-ishremote-0-4-publicly-available-on-www-powershellgallery-com</id><published>2017-04-24T11:31:00Z</published><updated>2017-04-24T11:31:00Z</updated><content type="html">&lt;p&gt;Introduction...&lt;/p&gt;
&lt;p style="color:#333333;font-family:Arial, sans-serif;font-size:14px;font-style:normal;font-weight:normal;letter-spacing:normal;margin:10px 0px 0px;text-align:left;text-indent:0px;text-transform:none;white-space:normal;"&gt;&lt;span style="color:#800000;"&gt;&lt;strong&gt;&amp;nbsp;All of the source code, issues, releases, milestones is all on&amp;nbsp;&lt;a style="color:#3572b0;text-decoration:none;" href="https://github.com/sdl/ISHRemote"&gt;&lt;span style="color:#800000;"&gt;https://github.com/sdl/ISHRemote&lt;/span&gt;&lt;/a&gt;&amp;nbsp;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="color:#333333;font-family:Arial, sans-serif;font-size:14px;font-style:normal;font-weight:normal;letter-spacing:normal;margin:10px 0px 0px;text-align:left;text-indent:0px;text-transform:none;white-space:normal;"&gt;ISHRemote is a business automation module on top of SDL Knowledge Center Content Manager (LiveContent Architect, Trisoft InfoShare).&lt;/p&gt;
&lt;p style="color:#333333;font-family:Arial, sans-serif;font-size:14px;font-style:normal;font-weight:normal;letter-spacing:normal;margin:10px 0px 0px;text-align:left;text-indent:0px;text-transform:none;white-space:normal;"&gt;Your first commands could look like&lt;/p&gt;
&lt;table class="wysiwyg-macro"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td class="wysiwyg-macro-body" style="background-color:#ffffff;border:1px solid #dddddd;cursor:text;margin:0px;padding:10px;white-space:pre-wrap;"&gt;
&lt;pre style="margin:0px;white-space:pre-wrap;"&gt;Install-Module ISHRemote -Repository PSGallery -Scope CurrentUser -Force&lt;/pre&gt;
&lt;pre style="margin:0px;white-space:pre-wrap;"&gt;$ishSession = New-IshSession -WsBaseUrl https://example.com/ISHWS/ -PSCredential Admin
$ishSession&lt;/pre&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style="color:#333333;font-family:Arial, sans-serif;font-size:14px;font-style:normal;font-weight:normal;letter-spacing:normal;margin:10px 0px 0px;text-align:left;text-indent:0px;text-transform:none;white-space:normal;"&gt;This library is a relatively thin client layer on top of the business API.&lt;/p&gt;
&lt;ul style="color:#333333;font-family:Arial, sans-serif;font-size:14px;font-style:normal;font-weight:normal;letter-spacing:normal;list-style-type:disc;margin:10px 0px 0px;text-align:left;text-indent:0px;text-transform:none;white-space:normal;"&gt;
&lt;li&gt;&lt;code style="font-family:monospace;"&gt;-WhatIf&lt;/code&gt;/&lt;code style="font-family:monospace;"&gt;-Confirm&lt;/code&gt;&amp;nbsp;are implemented on write operations.&lt;/li&gt;
&lt;li&gt;&lt;code style="font-family:monospace;"&gt;Add-*&lt;/code&gt;&amp;nbsp;cmdlets will immediately create objects in the CMS, and return you an in-memory result holding descriptive identifiers to continue the pipeline.&lt;/li&gt;
&lt;li&gt;&lt;code style="font-family:monospace;"&gt;Remove-*&lt;/code&gt;&amp;nbsp;cmdlets will not return any in-memory result.&lt;/li&gt;
&lt;li&gt;&lt;code style="font-family:monospace;"&gt;Set-*&lt;/code&gt;,&amp;nbsp;&lt;code style="font-family:monospace;"&gt;Move-*&lt;/code&gt;,&amp;nbsp;&lt;code style="font-family:monospace;"&gt;Publish-*&lt;/code&gt;&amp;nbsp;and&amp;nbsp;&lt;code style="font-family:monospace;"&gt;Stop-*&lt;/code&gt;&amp;nbsp;cmdlets will immediately update existing objects in the CMS, and return you an in-memory result holding descriptive identifiers to continue the pipeline. You cannot use&amp;nbsp;&lt;code style="font-family:monospace;"&gt;Set-*&lt;/code&gt;&amp;nbsp;for creation.&lt;/li&gt;
&lt;li&gt;&lt;code style="font-family:monospace;"&gt;New-*&lt;/code&gt;&amp;nbsp;cmdlets will create in-memory objects to locally update and then potentially pass to&amp;nbsp;&lt;code style="font-family:monospace;"&gt;Add-*&amp;nbsp;&lt;/code&gt;and&amp;nbsp;&lt;code style="font-family:monospace;"&gt;Set-*&lt;/code&gt;&amp;nbsp;cmdlets.&lt;/li&gt;
&lt;li&gt;&lt;code style="font-family:monospace;"&gt;Get-*&lt;/code&gt;&amp;nbsp;and&amp;nbsp;&lt;code style="font-family:monospace;"&gt;Find-*&lt;/code&gt;&amp;nbsp;cmdlets return existing objects present in the CMS, and return you an in-memory result holding descriptive identifiers to continue the pipeline.
&lt;ul style="list-style-type:disc;margin:0px;"&gt;
&lt;li&gt;The&amp;nbsp;&lt;code style="font-family:monospace;"&gt;Find-*&lt;/code&gt;&amp;nbsp;cmdlets was built on top of the API Find operation, which triggers a query to find all objects matching the filter criteria.&lt;/li&gt;
&lt;li&gt;The&amp;nbsp;&lt;code style="font-family:monospace;"&gt;Get-*&lt;/code&gt;&amp;nbsp;cmdlets was built on top of the API Retrieve/Get operations, which trigger a query given object identifiers and then potentially extra filter criteria.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Supports&amp;nbsp;&lt;code style="font-family:monospace;"&gt;Enable-ISHIntegrationSTSInternalAuthentication/Disable-ISHIntegrationSTSInternalAuthentication&lt;/code&gt;&amp;nbsp;as implemented by&amp;nbsp;&lt;a style="color:#3572b0;text-decoration:none;" href="https://sdl.github.io/#dita"&gt;ISHDeploy&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p style="color:#333333;font-family:Arial, sans-serif;font-size:14px;font-style:normal;font-weight:normal;letter-spacing:normal;margin:10px 0px 0px;text-align:left;text-indent:0px;text-transform:none;white-space:normal;"&gt;Other things worth mentioning&lt;/p&gt;
&lt;ul style="color:#333333;font-family:Arial, sans-serif;font-size:14px;font-style:normal;font-weight:normal;letter-spacing:normal;list-style-type:disc;margin:10px 0px 0px;text-align:left;text-indent:0px;text-transform:none;white-space:normal;"&gt;
&lt;li&gt;Developped Kojak/13.0.0&amp;nbsp;but will work on 2016/12.0.x and 2014/11.0.x&lt;/li&gt;
&lt;li&gt;A lot of Pester-based smoke tests, but probably not enough yet.&lt;/li&gt;
&lt;li&gt;&lt;code style="font-family:monospace;"&gt;New-IshSession&lt;/code&gt;&amp;nbsp;received optional switch&amp;nbsp;&lt;code style="font-family:monospace;"&gt;-IgnoreSslPolicyErrors&lt;/code&gt;. IgnoreSslPolicyErrors presence indicates that a custom callback will be assigned to&amp;nbsp;&lt;code style="font-family:monospace;"&gt;ServicePointManager.ServerCertificateValidationCallback&lt;/code&gt;. Defaults false of course, as this is creates security holes! But very handy for Fiddler usage though.&lt;/li&gt;
&lt;li&gt;Added&amp;nbsp;&lt;code style="font-family:monospace;"&gt;Get-IshTypeFieldDefinition&lt;/code&gt;&amp;nbsp;and&amp;nbsp;&lt;code style="font-family:monospace;"&gt;Compare-IshTypeFieldDefinition&lt;/code&gt;&amp;nbsp;as web service based alternative for TriDKXmlSetup Full Export, you can even compare setups.&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 style="color:#333333;font-family:Arial, sans-serif;font-size:24px;font-style:normal;font-weight:normal;letter-spacing:normal;line-height:1.25;margin:30px 0px 0px;text-align:left;text-indent:0px;text-transform:none;white-space:normal;"&gt;The one where we&amp;hellip;&lt;/h1&gt;
&lt;h2 style="color:#333333;font-family:Arial, sans-serif;font-size:20px;font-style:normal;font-weight:normal;letter-spacing:normal;line-height:1.5;margin:10px 0px 0px;text-align:left;text-indent:0px;text-transform:none;white-space:normal;"&gt;IshSession - New and Changed&lt;/h2&gt;
&lt;ul style="color:#333333;font-family:Arial, sans-serif;font-size:14px;font-style:normal;font-weight:normal;letter-spacing:normal;list-style-type:disc;margin:10px 0px 0px;text-align:left;text-indent:0px;text-transform:none;white-space:normal;"&gt;
&lt;li&gt;
&lt;p style="margin:0px;"&gt;Add&amp;nbsp;&lt;code style="font-family:monospace;"&gt;Test-IshSession&lt;/code&gt;&amp;nbsp;which wraps&amp;nbsp;&lt;code style="font-family:monospace;"&gt;New-IshSession&lt;/code&gt;&amp;nbsp;and its variation in a simple test resulting in $true or $false. On the side this is a simple cmdlet that checks if&amp;nbsp;&lt;code style="font-family:monospace;"&gt;ISHWS&lt;/code&gt;&amp;nbsp;and&amp;nbsp;&lt;code style="font-family:monospace;"&gt;ISHSTS&lt;/code&gt;&amp;nbsp;(or other STS) is up-and-running. Together with a simple&amp;nbsp;&lt;code style="font-family:monospace;"&gt;.ASP&lt;/code&gt;&amp;nbsp;call all FrontEnd services can be tested. [&lt;a class="issue-link js-issue-link" style="color:#3572b0;text-decoration:none;" href="https://github.com/sdl/ISHRemote/issues/12"&gt;#12&lt;/a&gt;]&lt;br /&gt;These lines of code activate and hence test the WebServices (ISHWS-activation), SecureTokenServices (ISHSTS-activation) and validates the credentials in the &amp;#39;InfoShare&amp;#39; database (ConnectionString-activation). The extra .ASP line triggers WebClient (ISHCM-activation) and the COM+ application (Trisoft-InfoShare-Author).&lt;/p&gt;
&lt;pre style="margin:10px 0px 0px;"&gt;&lt;code style="font-family:monospace;"&gt;  Test-IshSession -WsBaseUrl &amp;quot;https://example.com/ISHWS/&amp;quot; -IshUserName &amp;quot;admin&amp;quot; -IshPassword &amp;quot;admin&amp;quot; -IgnoreSslPolicyErrors -Verbose
  Invoke-WebRequest -Uri &amp;quot;https://example.com/ISHCM/InfoShareAuthor.asp&amp;quot; -UseBasicParsing
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 style="color:#333333;font-family:Arial, sans-serif;font-size:20px;font-style:normal;font-weight:normal;letter-spacing:normal;line-height:1.5;margin:30px 0px 0px;text-align:left;text-indent:0px;text-transform:none;white-space:normal;"&gt;IshBaseline - New and Changed&lt;/h2&gt;
&lt;ul style="color:#333333;font-family:Arial, sans-serif;font-size:14px;font-style:normal;font-weight:normal;letter-spacing:normal;list-style-type:disc;margin:10px 0px 0px;text-align:left;text-indent:0px;text-transform:none;white-space:normal;"&gt;
&lt;li&gt;Added CRUDF cmdlets for baseline handling. So introducing&amp;nbsp;&lt;code style="font-family:monospace;"&gt;Add-IshBaseline&lt;/code&gt;,&amp;nbsp;&lt;code style="font-family:monospace;"&gt;Get-IshBaseline&lt;/code&gt;,&amp;nbsp;&lt;code style="font-family:monospace;"&gt;Set-IshBaseline&lt;/code&gt;,&amp;nbsp;&lt;code style="font-family:monospace;"&gt;Remove-IshBaseline&lt;/code&gt;&amp;nbsp;and&amp;nbsp;&lt;code style="font-family:monospace;"&gt;Find-IshBaseline&lt;/code&gt;. Allowing you to retrieve you baselines, find the active/inactive ones and toggle their status. [&lt;a class="issue-link js-issue-link" style="color:#3572b0;text-decoration:none;" href="https://github.com/sdl/ISHRemote/issues/2"&gt;#2&lt;/a&gt;]&lt;/li&gt;
&lt;li&gt;Added CRUD cmdlets for baseline entry handling. [&lt;a class="issue-link js-issue-link" style="color:#3572b0;text-decoration:none;" href="https://github.com/sdl/ISHRemote/issues/2"&gt;#2&lt;/a&gt;]
&lt;ul style="list-style-type:disc;margin:0px;"&gt;
&lt;li&gt;Add&amp;nbsp;&lt;code style="font-family:monospace;"&gt;Get-IshBaselineItem&lt;/code&gt;&amp;nbsp;which allows you to see the versions of the saved baseline entries as you would see them in Publication Manager&lt;/li&gt;
&lt;li&gt;Add&amp;nbsp;&lt;code style="font-family:monospace;"&gt;Set-IshBaselineItem&lt;/code&gt;&amp;nbsp;which allows you to add and update existing baseline entries. So specifically set version for chosen content objects identified by LogicalId.&lt;/li&gt;
&lt;li&gt;Add&amp;nbsp;&lt;code style="font-family:monospace;"&gt;Remove-IshBaselineItem&lt;/code&gt;&amp;nbsp;which allows you to remove baselines entries of content objects identified by LogicalId.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 style="color:#333333;font-family:Arial, sans-serif;font-size:20px;font-style:normal;font-weight:normal;letter-spacing:normal;line-height:1.5;margin:30px 0px 0px;text-align:left;text-indent:0px;text-transform:none;white-space:normal;"&gt;More New and Changed&lt;/h2&gt;
&lt;ul style="color:#333333;font-family:Arial, sans-serif;font-size:14px;font-style:normal;font-weight:normal;letter-spacing:normal;list-style-type:disc;margin:10px 0px 0px;text-align:left;text-indent:0px;text-transform:none;white-space:normal;"&gt;
&lt;li&gt;&lt;code style="font-family:monospace;"&gt;New-IshSession&lt;/code&gt;&amp;nbsp;uses TLS, TLS11 and TSL12 security protocols. SSL3 is removed. Verified with&amp;nbsp;&lt;code style="font-family:monospace;"&gt;ELBSecurityPolicy-TLS-1-2-2017-01&lt;/code&gt;&amp;nbsp;[&lt;a class="issue-link js-issue-link" style="color:#3572b0;text-decoration:none;" href="https://github.com/sdl/ISHRemote/issues/5"&gt;#5&lt;/a&gt;]&lt;/li&gt;
&lt;li&gt;Add parameter argument completion for interactive usage.&amp;nbsp;&lt;code style="font-family:monospace;"&gt;IshTypeFieldDefinition&lt;/code&gt;&amp;nbsp;is now available on every&amp;nbsp;&lt;code style="font-family:monospace;"&gt;IshSession&lt;/code&gt;&amp;nbsp;because of&amp;nbsp;&lt;a class="issue-link js-issue-link" style="color:#3572b0;text-decoration:none;" href="https://github.com/sdl/ISHRemote/issues/3"&gt;#3&lt;/a&gt;. So why not use the field names on&amp;nbsp;&lt;code style="font-family:monospace;"&gt;...MetadataField&lt;/code&gt;&amp;nbsp;cmdlets and the available LOV on&amp;nbsp;&lt;code style="font-family:monospace;"&gt;...LovValue&lt;/code&gt;&amp;nbsp;cmdlets when a valid&amp;nbsp;&lt;code style="font-family:monospace;"&gt;-IshSession&lt;/code&gt;&amp;nbsp;is specified. [&lt;a class="issue-link js-issue-link" style="color:#3572b0;text-decoration:none;" href="https://github.com/sdl/ISHRemote/issues/11"&gt;#11&lt;/a&gt;]&lt;br /&gt;For example the last parameters get assistance by using&amp;nbsp;&lt;code style="font-family:monospace;"&gt;Ctrl-Space&lt;/code&gt;&amp;nbsp;or&amp;nbsp;&lt;code style="font-family:monospace;"&gt;Tab&lt;/code&gt;. Note however that a valid&amp;nbsp;&lt;code style="font-family:monospace;"&gt;$ishSession&lt;/code&gt;&amp;nbsp;needs to be available on the command line already.
&lt;ul style="list-style-type:disc;margin:0px;"&gt;
&lt;li&gt;&lt;code style="font-family:monospace;"&gt;Add-IshLovValue -IshSession $ishSession -LovId FirstLetterPlusCtrlSpace&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code style="font-family:monospace;"&gt;Set-IshMetadataField -IshSession $ishSession -Name FirstLetterPlusCtrlSpace&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code style="font-family:monospace;"&gt;Get-IshTypeFieldDefinition&lt;/code&gt;&amp;nbsp;should warn that custom fields will be missing. If you really want to load your custom fields setup, you can use the&amp;nbsp;&lt;code style="font-family:monospace;"&gt;-TriDKXmlSetupFilePath&lt;/code&gt;&amp;nbsp;parameter. (To get your TriDKXmlSetup file, you should execute C:\InfoShare\App\Database\Common\DatabaseIndependent\Examples\Full-Export\RunSetup.bat on the WebApp server). [&lt;a class="issue-link js-issue-link" style="color:#3572b0;text-decoration:none;" href="https://github.com/sdl/ISHRemote/issues/16"&gt;#16&lt;/a&gt;]
&lt;ol style="list-style-type:decimal;margin:0px;"&gt;
&lt;li&gt;When no&amp;nbsp;&lt;code style="font-family:monospace;"&gt;-IshSession&lt;/code&gt;&amp;nbsp;is provided, the highest local resource is loaded (in practice 12.0.0 standard fields)&lt;/li&gt;
&lt;li&gt;When an&amp;nbsp;&lt;code style="font-family:monospace;"&gt;-IshSession&lt;/code&gt;&amp;nbsp;is provided but target system is older than 13.0.0, the highest matching local resource is loaded (in practice 12.0.0 standard fields)&lt;/li&gt;
&lt;li&gt;When an&amp;nbsp;&lt;code style="font-family:monospace;"&gt;-IshSession&lt;/code&gt;&amp;nbsp;is provided but target system is 13.0.0 or higher. The Settings25.RetrieveFieldSetupByIshType API call is used, which includes standard and custom fields.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Tuned&amp;nbsp;&lt;code style="font-family:monospace;"&gt;Get-IshTimeZone&lt;/code&gt;&amp;nbsp;(without&amp;nbsp;&lt;code style="font-family:monospace;"&gt;-Count&lt;/code&gt;&amp;nbsp;parameter) rendering the application server information like timezone, utc-offset and daylight-savings-time. This allows easy load balancer testing. [&lt;a class="issue-link js-issue-link" style="color:#3572b0;text-decoration:none;" href="https://github.com/sdl/ISHRemote/issues/13"&gt;#13&lt;/a&gt;]&lt;/li&gt;
&lt;li&gt;The API doesn&amp;#39;t allow all fields on the various Create/Read/Update/Delete/Find actions. For example providing a PASSWORD for a user is fine upon Create, but it is not allowed during Read operations. There are many more of these fields where system behavior or business rules are attached. [&lt;a class="issue-link js-issue-link" style="color:#3572b0;text-decoration:none;" href="https://github.com/sdl/ISHRemote/issues/4"&gt;#4&lt;/a&gt;]
&lt;ul style="list-style-type:disc;margin:0px;"&gt;
&lt;li&gt;In the past these were hard coded. Now they are routed over the IshTypeFieldSetup class which on 2016/12.0.x and earlier can be initialized by the implicit default or custom TriDKXmlSetup file or starting from Kojak/13.0.0 there is a new Settings25.RetrieveFieldSetupByIshType API call. Remember cmdlets&amp;nbsp;&lt;code style="font-family:monospace;"&gt;Get-IshTypeFieldDefinition&lt;/code&gt;&amp;nbsp;and&amp;nbsp;&lt;code style="font-family:monospace;"&gt;Compare-IshTypeFieldDefinition&lt;/code&gt;&amp;nbsp;available since 0.3&lt;/li&gt;
&lt;li&gt;The ISHRemote client library protects you by default, but if you want to trigger API errors by specifying IShSession.StrictMetadataPreference inspired by $DebugPreference with similar values
&lt;ul style="list-style-type:disc;margin:0px;"&gt;
&lt;li&gt;&lt;em&gt;SilentlyContinue&lt;/em&gt;&amp;nbsp;Client-side silent filtering of nonexisting and unallowed fields. (e.g Nice for repository folder syncing with mismatching metadata setup)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Continue&lt;/em&gt;&amp;nbsp;Client-side filtering of nonexisting and unallowed fields displaying a Write-Verbose message but still continues. Default for 13.0.0 as Settings25.RetrieveFieldSetupByIshType API is available.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Off&lt;/em&gt;&amp;nbsp;Client-side filtering of nonexisting and unallowed fields is turned off. No handling but simply executes the API call, most likely resulting in a Write-Error. This allows api/pester tests like IshUser PASSWORD field should not allowed to be read. Default for 11.0.x and 12.0.x.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code style="font-family:monospace;"&gt;Set-IshMetadataField&lt;/code&gt;&amp;nbsp;that creates metadata fields for&amp;nbsp;&lt;code style="font-family:monospace;"&gt;Add-*&lt;/code&gt;/&lt;code style="font-family:monospace;"&gt;Set-*&lt;/code&gt;&amp;nbsp;cmdlets (Create/Update calls) now removes all value type variations of a field from the collection when adding a new. For example when the collection contains FAUTHOR=VUSERADMIN, a&amp;nbsp;&lt;code style="font-family:monospace;"&gt;Set-IshMetadataField&lt;/code&gt;&amp;nbsp;FAUTHOR=Admin will remove the previous&amp;nbsp;&lt;code style="font-family:monospace;"&gt;Element&lt;/code&gt;&amp;nbsp;value type and add the&amp;nbsp;&lt;code style="font-family:monospace;"&gt;Value&lt;/code&gt;&amp;nbsp;value type. [&lt;a class="issue-link js-issue-link" style="color:#3572b0;text-decoration:none;" href="https://github.com/sdl/ISHRemote/issues/14"&gt;#14&lt;/a&gt;]&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 style="color:#333333;font-family:Arial, sans-serif;font-size:20px;font-style:normal;font-weight:normal;letter-spacing:normal;line-height:1.5;margin:30px 0px 0px;text-align:left;text-indent:0px;text-transform:none;white-space:normal;"&gt;Housekeeping&lt;/h2&gt;
&lt;ul style="color:#333333;font-family:Arial, sans-serif;font-size:14px;font-style:normal;font-weight:normal;letter-spacing:normal;list-style-type:disc;margin:10px 0px 0px;text-align:left;text-indent:0px;text-transform:none;white-space:normal;"&gt;
&lt;li&gt;It should be easier to compile the project. Refreshed all ServiceReferences to Kojak/13.0.2803.0 test build and normalized to&amp;nbsp;&lt;a style="color:#3572b0;text-decoration:none;" href="https://ish.example.com/ISHWS/"&gt;https://ish.example.com/ISHWS/&lt;/a&gt;&amp;nbsp;including STS urls in http and https flavours. Tuned manifest generator. Code Drift, aligning with legacy Trisoft.Automation module changes for Kojak/13.0.0 (inc up to C59893) [&lt;a class="issue-link js-issue-link" style="color:#3572b0;text-decoration:none;" href="https://github.com/sdl/ISHRemote/issues/7"&gt;#7&lt;/a&gt;|&lt;a class="issue-link js-issue-link" style="color:#3572b0;text-decoration:none;" href="https://github.com/sdl/ISHRemote/issues/1"&gt;#1&lt;/a&gt;]&lt;/li&gt;
&lt;li&gt;Added more Pester Tests, current count is&amp;nbsp;&lt;code style="font-family:monospace;"&gt;Passed: 497 Failed: 0 Skipped: 2 Pending: 0 Inconclusive: 0&amp;nbsp;&lt;/code&gt;where the skipped are about SslPolicyErrors testing.&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 style="color:#333333;font-family:Arial, sans-serif;font-size:24px;font-style:normal;font-weight:normal;letter-spacing:normal;line-height:1.25;margin:30px 0px 0px;text-align:left;text-indent:0px;text-transform:none;white-space:normal;"&gt;Feedback...&lt;/h1&gt;
&lt;p style="color:#333333;font-family:Arial, sans-serif;font-size:14px;font-style:normal;font-weight:normal;letter-spacing:normal;margin:10px 0px 0px;text-align:left;text-indent:0px;text-transform:none;white-space:normal;"&gt;Any feedback is welcome. As a comment here, in an email. What do you like, what are you missing, etc&lt;/p&gt;
&lt;p style="color:#333333;font-family:Arial, sans-serif;font-size:14px;font-style:normal;font-weight:normal;letter-spacing:normal;margin:10px 0px 0px;text-align:left;text-indent:0px;text-transform:none;white-space:normal;"&gt;Please log a GitHub issue, make sure you submit your version number, expected and current result,...&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="https://community.rws.com/aggbug?PostID=6781&amp;AppID=109&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</content><author><name>Dave De Meyer</name><uri>https://community.rws.com/members/ddemeyer</uri></author><category term="LiveContent" scheme="https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog/archive/tags/LiveContent" /><category term="Knowledge Center" scheme="https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog/archive/tags/Knowledge%2bCenter" /><category term="Automation" scheme="https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog/archive/tags/Automation" /><category term="ISHRemote" scheme="https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog/archive/tags/ISHRemote" /></entry><entry><title>New versions for ISHServer v1.5 and ISHBootstrap v1.0</title><link rel="alternate" type="text/html" href="https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog/posts/new-versions-for-ishserver-v1-5-and-ishbootstrap-v1-0" /><id>https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog/posts/new-versions-for-ishserver-v1-5-and-ishbootstrap-v1-0</id><published>2017-04-20T07:00:00Z</published><updated>2017-04-20T07:00:00Z</updated><content type="html">&lt;p&gt;This post is copied from &lt;a href="https://sarafian.github.io/sdl/knowledge-center/content-manager/2017/04/19/ishserver-1.5-ishbootstrap-1.0.html"&gt;New versions for ISHServer v1.5 and ISHBootstrap v1.0&lt;/a&gt;.&amp;nbsp;Support for Amazon Machine Image (AMI), Docker containers, Vagrant Boxes and many more.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 id="background"&gt;Background&lt;/h2&gt;
&lt;figure&gt;&lt;a href="/cfs-file/__key/communityserver-blogs-components-weblogfiles/00-00-00-01-09/pastedimage1492671622857v1.png"&gt;&lt;img alt=" " src="/resized-image/__size/320x240/__key/communityserver-blogs-components-weblogfiles/00-00-00-01-09/pastedimage1492671622857v1.png" /&gt;&lt;/a&gt;
&lt;figcaption&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;For those encountering the terms ISHServer and ISHBootstrap for the first time, they are automation modules for &lt;strong&gt;SDL&amp;rsquo;s Knowledge Center Content Manager&lt;/strong&gt; also identified with the code name &lt;strong&gt;ISH&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id="ishserver"&gt;ISHServer&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://github.com/Sarafian/ISHServer"&gt;ISHServer&lt;/a&gt; started initially as a &lt;a href="https://sarafian.github.io/sdl/knowledge-center/content-manager/2017/04/19/www.powershellgallery.com/packages/ISHServer.12/"&gt;PowerShell module&lt;/a&gt; that offered cmdlets that aligned with the steps required to prepare a Windows Server for the installation of Content Manager (ISH). This process is discussed in the official documentation and has proven to be error prone. Initially it was part of &lt;a href="https://github.com/Sarafian/ISHBootstrap"&gt;ISHBootstrap&lt;/a&gt; but it was separated, as ISHServer has a more generic purpose and can be used by anyone even without ISHBootstrap. Overtime, ISHServer extended beyond the simple task of automating the pre-requisites installation and server configuration.&lt;/p&gt;
&lt;h3 id="ishbootstrap"&gt;ISHBootstrap&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://github.com/Sarafian/ISHBootstrap"&gt;ISHBootstrap&lt;/a&gt; is a PowerShell script library that drives the flow. It has the ability to bootstrap a clean Windows Server instance into a fully operational server with Content Manager (ISH) deployments. The supported operating systems are Windows Server 2012R2 and 2016. The bootstrapping can be executed locally or against a remote server using Windows remoting. ISHBootstrap has embedded an examples directory to showcase how the complete process could be represented and executed by a json file, but keep in mind that this is just an example. By default the instance of Content Manager has zero configuration applied to it, a state that is also known as the &lt;strong&gt;Vanilla&lt;/strong&gt; deployment. The examples folder in ISHBootstrap offer a collection of &lt;a href="https://www.powershellgallery.com/items?q=ISHDeploy&amp;amp;x=22&amp;amp;y=15"&gt;ISHDeploy&lt;/a&gt; scripts that showcase certain configuration examples using scripts that use &lt;a href="https://www.powershellgallery.com/items?q=ISHDeploy&amp;amp;x=22&amp;amp;y=15"&gt;ISHDeploy&lt;/a&gt; cmdlets. In general, ISHBootstrap scripts are a very good example of how to use ISHServer cmdlets. Although disconnected, I would advice always to use ISHBootstrap over ISHServer.&lt;/p&gt;
&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;figure&gt;&lt;a href="/cfs-file/__key/communityserver-blogs-components-weblogfiles/00-00-00-01-09/pastedimage1492671622858v2.png"&gt;&lt;img alt=" " src="/resized-image/__size/320x240/__key/communityserver-blogs-components-weblogfiles/00-00-00-01-09/pastedimage1492671622858v2.png" /&gt;&lt;/a&gt;
&lt;figcaption&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;The main mission of ISHServer has been accomplished since its first stable version. Usually all enhancements to the module are in favour of supporting enhancements for ISHBootstrap when the functionality is considered generic enough. With the latest version of 1.5 those additional features are summarized as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Support for FTP, Amazon S3, Azure Blob and File storage as source for the dependencies, ISH CD and AntennaHouse license.&lt;/li&gt;
&lt;li&gt;Create, update and initialize the user account that is used for Content Manager&amp;rsquo;s processes.&lt;/li&gt;
&lt;li&gt;Download and expand the Content Manager CD in a consistent manner.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All above features are developed to support execution under the following conditions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Local administrator.&lt;/li&gt;
&lt;li&gt;Windows Remoting. This is important because &lt;a href="https://packer.io/"&gt;packer&lt;/a&gt; uses windows remoting to provision scripts while initializing an Amazon AMI or an Hyper-V instance.&lt;/li&gt;
&lt;li&gt;Local SYSTEM account. This is important because for Amazon EC2 instances, both the &lt;strong&gt;userdata&lt;/strong&gt; and &lt;a href="https://aws.amazon.com/codedeploy/"&gt;CodeDeploy&lt;/a&gt; execute under the SYSTEM account and this really complicates things a lot. I&amp;rsquo;ll try to make a post about the difficulties we faced when executing under the SYSTEM account.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ISHBootstrap had always the ability to prepare an operating system with a fully operational Content Manager. With the first stable version 1.0, ISHBootstrap is now able to do something slightly different but very important. It can prepare a Windows Server instance with an &lt;em&gt;almost ready&lt;/em&gt; Vanilla deployment.&lt;/p&gt;
&lt;figure&gt;&lt;a href="/cfs-file/__key/communityserver-blogs-components-weblogfiles/00-00-00-01-09/pastedimage1492671622858v3.jpeg"&gt;&lt;img alt=" " src="/resized-image/__size/320x240/__key/communityserver-blogs-components-weblogfiles/00-00-00-01-09/pastedimage1492671622858v3.jpeg" /&gt;&lt;/a&gt;
&lt;figcaption&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;What is an &lt;em&gt;almost ready&lt;/em&gt; Vanilla deployment?&lt;/p&gt;
&lt;p&gt;The last step of installing Content Manager takes around 5-6 minutes alone. We also need to consider that the installer was not build for producing a deployment that just needs a couple of parameters to very &lt;strong&gt;quickly&lt;/strong&gt; become operational but it always approached the problem as from zero to all. But when working with cloud services and containers that is not acceptable. Imagine a docker container that takes 5-6 minutes to run, because it needs to install Content Manager first. Same concept applies for cloud and vagrant boxes. You need something that is ready to launch as quick as possible. In my experience the containers technology is the best advocate of this concept. For example Microsoft&amp;rsquo;s SQL Server container image, is in kind of &lt;em&gt;almost&lt;/em&gt; ready state because the services are not running, the sa password is not set and only the master database is available. It is the job of the initialization script to fill in this gaps and provide an operational SQL Server as part of the container&amp;rsquo;s run step. Imagine the container installing SQL Server when running. Imagine the delay. This is exactly what we want to avoid with Content Manager. They are both fairly complicated products to install with a time consuming installation process, that we don&amp;rsquo;t want to spend every time we want to run the instance.&lt;/p&gt;
&lt;p&gt;To solve this problem, ISHBootstrap introduces the &lt;strong&gt;Builder&lt;/strong&gt; concept. The builder concept works around the limitations of the installer of Content Manager by producing a reusable template of one Content Manager deployment, that previous was referred to as &lt;em&gt;almost ready&lt;/em&gt;. It actually mocks temporarily certain dependencies to allow Content Manager&amp;rsquo;s installer to execute and then clears them out. At this point the deployment is inoperable just because the mocked dependencies used are already cleared out. To turn this non-operational deployment into a operational one, a script is provided that will replace the mocked values. This last step could be considered as the &lt;em&gt;run&lt;/em&gt; step of this &lt;em&gt;almost ready&lt;/em&gt; artifact. The process is very similar to the sql server image but is not restricted to docker containers only.&lt;/p&gt;
&lt;p&gt;The produced artifact can one of the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Amazon Machine Image (AMI). An AMI can be used to spin up an Amazon EC2, that is a Virtual Machine. As the AMI includes all the time consuming process, the EC2 instance is ready for use in the least possible amount of time.&lt;/li&gt;
&lt;li&gt;Vagrant Box on top of Hyper-V. A Vagrant Box can spin up virtual machines for any host. As the box includes all the time consuming process, the VM instance is ready for use in the least possible amount of time.&lt;/li&gt;
&lt;li&gt;Docker Container. &lt;strong&gt;This is for experimentation and learning process&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Each of this types of artifacts is ready to become operational by providing the following parameters&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A db connections string.&lt;/li&gt;
&lt;li&gt;A user to run Content Manager processes, known also as the &lt;strong&gt;osuser&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;A hostname.&lt;/li&gt;
&lt;li&gt;A valid certificate for the hostname.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The builder concept goes even one step further and can embed a local sql server express in the artifact. This is not meant for production purposes but if you want to quickly spin up an SDL Knowledge Center instance as a Hyper-V VM, or Amazon EC2 or a container, then you don&amp;rsquo;t have to worry about the external dependency to a database server. It&amp;rsquo;s already ready and executing. I&amp;rsquo;m actually looking for ideas to reduce dependency to the rest of the parameters for this use case. For example hard-code the osuser&amp;rsquo;s credentials.&lt;/p&gt;
&lt;p&gt;Unfortunately this is not yet possible for the Vagrant boxes because we are facing problems installing the database as part of the packer provisioning process. Luckily, very good workarounds exist for AMIs and containers. Amazon offers windows AMIs with SQL Server Express already installed and for containers, I&amp;rsquo;ve created this &lt;a href="https://hub.docker.com/r/asarafian/mssql-server-windows-express/"&gt;asarafian/mssql-server-windows-express:2014SP2&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Before I mentioned that the container variant is not to be used in production because Content Manager needs to go under some core architecture changes to become more container friendly. It&amp;rsquo;s not that it won&amp;rsquo;t work as far as ISHBootstrap is concerned but ISHBootstrap cannot and will not amend any core product limitations. As with everything, try it out but if you productize it, then the risk is yours.&lt;/p&gt;
&lt;p class="notice--info"&gt;With that in mind, I find containers an amazing learning tool. The docker team, has actually solidified the concept of image and instance but more importantly they fully support inheritance between the containers. This means, anyone can use as starting point a container that someone else has created. As such, a Content Manager image would be an excellent starting point to create customized images ready to run. To be fair, Amazon had already achieved this with the Amazon Machine Image technology but it&amp;rsquo;s still virtual machine technology based and kind of dirty. As far as I know packer and vagrant don&amp;rsquo;t support this model and this is the reason there isn&amp;rsquo;t yet the ability to produce a vagrant box with SQL Server embedded.&lt;/p&gt;
&lt;h2 id="the-business-case-driving-the-features"&gt;The business case driving the features&lt;/h2&gt;
&lt;figure&gt;&lt;a href="/cfs-file/__key/communityserver-blogs-components-weblogfiles/00-00-00-01-09/pastedimage1492671622859v4.png"&gt;&lt;img alt=" " src="/resized-image/__size/320x240/__key/communityserver-blogs-components-weblogfiles/00-00-00-01-09/pastedimage1492671622859v4.png" /&gt;&lt;/a&gt;
&lt;figcaption&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;SDL is moving to the Amazon for various reasons and there &lt;strong&gt;can&amp;rsquo;t&lt;/strong&gt; be any cloud without full automation. During the last year, I&amp;rsquo;m driving the DEVOPS angle for Knowledge Center by making sure that we (the engineering team) produce the necessary tooling for automation such as &lt;a href="https://sarafian.github.io/tags/#ishdeploy"&gt;ISHDeploy&lt;/a&gt;, ISHServer and ISHBootstrap. My colleague &lt;a href="https://github.com/ddemeyer"&gt;Dave De Meyer&lt;/a&gt;, is also pushing the &lt;a href="https://github.com/sdl/ISHRemote"&gt;ISHRemote&lt;/a&gt; PowerShell module. Although DEVOPS is focused on operations, I&amp;rsquo;m a believer that DEVOPS should be a mental approach embraced by all software engineers involved. It should be a discipline of &amp;ldquo;Automate as much as possible&amp;rdquo;. For this reason, the automation toolkits are not specific only to DEVOPS nor to a specific cloud provider and can be used by anyone to improve the interaction with a Content Manager deployment. The main goal is to help everyone improve their interaction with Content Manager by automating the uninteresting and error-prone steps. Therefore, I think that a ready to launch deployment is a great offering.&lt;/p&gt;
&lt;p&gt;Concepts such as containers, AMIs and Vagrant Boxes can become the deliverable and replace the old fashioned CD that as an approach is too error prone. Instead a ready to execute artifact has much less chances to go wrong.&lt;/p&gt;
&lt;p&gt;As SDL is moving to Amazon, we need to build AMIs that allow the creation of a cloud formation stack within a reasonable amount of time. ISHBootstrap&amp;rsquo;s codebase is the main engine for SDL&amp;rsquo;s AMI builder process. The only difference is that here at SDL we want to hard wire certain dependencies for ISHBootstrap and Content Manager where ISHBootstrap uses the latest and greatest.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ll provide some rough numbers to understand the significance of having a ready to launch template such as an AMI, Vagrant Box or docker container. The following table presents the amount of time in minutes required to get an operational Content Manager deployment with and without the builder concept.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Platform&lt;/th&gt;
&lt;th&gt;Host type&lt;/th&gt;
&lt;th&gt;Full ISHBootstrap&lt;/th&gt;
&lt;th&gt;Template Type&lt;/th&gt;
&lt;th&gt;From Template&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Amazon&lt;/td&gt;
&lt;td&gt;EC2&lt;/td&gt;
&lt;td&gt;45 minutes&lt;/td&gt;
&lt;td&gt;AMI&lt;/td&gt;
&lt;td&gt;10 minutes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Docker&lt;/td&gt;
&lt;td&gt;Container&lt;/td&gt;
&lt;td&gt;30 minutes&lt;/td&gt;
&lt;td&gt;Image&lt;/td&gt;
&lt;td&gt;1 minute&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vagrant&lt;/td&gt;
&lt;td&gt;Hyper-V&lt;/td&gt;
&lt;td&gt;45 minutes (*)&lt;/td&gt;
&lt;td&gt;Vagrant Box&lt;/td&gt;
&lt;td&gt;5 minutes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;figure&gt;&lt;a href="/cfs-file/__key/communityserver-blogs-components-weblogfiles/00-00-00-01-09/pastedimage1492671622859v5.jpeg"&gt;&lt;img alt=" " src="/resized-image/__size/320x240/__key/communityserver-blogs-components-weblogfiles/00-00-00-01-09/pastedimage1492671622859v5.jpeg" /&gt;&lt;/a&gt;
&lt;figcaption&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p class="notice--info"&gt;(*) Both with Amazon and Docker, we usually get the operating system with all the latest updates. But with Hyper-V that is not true. Installing the latest windows updates on Windows Server 2016 takes an additional of 1 hour minimum. That is a &lt;strong&gt;lot of time&lt;/strong&gt; to waste if you ask me.&lt;/p&gt;
&lt;p class="notice--danger"&gt;Sadly at the moment of writing this post, the containers are not fully tested. They build just fine but something during the run step does not allow them be become operational. This is probably because the necessary parameters required are too many and a mix of filesystem and in memory variables. The reason this didn&amp;rsquo;t stop us from releasing is because containers have an experimental and learning purpose and therefore a lower and non-blocking priority.&lt;/p&gt;
&lt;h2 id="start-using-ishbootstrap---get-in-touch-with-your-sdl-liaison"&gt;Start using ISHBootstrap - Get in touch with your SDL liaison.&lt;/h2&gt;
&lt;p&gt;Some basic documentation is available on ISHBootstrap&amp;rsquo;s &lt;a href="https://github.com/Sarafian/ISHBootstrap/tree/master/Tutorials"&gt;tutorials&lt;/a&gt; section. The main limitation is that the server dependencies for Content Manager and the CD itself are not freely accessible to everyone. If you want to get access to these files, then you need to address your SDL contact. Although the dependencies can become public, the current policy of SDL restricts the CD of becoming one. For this reason using ISHBootstrap requires some initial alignment with your SDL liaison.&lt;/p&gt;
&lt;p class="notice--info"&gt;For the same reason any artifact such as an AMI, Docker container or Vagrant box will not be published as it implicitly contains the above. Instead, you will have to build them using your provided access.&lt;/p&gt;
&lt;h2 id="extending-your-deliverable"&gt;Extending your deliverable&lt;/h2&gt;
&lt;p&gt;As with containers, the generated artifact can be extended and modified in composition. For SDL&amp;rsquo;s cloud, we actually do this but the core implementation is common and resides in ISHBootstrap. In the same manner, you can extend the process to produce your own customized AMIs, docker containers or Vagrant boxes.&lt;/p&gt;
&lt;p class="notice--success"&gt;ISHBootstrap and ISHServer we&amp;rsquo;ll do the heavy lifting and you just need to add the extra magic afterwards.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="https://community.rws.com/aggbug?PostID=6768&amp;AppID=109&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</content><author><name>Alex Sarafian</name><uri>https://community.rws.com/members/alexsarafian</uri></author><category term="Automation" scheme="https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog/archive/tags/Automation" /><category term="ISHBootstrap" scheme="https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog/archive/tags/ISHBootstrap" /><category term="ISHServer" scheme="https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog/archive/tags/ISHServer" /></entry><entry><title>Released ISHDeploy Powershell module version 1.3  for code as configuration</title><link rel="alternate" type="text/html" href="https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog/posts/released-ishdeploy-powershell-module-version-1-3-for-code-as-configuration" /><id>https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog/posts/released-ishdeploy-powershell-module-version-1-3-for-code-as-configuration</id><published>2017-04-18T07:27:00Z</published><updated>2017-04-18T07:27:00Z</updated><content type="html">&lt;p&gt;Please refer to &lt;a href="/solutions/content-management/knowledge-center/knowledgecenter-developers/b/knowledge_center_developer_blog/posts/ishdeploy-powershell-module-for-code-as-configuration-is-now-on-version-1-2"&gt;previous release announcement&lt;/a&gt; for some background information regarding ISHDeploy.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;With this new version, ISHDeploy helps configure and control the state of the Translation Services. All cmdlets are fully documented online and code oriented tutorials are also provided.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Integrating translation jobs with SDL World Server.&lt;/li&gt;
&lt;li&gt;Integrating translation jobs with SDL TMS.&lt;/li&gt;
&lt;li&gt;Exporting translation jobs to the file system.&lt;/li&gt;
&lt;li&gt;Configuring the services.&lt;/li&gt;
&lt;li&gt;Scaling the services.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;With the new release, the following modules are available in PowerShell Gallery for the respected versions of Knowledge Center&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ISHDeploy.12.0.0 for Knowledge Center 2016 Content Manager&lt;/li&gt;
&lt;li&gt;ISHDeploy.12.0.1 for Knowledge Center 2016 SP1 Content Manager&lt;/li&gt;
&lt;li&gt;ISHDeploy.12.0.3 for Knowledge Center 2016 SP3 Content Manager&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;More detailed release notes are available online at&amp;nbsp;&lt;a href="https://sdl.github.io/ISHDeploy/12.0.3/"&gt;https://sdl.github.io/ISHDeploy/12.0.3/&lt;/a&gt;. If you are using a previous release, please refer to the &lt;a href="http://sdl.github.io/#dita"&gt;main overview section&lt;/a&gt;&amp;nbsp;of SDL&amp;#39;s open source initiatives.&amp;nbsp;A list&amp;nbsp;of all modules on PowerShell gallery is&amp;nbsp;available with this&amp;nbsp;&lt;a href="http://www.powershellgallery.com/items?q=ISHDeploy&amp;amp;x=0&amp;amp;y=0"&gt;query&lt;/a&gt;.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="https://community.rws.com/aggbug?PostID=6752&amp;AppID=109&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</content><author><name>Alex Sarafian</name><uri>https://community.rws.com/members/alexsarafian</uri></author><category term="ISHDeploy" scheme="https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog/archive/tags/ISHDeploy" /></entry><entry><title>New release versions for ISHServer (v1.1) and ISHBootstrap (v0.7)</title><link rel="alternate" type="text/html" href="https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog/posts/new-release-versions-for-ishserver-v1-1-and-ishbootstrap-v0-7" /><id>https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog/posts/new-release-versions-for-ishserver-v1-1-and-ishbootstrap-v0-7</id><published>2017-02-06T14:08:00Z</published><updated>2017-02-06T14:08:00Z</updated><content type="html">&lt;p&gt;Following &lt;a href="/members/frankclosset"&gt;Frank Closset &lt;/a&gt;&amp;nbsp;announcement &lt;a href="/solutions/content-management/knowledge-center/knowledgecenter-developers/b/knowledge_center_developer_blog/posts/did-you-know-we-are-working-on-powershell-automation-libraries"&gt;Did you know&amp;hellip; we are working on PowerShell automation libraries&lt;/a&gt;&amp;nbsp;that we are working on PowerShell automation toolkits I would like to share with everyone the availability of new versions for ISHServer and ISHBootstrap.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ISHServer v1.1&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;ISHServer is powershell module that automated the preparation of a clean Windows Server operating system.&lt;/p&gt;
&lt;p&gt;Currently only &lt;a href="https://www.powershellgallery.com/packages/ISHServer.12/"&gt;ISHServer.12&lt;/a&gt; is available in the PowerShell gallery to align with SDL Knowledge Center 2016 releases for Content Manager.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;This module has been available for sometime already but the new version 1.1 adds two new interesting options:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Support for Amazon AWS S3 buckets for&amp;nbsp;the files it depends on. That is for the cmdlets that download the Prerequisites, the CD and the AntennaHouse license. The functionality was already present for FTP sources.&lt;/li&gt;
&lt;li&gt;Support for the provisioning of the Content Manager (ISH) CD. This is brand new. Get-ISHCD is the cmdlet to look into.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;ISHBootstrap v0.7&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;https://github.com/Sarafian/ISHBootstrap&lt;a href="https://github.com/Sarafian/ISHBootstrap"&gt;ISHBootstrap&lt;/a&gt; offers the tooling&amp;nbsp;for an end to end SDL Knowledge Center deployment. It depends on ISHServer but it does so much more.&lt;/p&gt;
&lt;p&gt;- For systems with PowerShell version 4, it will install the necessary components for PackageManagement.&lt;/p&gt;
&lt;p&gt;- Install the necessary powershell modules. e.g. ISHServer and ISHDeploy depending on the version.&lt;/p&gt;
&lt;p&gt;- Install the prerequisites and run the server&amp;#39;s configuration&lt;/p&gt;
&lt;p&gt;- Download and expand the CD&lt;/p&gt;
&lt;p&gt;- Install the CD&lt;/p&gt;
&lt;p&gt;- Run the ISHDeploy configuration scripts&lt;/p&gt;
&lt;p&gt;All the above are &amp;quot;remoting&amp;quot; enabled and can be executed locally or while targeting a remote computer.&lt;/p&gt;
&lt;p&gt;Also, each step is backed by one or more scripts so the ISHBootstrap provides the necessary level of granularity for anyone to build a his own orchestration. That can be Chef, AWS cloud formation and code commit, Azure, Puppet Vagrant etc&lt;/p&gt;
&lt;p&gt;ISHBootstrap comes with a small orchestration example repository that is powered by a JSON file. There is a &lt;a href="https://github.com/Sarafian/ISHBootstrap/blob/master/Tutorials/How%20to%20use%20the%20repository%20(Examples).md"&gt;How to use the repository (Examples)&lt;/a&gt;&amp;nbsp;tutorial.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ISHBootstrapDemo&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If you want to do a quick demo dry run then take a look at the &lt;a href="https://github.com/Sarafian/ISHBootstrapDemo"&gt;ISHBootstrapDemo&lt;/a&gt;. I created this repository just before the SDL Connect summit to showcase how easy it is to fully bootstrap an empty Operating System. The repository has an embedded &lt;a href="https://github.com/Sarafian/ISHBootstrapDemo/blob/master/ISHBootstrap.json"&gt;JSON &lt;/a&gt;file that shows has simple it is. Please take notice that the example is based on SDL&amp;#39;s ftp and you will need to provide you ftp credential. Also, there is an expected structure on the FTP server that is not currently available for all FTP accounts. Please ask your support engineer to make the necessary artifacts available for your account also.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="https://community.rws.com/aggbug?PostID=6292&amp;AppID=109&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</content><author><name>Alex Sarafian</name><uri>https://community.rws.com/members/alexsarafian</uri></author><category term="Knowledge Center" scheme="https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog/archive/tags/Knowledge%2bCenter" /><category term="Automation" scheme="https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog/archive/tags/Automation" /><category term="ISHBootstrap" scheme="https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog/archive/tags/ISHBootstrap" /><category term="PowerShell" scheme="https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog/archive/tags/PowerShell" /><category term="ISHServer" scheme="https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog/archive/tags/ISHServer" /><category term="ISHDeploy" scheme="https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog/archive/tags/ISHDeploy" /><category term="Trisoft" scheme="https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog/archive/tags/Trisoft" /><category term="Open Source" scheme="https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog/archive/tags/Open%2bSource" /></entry><entry><title>Did you know… we are working on PowerShell automation libraries</title><link rel="alternate" type="text/html" href="https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog/posts/did-you-know-we-are-working-on-powershell-automation-libraries" /><id>https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog/posts/did-you-know-we-are-working-on-powershell-automation-libraries</id><published>2016-12-15T16:54:00Z</published><updated>2016-12-15T16:54:00Z</updated><content type="html">&lt;p&gt;People, by nature, don&amp;rsquo;t like repetitive tasks. Even worse repetitive tasks will often lead to humans making mistakes: someone forgets to copy a file, someone forgets to set a setting. To manage growth and taking cost out while managing your IT landscape, automation will be key. It will improve accountability, efficiency and predictability, while reducing cost, variability and risk.&lt;/p&gt;
&lt;p&gt;Our team has been working hard on a number of libraries to help our customers automate and manage deployments of SDL Knowledge Center. The libraries are available as PowerShell modules. PowerShell is a powerful scripting tool that is becoming the ad-hoc standard for anyone managing and automating a Microsoft ecosystem.&lt;/p&gt;
&lt;p&gt;These libraries are made available as open source initiatives on GitHub. When companies think of open source, these days they think &amp;quot;business agility,&amp;quot; a quality they increasingly value above all others in the fast-changing marketplace&amp;hellip; and that&amp;rsquo;s not different for SDL.&lt;/p&gt;
&lt;p&gt;The following libraries are available:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ISHRemote&lt;/strong&gt; &lt;br /&gt; PowerShell module that provides a scripting alternative for our Content Manager API. Everything that will be possible through the API will be possible through PowerShell. This module will help you to automate, for example, publishing documents, changing data already in the database, importing content, exporting metadata, provisioning users, and so on. For more info, see &lt;a href="https://github.com/sdl/ISHRemote"&gt;https://github.com/sdl/ISHRemote&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ISHBootstrap&lt;/strong&gt;&lt;br /&gt; PowerShell script repository that aims at fully automating the installation and configuration of SDL Knowledge Center. Ultimate goal is to be able to spin up new Knowledge Center servers on demand and take them down when needed. Initially, the module will focus on the Content Manager part. For more info, see &lt;a href="https://github.com/Sarafian/ISHBootstrap"&gt;https://github.com/Sarafian/ISHBootstrap&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ISHDeploy&lt;br /&gt; &lt;/strong&gt;PowerShell module that provides the necessary tooling to configure Content Manager of SDL Knowledge Center in an automated way. Our goal is to allow continuous deployments and to prevent configuration drift. This module uses the &amp;ldquo;Code as Configuration&amp;rdquo; principle as a guideline. &amp;ldquo;Code as Configuration&amp;rdquo; means that you will need to express your configuration in a PowerShell script and that you no longer need to know which configuration files to change, which services to restart, and so on. Configuration scripts will be cross-version compliant as long as the referenced feature is compatible with that Content Manager release. For more info, see &lt;a href="https://github.com/sdl/ISHDeploy"&gt;https://github.com/sdl/ISHDeploy&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ooh, and finally, open source wouldn&amp;rsquo;t be open source if weren&amp;rsquo;t welcoming contributions from the community.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="https://community.rws.com/aggbug?PostID=5992&amp;AppID=109&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</content><author><name>Frank Closset </name><uri>https://community.rws.com/members/frankclosset</uri></author><category term="LiveContent" scheme="https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog/archive/tags/LiveContent" /><category term="Knowledge Center" scheme="https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog/archive/tags/Knowledge%2bCenter" /><category term="Automation" scheme="https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog/archive/tags/Automation" /><category term="ISHBootstrap" scheme="https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog/archive/tags/ISHBootstrap" /><category term="PowerShell" scheme="https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog/archive/tags/PowerShell" /><category term="ISHRemote" scheme="https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog/archive/tags/ISHRemote" /><category term="ISHDeploy" scheme="https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog/archive/tags/ISHDeploy" /><category term="Trisoft" scheme="https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog/archive/tags/Trisoft" /><category term="Open Source" scheme="https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog/archive/tags/Open%2bSource" /></entry><entry><title>ISHDeploy PowerShell module for code as configuration is now on version 1.2</title><link rel="alternate" type="text/html" href="https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog/posts/ishdeploy-powershell-module-for-code-as-configuration-is-now-on-version-1-2" /><id>https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog/posts/ishdeploy-powershell-module-for-code-as-configuration-is-now-on-version-1-2</id><published>2016-12-15T10:06:00Z</published><updated>2016-12-15T10:06:00Z</updated><content type="html">ISHDeploy PowerShell module. What is it and what does the new 1.2 version offer.(&lt;a href="https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog/posts/ishdeploy-powershell-module-for-code-as-configuration-is-now-on-version-1-2"&gt;read more&lt;/a&gt;)&lt;img src="https://community.rws.com/aggbug?PostID=5988&amp;AppID=109&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</content><author><name>Alex Sarafian</name><uri>https://community.rws.com/members/alexsarafian</uri></author><category term="Automation" scheme="https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog/archive/tags/Automation" /><category term="PowerShell" scheme="https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog/archive/tags/PowerShell" /><category term="ISHDeploy" scheme="https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog/archive/tags/ISHDeploy" /></entry><entry><title>Best practices for XML editing experience in Knowledge Center</title><link rel="alternate" type="text/html" href="https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog/posts/best-practices-for-xml-editing-experience-in-knowledge-center" /><id>https://community.rws.com/developers-more/tridion-portfolio/tridiondocs-developers/b/knowledge_center_developer_blog/posts/best-practices-for-xml-editing-experience-in-knowledge-center</id><published>2016-11-03T08:28:00Z</published><updated>2016-11-03T08:28:00Z</updated><content type="html">&lt;p&gt;Even though Knowledge Center comes with Content Editor preconfigured for the basic topic types, it is worthwhile to try to optimize the experience for people working with the editor. It will depend on your organization and your documentation what DITA elements are used and how they are used. Based on that you can tweak the experience using the methods described here. When you are using specializations it becomes even more important to look at how this is influencing the editing experience.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-blogs-components-weblogfiles/00-00-00-01-09/kcblogpost.png"&gt;&lt;img src="/resized-image/__size/780x488/__key/communityserver-blogs-components-weblogfiles/00-00-00-01-09/kcblogpost.png" alt=" " /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Visual design&lt;/h3&gt;
&lt;p&gt;The look and feel of any application has a big impact on the user experience. If something looks good, it generally is more pleasurable to work with. In the case of Content Editor, the document itself takes up the biggest part of the screen. So the visual design of your documents is very important for the overall look and feel.&lt;br /&gt;The best practice is to align the display in the editor with the most common final output. If that output is html you could match the target styles completely, or even reuse the stylesheets. If your users see a pdf or print version of the content as the leading output there might be things you cannot do in the editor, for example pagination. But matching fonts, sizing and colors will already give a familiar feeling to the editor.&lt;/p&gt;
&lt;h3&gt;Show structure&lt;/h3&gt;
&lt;p&gt;If you want your users to create documents in the correct structure, they need to be able to understand the structure. This by no means has to be showing the underlying XML structure, there are more friendly ways of doing this as well. Which way to use depends on both the targeted users and the type of content.&lt;/p&gt;
&lt;h4&gt;Formatting&lt;/h4&gt;
&lt;p&gt;The most common way to show structure is to change the formatting. Everyone will understand that text that is displayed in a larger bold font is a title, since this is something we learn by reading books and seeing this being used all around us. This works well for all things that are common and easily recognized, like titles, lists and so on. Other elements, for example sections like Prerequisites and Context in DITA tasks, are not as easy to recognize from their styling alone. In those cases the styling is not conveying enough information about the structure and you will need to use other ways as well.&lt;/p&gt;
&lt;h4&gt;Placeholders&lt;/h4&gt;
&lt;p&gt;When an element is empty, placeholders can give more information about the type of content that is expected in this element. This will show for example the element name in grey text, and allows the user to click on that text and start entering content. But as soon as the user starts typing, the placeholder will disappear, and the information about the structure is not visible anymore. This makes it a good tool in addition to the other clues described here, but should not be used as the only way to show structure.&lt;br /&gt;&lt;a href="http://docs.sdl.com/LiveContent/content/en-US/SDL%20Knowledge%20Center%20full%20documentation-v2.1.1/GUID-4F2C6B13-8DAA-48A8-9C88-35594917DDBC" target="_blank"&gt;Read more about using placeholders in Content Editor&lt;/a&gt;.&lt;/p&gt;
&lt;h4&gt;Labels&lt;/h4&gt;
&lt;p&gt;Where styling works well for common structures known from for example Word, labels are crucial for less common elements. Labels provide more information about what content is expected. Examples here are metadata elements, but also sections with special meaning like Prerequisites and Context in DITA tasks. By showing labels for these elements, you can offer a form-like interface, which works well for these type of elements, where formatting alone is not enough to make them clearly identifiable. By using a form metaphor, you make working with these less familiar elements easier by using a familiar interaction pattern.&lt;br /&gt;This is a step away from WYSIWYG, but this is not a bad thing. Better keep the good parts (easy recognition by using familiar styling), and throw away the bad (not enough clarity on document structure). In many situations there are also multiple output targets, resulting in people coining terms like WYSIOO (What You See Is One Option), and realizing that trying to be 100% correct is not the right goal.&lt;/p&gt;
&lt;h4&gt;Tags-on view&lt;/h4&gt;
&lt;p&gt;This is a more generic way of showing structure, while keeping the styles of the normal document view in place. While this is a great way of looking at the document for certain users, it is not the most friendly display for people who are not used to this. This should be used in addition to the other methods of showing structure written above, and should not be considered a replacement for them.&lt;br /&gt;The Xopus tags-on view can also be configured to show tags for certain elements only, so you can also use a hybrid solution where well-known elements do not have their tag shown, but lesser known and harder to recognize elements do.&lt;br /&gt;&lt;a href="http://docs.sdl.com/LiveContent/content/en-US/SDL%20Knowledge%20Center%20full%20documentation-v2.1.1/GUID-8D8DC9B0-533F-43BA-8D31-8DFB7FAA3A2E" target="_blank"&gt;Read more about using the tags-on view in Content Editor&lt;/a&gt;.&lt;/p&gt;
&lt;h4&gt;XML view&lt;/h4&gt;
&lt;p&gt;This is the most direct view on the document structure, but because of the uniform styling of the data it is not the easiest to work with and recognize the different elements. For many users, the XML view looks too complicated to be useful. If the display stylesheets are written correctly, your users should not have to use this.&lt;/p&gt;
&lt;h3&gt;Do not start with an empty document&lt;/h3&gt;
&lt;p&gt;Content Editor will only add elements automatically when the schema requires those elements. So if your schema doesn&amp;#39;t require any content, give your users a head start by setting templates. You can configure a template in Content Manager to define the structure for new topics. On a smaller level, you can configure templates for elements in Content Editor. This will tell Content Editor what child elements to insert when a user inserts that element. Required child elements are always added, but this way you can insert optional child elements as well, for example a title element in a figure.&lt;br /&gt;&lt;a href="http://docs.sdl.com/LiveContent/content/en-US/SDL%20Knowledge%20Center%20full%20documentation-v2.1.1/GUID-47EFD4B5-4153-4E04-BD40-ED1E3DD8B4FA" target="_blank"&gt;Read more about using templates in Content Editor&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Ribbon toolbar &amp;amp; menus&lt;/h3&gt;
&lt;p&gt;You can modify the ribbon toolbar to allow easier access to commonly used elements. And at the same time you may want to remove some elements from the ui that will not be used that often, or are even discouraged from being used by a styleguide.&lt;br /&gt;You have several tools at your disposal to make these changes. First of all for the ribbon you can use the &lt;a href="http://docs.sdl.com/LiveContent/content/en-US/SDL%20Knowledge%20Center%20full%20documentation-v2.1.1/GUID-11D24B94-607A-4D02-8B88-D38ECC21964A" target="_blank"&gt;overlay&lt;/a&gt; mechanism to add/remove individual buttons, but you can also &lt;a href="http://docs.sdl.com/LiveContent/content/en-US/SDL%20Knowledge%20Center%20full%20documentation-v2.1.1/GUID-83C93A57-22D1-43F7-AFE8-87BA690B6736" target="_blank"&gt;create a completely new tab&lt;/a&gt;, like we have done for the &amp;quot;task&amp;quot; topic type.&lt;br /&gt;To modify the right click and breadcrumb menu&amp;#39;s and the dropdowns of the &amp;quot;All elements&amp;quot; group of the insert tab, you can use the configuration. Use the &amp;quot;hidden-from-ui&amp;quot; &lt;a href="http://docs.sdl.com/LiveContent/content/en-US/SDL%20Knowledge%20Center%20full%20documentation-v2.1.1/GUID-D0AA63FB-1DE8-4A5A-AF81-5CCE523918E4" target="_blank"&gt;role&lt;/a&gt; on the elements you want to hide in these menus, and use the &lt;a href="http://docs.sdl.com/LiveContent/content/en-US/SDL%20Knowledge%20Center%20full%20documentation-v2.1.1/GUID-C4E2063A-BEF9-4A7F-BC33-3E80E673913C" target="_blank"&gt;uiGroup&lt;/a&gt; configuration option to divide your elements up into multiple groups.&lt;/p&gt;
&lt;h3&gt;Add accelerators for often used actions&lt;/h3&gt;
&lt;p&gt;Last but not least, take a look at what editing operations your end users need to do most. Do they often need to add new sections to a document? Consider adding a button right there between the existing sections to add a new one. The generic schema-based UI is effective for accomplishing most tasks, but with a little more knowledge on what matters most to your users you can greatly speed up their tasks by adding additional tools.&lt;br /&gt;Read more about &lt;a href="http://docs.sdl.com/LiveContent/content/en-US/SDL%20Knowledge%20Center%20full%20documentation-v2.1.1/GUID-10854C54-DF74-4E19-9D73-6CF519D64B40" target="_blank"&gt;using the Content Editor API from the XSLT&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;These are some important things to consider to get the most out of Content Editor. Do you have more tips for your fellow Knowledge Center developers? Let us know in the comments below! And if you need any assistance in implementing any of those tips, feel free to ask for advice on the forum.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="https://community.rws.com/aggbug?PostID=5753&amp;AppID=109&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</content><author><name>Fredrik Geers</name><uri>https://community.rws.com/members/fgeers</uri></author></entry></feed>