More Information and Sample Code - Alfresco Content Services - 23.4 - 23.4 - Ready - Alfresco - external
Alfresco Content Services
Platform
Alfresco
Product
Alfresco Content Services
Release
23.4
License
Documentation Notice
Introduction
Introduction
Install
Overview
Install and deploy methods
Non-containerized deployment
Manual installation
Ansible playbooks
Containerized deployment
Docker Compose
Helm charts
Upgrade existing installations
Security
Install with zip
Prerequisites
Install overview
What you need to install Content Services
Preparing the filesystem and database
Install on Tomcat
Install application server
Install Alfresco WARs
Directory structure
Move keystore files to your installation
Tailor your installation
Removing the Alfresco Repository Webapp
Removing the Alfresco Share UI Webapp
Adding a reverse proxy in front of Content Services
Install Alfresco Module Package
Viewing module packages
Uninstall an AMP file
Install additional software
Install TinyMCE language packs
Install integrations
Test installation
Post-installation checks
Post-installation checks (clustered environment)
Start and stop server
Start server
Stop the server
Start Alfresco Share
Install with Ansible
The control node
Managed nodes
Understanding the inventory file
Prerequisites
Control Node
Target O/S
Component versions
Set up Ansible
Specifying a different component repository
Local installation
Remote installation
Single machine installation
Multi-machine installation
Additional command switches for ansible-playbook
Content Services cluster
Useful information
Configure your installation
License
Alfresco/Solr authentication
Mutual TLS authentication
Secrets management
Enable Ansible Vault support
Populate secrets with Ansible Vault
Third-party lookup plugins
Alfresco global properties
Enable SSL
Apply your own modules (AMP)
JVM options
External databases
External ActiveMQ
External ElasticSearch
Custom keystore
Troubleshooting
Known issues
Remove a previous installation
Cleanup
Install using containers
Deployment concepts
Virtual Machine Monitor (Hypervisor)
Image
Container
Docker
Docker Compose
Dockerfile
Difference between containers and virtual machines
Alfresco Docker images
What’s deployed in Content Services
GitHub projects
Deployment project
Packaging project
Other projects
Prerequisites
Helm charts
Docker Compose (recommended for evaluations only)
Install using Docker Compose
Search Services administration
Check system start up
Deployment project in GitHub
Configure
Alfresco Content Repository (alfresco)
Alfresco Share (share)
Alfresco Digital Workspace (digital-workspace)
Alfresco Content App (content-app)
Alfresco Control Center (control-center)
Alfresco Search Services (solr6)
Alfresco Transform Router (transform-router)
Alfresco Transform Core AIO (transform-core-aio)
Alfresco Shared File Store (shared-file-store)
Alfresco Sync Service (sync-service)
Alfresco Proxy (proxy)
Customize
Cleanup
Troubleshooting
Reference
Install using Helm
Considerations
Deployment options
Customize
Creating custom Docker images
Using custom Docker images
Helm deployment with AWS EKS
Prerequisites
Set up an EKS cluster
Prepare the cluster for Content Services
DNS
File system
Deploy Content Services
Namespace
Ingress
Docker registry secret
Choose Content Services version
Latest Enterprise version
Previous Enterprise version
Access
Configuration options
Troubleshooting
Kubernetes dashboard
Port-forwarding to a pod
View log files via command-line
Change log levels
JMX dump
Cleanup
Helm configuration examples
Deploy with AWS Services (S3, RDS and MQ)
Prerequisites (AWS Services)
Set up AWS Services
S3
RDS
Amazon MQ
Deploy (AWS Services)
Deploy with Alfresco Intelligence Services
Prerequisites (Intelligence)
Set up S3 bucket
Deploy (Intelligence)
Enable access to Alfresco Search Services
Prepare data
Deploy (Search)
Upgrade (Search)
Enable email services
Prerequisites (email)
Deploy (email)
Exposing email service
Test email service
Using a custom metadata keystore
Customization
Setting up
Create custom repository image
Create custom Alfresco Share image
Start the system
Upgrade
Upgrade Content Services
Upgrade paths
Upgrade from Alfresco Community Edition
Upgrade process
Validate upgrade
Test upgrade
Restore production data
Apply optional performance database patch
Log4j2 Migration Guide
Code impacts
Deployment impacts
Configuration
Root logger definition
Appender definition
Logger definition
Configuration augmentation/override
SanitizingPatternLayout
Configuration example
JMX Management
Adding new loggers at runtime via JMX
Alfresco JMX logger and Alfresco log settings
Exporting logs in JSON format
Configure
Overview
Using alfresco-global.properties
Modify Global Properties File
Set Composite Properties in Global Properties File
Disable Content Services Features
Using JMX Client to Change Settings Dynamically
Connect through JMX
Configure with JConsole
JMX Monitoring and Management Extensions
Coexistence with Other MBeans
Activate Oracle JMX Agent and Local JMX Connectivity
Using the Java Command Line to Change Settings Dynamically
Customize Applications
Customize Individual Configuration Items
Customize Extension Files
Modify Spring Bean Definition Files
Customize Activity Email Summary
Customize Bean Files
Subsystems
Subsystem Categories
Subsystem Configuration Files
Subsystem Properties
Mounting a Subsystem
Mounting a Subsystem with Composite Properties
Example: IMAP Subsystem
Extension Classpath
Databases
Amazon RDS
Amazon Aurora Database on Amazon RDS
MySQL Database on Amazon RDS
Oracle Database on Amazon RDS
PostgreSQL database on Amazon RDS
SQL Server Database on Amazon RDS
MySQL and MariaDB
Optimize MySQL
Oracle
PostgreSQL
Table Partitioning
Microsoft SQL Server
Optimize Microsoft SQL Server
Advanced Configuration Properties
Validating your Database
Maintenance and Tuning
Repository
Run in Read-only Mode
Using the alfresco-global.properties File to Run in Read-only Mode
Using a JMX Client to Run in Read-only Mode
Checking the Mode
Deploy with a Different Context Path
Deploy with a Reverse Proxy
Tune the JVM
Hardware
Disk Space Usage
Virtualization
JVM Memory and CPU Hardware for Multiple Users
JVM Settings
Maximum JVM Heap Size 32/64 bit
Set Debug Mode for Troubleshooting - Linux
Set Debug Mode for Troubleshooting - Windows
Low End Machines
Effects of NewSize
Command Line Configuration
Set Properties on the JVM
Mix Global Properties and System Property Settings
Configure Content Services to Work with a Web Proxy
Configure Server Administration Properties
Configure Server Administration Settings
sysAdmin Subsystem Properties
Control JVM System Properties
Secure Sockets Layer (SSL) and the Repository
Configure SSL for a Production Environment
Configure SSL for a Test Environment
Configure HttpClient Settings of Repository
Configure the Repository Cache
Individual Cache Settings
Add a MIME Type
Configure View in Browser MIME Types
Configure Metadata Extraction
About Aspects
About Versioning
Making all Content Versionable
Disabling the Auto-Versioning Feature
Set Up Database Replication
Set Up MySQL Replication
Control Indexes
Defer the Start of CRON Based Jobs
CORS Configuration
JavaScript Execution
File Servers
Enabling File Servers
Configuring the FTP File Server
FTP file server properties
FTP Advanced Spring Overrides
Email
Configure Inbound and Outbound Email
Manage Inbound Emails
Inbound SMTP Configuration Properties
Manage Outbound Emails
Outbound SMTP Configuration Properties
Handle Messages by Target Node Type
Groups and Permissions for Email
Configure Activities Feed
Enable Subscription Service
Configure Email Client with IMAP
Enable IMAP Protocol Using alfresco-global.properties
Enable IMAP Service Using Admin Console
IMAP Subsystem Properties
Enable IMAP Protocol
Enable IMAPS
Extract Attachments
IMAP Mount Points
Virtual View Email Format
Mark Sites as IMAP Favorites
Configure Email Templates Using v1 REST APIs
Configure Customized Email Templates
Configure ActiveMQ
Set up ActiveMQ
Configure Advanced Settings for ActiveMQ
Clustering
Security
Smart Folders
What is a Smart Folder?
Smart Folders Terminology
Prerequisites for Using Smart Folders
Plan and Implement Smart Folders
Enable Smart Folders
Type-based, System, and Custom Smart Folders
Type-based Smart Folders
System Smart Folders
Custom Smart Folders {sf-folder-custom}
Metadata Inheritance
Smart Folder Template syntax
Nested nodes
Search queries
Filing rules
Smart Folders global properties settings
Best practices for Smart Folders
Smart Folders FAQ
How do I enable Smart Folders?
How do Smart Folders affect Alfresco Content Services if the function is enabled, but not used?
Are there best practices to avoid performance problems?
Which components or subsystems do Smart Folders provide?
Which services do Smart Folders extend?
How can I extend Smart Folders? Which interfaces, APIs, and extension points exist?
As a developer, I want to create a custom application. How can I use Smart Folders in my code?
As a developer, creating my own custom application (separate from the Share evaluators), how do I distinguish between a Smart Folder and an object that is displayed in a Smart Folder?
I have created a new Share module. How can I enable Share actions for Smart Folders?
Which Share actions are enabled as standard for Smart Folders?
Can I use multi-value properties with Smart Folders?
What is the Data Dictionary/Smart Folder Downloads folder used for?
Content models
Introduction
Models
Custom types
Aspects
Properties
Constraints
Create a content model
Manage content models
Edit a content model
Content model status
Activate a content model
Deactivate a content model
Import a content model
Custom types, aspects and properties
Manage custom types
Create a custom type
Edit a custom type
Delete a custom type
Manage aspects
Create an aspect
Edit an aspect
Delete an aspect
Manage properties
Create a property
Options for data types of properties
Options for constraints of properties
Options for indexing properties
Edit a property
Delete a property
Layout Designer
Layout elements
Properties in the Layout Designer
Using the Layout Designer
Configure a Process Services action
Mutual TLS
Generate secure keys for SSL communication
Customize certificate generation
Legacy script summary
New scripts summary
Script usage examples
Keystore directory structure
Repository configuration
Set HttpClient properties
Configuration for Transform Service
Keycloak
Install Keycloak
Install using distribution ZIP
Install Keycloak using Helm charts
Install Alfresco Keycloak Theme
Install the theme manually
Install the theme via Helm
Install the Alfresco Realm
Install the realm manually
Install the realm via Helm
Upgrade Keycloak
Configure Keycloak
Configure a custom realm
Customize a realm manually
Customize a realm using a JSON file
Configure a custom theme
Developing a theme
Importing a theme for a Kubernetes deployment
Importing a theme for a standalone installation
Run Keycloak with Process Services
Administer
Overview
System paths convention
Content Services installation directory
<classpathRoot> directory
alfresco-global.properties file
<extension> directory
<web-extension> directory
<solrRootDir> directory
<configRoot> directory
<configRootShare> directory
Heartbeat feature
Disable the Heartbeat
Transmitted data
Best practices
Common mistakes
Admin Tools
Repository Admin Console
Overview
Launch Admin Console
View System Summary
View Repository Information
Customize Admin Console
Admin Console example page
Share Admin Tools
Overview
Manage Share Theme and Logo
Change Share theme
Change Share logo
Category Manager
Tag Manager
Sites Manager
Search Manager
Configure filtered search using configuration files
Filtered search configuration file and default properties
Define custom search filters using configuration file
Control Center
Support Tools
Active Sessions
Hot Threads
Thread Dump
Thread Profiler
Thread Sampler
JMX Settings
Log Settings
Applied Patches
System Performance
Scheduled Jobs
Test Transform
Import and transfer tools
In-place bulk import
Prepare file system
Metadata files
Version History files
Import with the Bulk Import tool
Bulk import using the user interface
Bulk Filesystem Import Tool Status
Bulk import using a program
Fields and values
File System Transfer Receiver
Manage Security
Securing your installation
Overview
Check all passwords
Do not run as root
Adding a Reverse proxy (1)
Secure server traffic with HTTPS (1)
Secure traffic between Repository and Solr (2)
Share Web UI security (3)
Digital Workspace Web UI security (4)
ReST API secure access (5)
Securing HTML transformations
Encrypting metadata
Dedicated user for external system access
Disable Guest user
Disable unused protocols
Summary of ports used in a Content Services installation
Security checklist
Securing HTML transformations
Configure HTML pipelines via txt to secure HTML transforms
Deploying configuration
Deploy new configuration to Alfresco Repository
Deploy new configuration to Transform Router
Restore HTML pipelines that use LibreOffice
Deploying configuration
Deploy new configuration to Alfresco Repository
Deploy new configuration to Transform Router
Users and groups
Manage users
Create new user
Upload multiple users
Search for and view user account
Edit user account
Delete user account
Disable user account
Change user’s password
Manage user’s group membership
Manage groups
Browse user groups
Search for group
Create new group
Edit existing group
Delete an existing group
Manage group membership
Authentication and sync
Authentication subsystems
Authentication subsystem types
Authentication subsystem components
Authentication chain
Chained functions
Default authentication chain
Configure the authentication chain
Configure authentication subsystems
Configure external authentication
External authentication and SSO
What is external authentication?
How is Single Sign-On (SSO) related to external authentication?
How is Alfresco Office Services related to external authentication?
External configuration properties
Configure Alfresco Share to use an external SSO
Set SSO with client certificates
Configure alfrescoNtlm
Configure LDAP
LDAP configuration properties
Synchronize user account status
Example: authentication and synchronization with one ldap-ad subsystem
Apply ldap-ad example
Example: authentication and synchronization with two ldap-ad subsystems
Configure Kerberos
Step 1. Configure Kerberos with Active Directory
Step 2. Configure Kerberos on Alfresco server
Step 3. Configure Alfresco Share Kerberos SSO
Step 4. Kerberos client configuration
Kerberos client configuration for Chrome
Kerberos client configuration for Internet Explorer
Kerberos client configuration for Firefox
Kerberos client configuration for WebDav
Kerberos configuration properties
Configure cross-domain support for Kerberos
Debug Kerberos
Configure Identity Service
Identity Service configuration properties
Configure synchronization
Synchronization triggers
Synchronization deletion
Collision resolution
Synchronization configuration properties
Manage authentication directories
Manage the authentication chain
Manage authentication directories using Admin Console
Configure OpenLDAP or Oracle Directory Server
Configure LDAP (Active Directory)
Configure Kerberos
Configure external authentication
Configure alfrescoNtlm
Manage synchronization settings
Manage browser based automatic login
Authorization
Mitigate brute force attack on user passwords
Manage Alfresco keystores
What is a Keystore and a Truststore?
Java KeyStore
Java TrustStore
Creating Java Keystores and Certificates
Introduction to Alfresco keystores and truststores
Alfresco default keystore and backup keystore
Alfresco Keystore configuration
Keystore generation
Automatic keystore generation
Manual keystore generation
Keystore key registration
secure credentials store
Bootstrap Re-encryption
Runtime Re-encryption
Cryptographic password hashing
Encrypting properties
Encrypting configuration properties
Authorities
Dynamic authorities and roles
People and users
Groups
Zones
Application-related zones
Authorization-related zones
Define permissions
Control site creation permissions
Access Control Lists
ACL ordering and evaluation
An ACL example
Modify access control
Public services
Public services configuration
Method-level security definition
Implementation and services
Authentication service
Configure multiple tickets for authentication
Person service
Authority service
Using guestGroups and adminGroups properties
Permission service
Ownable service
Admin password in default authentication
Security policies and filters
Alfresco Share Security policies and filters
Cross-Site Request Forgery (CSRF) filters for Share
Iframes and phishing attack mitigation
Security filters and clickjacking mitigation
Alfresco repository security policies and filters
Cross-Site Request Forgery (CSRF) filters for Repository
Auditing
Overview
Data Producer
Audit Component
Audit Service
Audit Filters
Data Extractor
Data Generator
Audit Configuration
Audit Application
Data Storage
Key tools and files
Content Services log file
Global auditing configuration properties
Log4J configuration
HTTP client
Sample files
Test source code (can provide a useful set of examples)
Alfresco Records Management auditing code
How to enable auditing
How to check audit status
Using JMX to control auditing
How to use the auditing sample files
Using the auditing ReST API
Default auditing global properties
Audit filters
Creating new audit filters
Example 1
Example 2
Redirected properties
Debug audit filters
Enable debug
Audit configuration
Audit configuration files
DataExtractors
DataGenerators
PathMappings
Application
Audit application
Deconstruct sample files
Login example
Configuration
Data Extractors
Data Generators
Path Mappings
Audit Application 1
Audit Application 2
Data extractors sample
Audit Tutorials
Understanding PathMappings
Using values that have changed in a post method call
Backup and migrate
Back up and restore
Back up and restore repository
Perform cold backup
Perform hot backup
Back up database
Back up file system
Migration
Migrate servers
Back up Content Services Server 1
Restore to Content Services Server 2
Query Accelerator
Operational overview
Install properties
Properties example
Configuration
Query set configuration examples
Example 1
Example 2
Query sets and TMDQ queries
Query set status and caching
Logging
Removing a query set
Updating a query set
Query Set Refresh in Admin Console
Query Set Remove in Admin Console
High availability features
Clustering
Prerequisites for upgrades
Components of a Content Services solution
Recommendations for split architecture
Scenario: Clustering for redundancy
Scenario: Clustering for high throughput
Setting up an Alfresco Share cluster
Configure Hazelcast between Alfresco Share instances
Share Cluster Troubleshooting
Configure Alfresco Share clustering
Set up repository server cluster
Install and configure Content Services nodes
Install and configure Solr nodes
Set up repository clustering via external Hazelcast
Install and configure Hazelcast
Secure Hazelcast Community Edition
Secure Hazelcast Enterprise Edition
Use a unique random UUID as cluster name
Set up repository server cluster
Starting the repository server cluster
Managing members of a cluster
Testing the cluster
Clustering properties
Tracking clustering issues
Content replication
Configure content replication
Enable the Replication Service
Open locked content in the source repository
Create a new transfer target for content replication
Manage replication jobs
View replication job
Create new replication job
Manage existing jobs
Run replication job
Cancel replication job
Edit replication job
Delete replication job
View replication job reports
Alfresco System Receiver (ASR)
Licenses
Upload new license
Authorize users
Deauthorize authorized user
File and folder templates
Set files as templates
Set folders as templates
File metadata extraction
File metadata mapping to Repository properties
Workflows
What’s a workflow?
Workflow architecture
Workflow instances
Workflow artifacts
Workflow tools
Workflow Console
Enable workflow process engines
Activiti Workflow Console
Process definitions
Events
Sequence flows
Tasks
Gateways
Parallel gateways
Exclusive gateways
Variables
Node objects
Listeners
Task listeners
Execution listeners
Task model
Specify the task type
Set up Activiti designer
Install Eclipse
Install Activiti designer
Deploy task model
Deploy process definition
Transformation
Standard transform options
Additional transform options
Alfresco Outlook Integration
Document Transformation Engine
Alfresco Media Management
File types that support preview and thumbnail generation
Formats that support preview and thumbnail generation
Content stores
Content stores overview
Content store types
File content store
Caching content store (CCS)
CachingContentStore class overview
CachingContentStore properties
Configure CachingContentStore
Aggregating content store
Example configuration for tiered storage
Encrypted content store
Content encryption overview
Cryptography process
Issues to consider before using Encrypted content store
Install Encrypted content store
Configure the Encrypted content store in the global properties file
Encrypted content store properties
Configure the Encrypted content store using the JMX
Master key management
Add a new master key
Retire a master key
Expiry of a master key
Additional JMX operations
Alfresco Content Connector for AWS S3
Alfresco Content Connector for Azure
Alfresco Content Connector for SAP applications
Content store selector
Content store selector configuration example
Using the new content store
Content Store Selector full configuration example
Manage content stores
Clean up orphaned content (purge)
Configure Trashcan Cleaner
Database table cleanup
Schedule cleanup of database tables
Alternative method for scheduling cleanup of database tables
Property table cleaner default settings
Run new job in read-only mode
Run new job by default
Node service cleanup job
Schedule cleanup
Using the V2 algorithm
Java Management Extension (JMX) reference
Alfresco Global Properties available in a JMX client
JMX read-only MBeans
Alfresco:Name=Authority
Alfresco:Name=BatchJobs
Alfresco:Name=CacheStatistics
Alfresco:Name=Cluster
Alfresco:Name=ConnectionPool
Alfresco:Name=ContentStore
Alfresco:Name=ContentTransformer
Alfresco:Name=CustomModel
Alfresco:Name=DatabaseInformation
Alfresco:Name=Encryption
Alfresco:Name=FileServerConfig
Alfresco:Name=GlobalProperties
Alfresco:Name=License
Alfresco:Name=Log4jManagement
Alfresco:Name=MetadataQueryIndexesCheck
Alfresco:Name=ModuleService
Alfresco:Name=PatchService
Alfresco:Name=RepoServerMgmt
Alfresco:Name=RepositoryDescriptor
Alfresco:Name=RunningActions
Alfresco:Name=Runtime
Alfresco:Name=Schedule
Alfresco:Name=SolrIndexes
Alfresco:Name=SystemProperties
Alfresco:Name=WorkflowInformation
JMX editable MBeans
Alfresco:Type=Configuration, Category=ActivitiesFeed
Alfresco:Type=Configuration, Category=Audit
Alfresco:Type=Configuration, Category=Authentication
Alfresco:Type=Configuration, Category=ContentStore
Alfresco:Type=Configuration, Category=Events
Alfresco:Type=Configuration, Category=Replication
Alfresco:Type=Configuration, Category=Search
Alfresco:Type=Configuration, Category=Subscriptions
Alfresco:Type=Configuration, Category=Synchronization
Alfresco:Type=Configuration, Category=Transformers
Alfresco:Type=Configuration, Category=WebDav
Alfresco:Type=Configuration, Category=email
Alfresco:Type=Configuration, Category=fileServers
Alfresco:Type=Configuration, Category=googledocs
Alfresco:Type=Configuration, Category=imap
Alfresco:Type=Configuration, Category=sysAdmin
Alfresco:Type=Configuration, Category=thirdParty
Alfresco:Name=FileServerConfig (editable)
Alfresco:Name=Log4jManagement (editable)
Alfresco:Name=Schedule (editable)
Alfresco:Name=WorkflowInformation (editable)
Troubleshooting
Set log levels
Error messages
ImageMagick
JAVA_HOME
FTP Socket
Port already in use
Using the Node Browser
Using the Node Browser in Share Admin Tools
Debug an installation
Configure the JVM
Configure Eclipse
Troubleshoot an upgrade
Troubleshoot rules and actions
Type specialization action problems with Mac OS/X**
Troubleshoot clustering
Troubleshoot JMX Dumper
Troubleshoot WebDAV
Unable to mount WebDAV share (Windows)
Move file or folder using WebDAV on an Ubuntu client causes loss of metadata and creates a new node reference
Editor role can’t edit content using WebDAV and Cyberduck version 4.4+
Slow response when working with WebDav resources on Microsoft Windows Vista or 7
OpenLDAP tips
Active Directory tips
Troubleshoot SMTP inbound email using StartTLS
Handle higher rate of outbound TCP connections
Troubleshoot IMAP
IMAP scale limitations
IMAP server error message
Troubleshoot database scheme problems
Definition of terms used
Perform schema dumps
Automatic dumps
Trigger dumps by using JMX
Perform schema validation
Differencing
Validation
Using
Overview of using Content Services
Using Content Services from Microsoft Office
Using Content Services from Microsoft Outlook
Add a file from outside Alfresco Share
Check out files from outside Alfresco Share
View item details from a mapped drive
Open Alfresco Share in a browser window
Alfresco Share
Signing In
Alfresco Share toolbar
User dashboard
What can I do with my dashlets?
Configuring the RSS feed dashlets
Setting up the Web View dashlet
Configuring the Saved Search dashlet
Viewing your user profile
What version of Alfresco Share am I using?
Subscribing to an RSS feed
Profiles and dashboards
Customizing your dashboard
Setting your home page
Updating your profile
Following people
Controlling your email notifications
Disabling site activity notifications
Changing your password
Sites
Accessing existing sites
Joining a site
Leaving a site
Entering a site
Moving around a site
Site dashboard
Choosing a site homepage
What can I do with the site dashlets?
Configuring the RSS feed dashlets
Configuring the Wiki dashlet
Setting up the Site Notice dashlet
Managing a site
Creating a site
Customizing a site
Customizing the site dashboard
Editing site details
Favoriting a site
Deleting a site
Managing site members
Adding users to a site
Approving users to join a moderated site
Adding groups to a site
Reviewing the site members
Reviewing site groups
Changing a site role
Becoming a site manager
Removing a site member or site group
Managing pending invitations
Site features
Calendar
Accessing the calendar
Browsing the calendar
Viewing an event
Adding an event
Editing event details
Changing event date and time
Deleting an event
Wiki
Accessing the wiki
Browsing the wiki pages
Creating the wiki main page
Creating a new wiki page
Editing a wiki page
Renaming a wiki page
Deleting a wiki page
Viewing the wiki page details
Discussion forum
Accessing the discussion forum
Browsing the discussion topics
Viewing a topic
Replying to a discussion
Editing a reply
Creating a new topic
Editing a topic
Deleting a topic
Blog
Accessing the blog
Browsing blog posts
Viewing a blog post
Creating a blog post
Editing a blog post
Deleting a blog post
Working with comments
Adding a comment to a post
Editing a comment
Deleting a comment
Data list
Accessing the Data Lists component
Viewing a list
Creating a new list
Editing the list details
Deleting a list
Working with list items
Creating a list item
Editing a list item
Duplicating a list item
Deleting a list item
Working with multiple list items
Selecting multiple list items
Performing actions on multiple list items
Site links
Accessing the site links
Browsing the site links
Viewing a link
Creating a new link
Editing a link
Deleting a link
Deleting multiple links
Adding a comment to a link
Editing a link comment
Deleting a link comment
Content
Document Library
Exploring the library
Library view options
Content outside the Document Library
My Files
Shared Files
Repository
Manage content
Adding content
Creating folders
Drag and drop folders
Creating folders from a template
Adding files
Uploading files
Creating files
Creating Google Docs files
Creating files from a template
Viewing content
Viewing folder details
Viewing a file
Info and options
Preview
Comments
Actions and details list
View a file in a browser
View a file on Google Maps
Organizing content
Dragging and dropping content
Moving content
Copying content
Creating links to content
Unzipping content
Renaming content
Tagging and categorizing content
Tags
Categories
Tagging content
Categorizing content
Favoriting content
Locate items and folders
Multi-selecting content
Deleting content
Recovering deleted content
Emptying your trashcan
Social features for content
Managing your comments
Adding a comment
Editing a comment
Deleting a comment
Files and folders
Editing files
Editing files offline
Editing files in Alfresco Share
Editing files in Microsoft Office
Editing files in Google Docs
Sharing Google Docs files
Google Docs FAQs
Editing file and folder properties
Uploading new versions
Downloading files
Sharing files
Applying aspects
Managing file and folder permissions
Becoming content owner
Changing the content type
Replicated content
Folder rules
Defining rules for a folder
Creating a rule
Rule actions
Linking to an existing rule set
Creating a simple workflow
Start Process action details
Working with a set of rules
Adding to a set of rules
Editing a rule
Deleting a rule
Reordering the rules in the rule set
Switching off inherited rules
Manually running rules
Working with linked rules
Linking to a different rule set
Breaking the link to a rule set
Tasks and workflows
Starting a workflow
Viewing workflows you started
Cancelling an active workflow
Deleting a completed workflow
Viewing tasks and workflows
Managing tasks
Search
Search results
Search tips
Using the Site Finder
Using the People Finder
Reviewing a user profile
Using the Advanced Search
Smart Folders
Applying a Smart Folder Template
Smart Folders FAQs
User roles and permissions
Dashboards permissions
Site dashboard
Site dashlets
Content permissions
Document Library: Folders and files
Document Library: Folders only
Document Library: Files only
Calendar
Wiki
Discussions
Blog
Links
Data lists
Member permissions
Power users
Sites Manager
Search Manager
Creating new search filters
Develop
Getting Started
Software Architecture
High-Level Architecture
Detailed Architecture
Content Repository Concepts
Overview
Key Concepts
Logical Structure
Stores Overview
The Main Stores
Content Store Implementation
Content Store Selectors
Store Reference
Node Information
Node Reference
Node Properties
Metadata/Property Extractors
Node Associations
QName
Permissions
Owner
Folder Node and File Node Overview
Platform Architecture
Content Modeling
Access Protocols
Modularity
Web UI Architecture
Customizing the User Interface
Application Development Framework (ADF)
Overview
Architecture
Application Generator
Alfresco JavaScript API
Share Web Client Architecture
Introduction
Server Side Framework (Surf)
Client Side Frameworks (Surf Pages and Aikau Pages)
Surf Pages Introduction
Aikau Pages Introduction
Surf Framework Introduction
APIs
Remote APIs
Embedded APIs
Software Development Kits (SDK)
Extension Packaging (Modules)
Viewing Installed Modules
Module Properties File
Module Context File
Module Package Formats
Alfresco Module Package (AMP)
Advantage of AMP Files
AMP File Format
AMP File Structure
AMP to WAR Mapping
Customizing the AMP to WAR mapping
Project Layout
log4j2.properties File
Best Log4j Configuration Practices
Advanced log4j.properties Configuration
Using the Module Management Tool (MMT)
Running the MMT
Best Practices
Simple Module (JAR)
Simple JAR Modules vs AMPs
Extension Inspector
Extension Points Overview
Out-of-Process Extension Points
In-Process Extension Points
Out-of-Process Extension Points
Overview
Events Extension Point
Event Model
CloudEvent Attributes
Content Services Event Data Attributes
Content Services Event Types
Event Sending Strategies
Event Descriptions
Node Created Event
Node Updated Event
Node Deleted Event
Parent-Child Association Created Event
Parent-Child Association Deleted Event
Peer Association Created Event
Peer Association Deleted Event
Permission Updated Event (Enterprise Only)
Event Gateway
Developer Deployment
Gateway API
REST API Java Wrapper
Common Parameters
Managing Folders and Files
Listing Content of a Folder
Filtering Contents of a Folder
Getting Folder/File Metadata
Creating a Folder
Uploading a File
Uploading a File with Custom Type
Uploading a New Version of File
Getting File Version History
Downloading a File
Downloading Multiple Files
Listing File Renditions
Getting File Rendition Content
Updating Metadata for a Folder or File
Adding Aspects to a Folder or File
Removing Aspects to a Folder or File
Getting and Setting Permissions for a Folder or File
Working with Relationships between Folders or Files
Managing Comments for a Folder or File
Managing Tags for a Folder or File
Copying Folders and Files
Moving Folders and Files
Locking a File for Editing
Creating a Link to a File
Deleting a Folder or File
Listing Deleted Folders and Files (Trashcan)
Restoring Deleted Folders and files (Trashcan)
Managing Sites
Creating a Site
Listing Site Containers
Adding Content to a Site
Adding Members to a Site
Managing People and Groups
Listing People (Users)
Creating a Person
Getting Person Metadata
Updating a Person
Requesting Password Reset for a Person
Listing Groups a Person is a Member of
Listing Groups
Creating a Group
Getting Group Metadata
Updating a Group
Listing All People and Groups in a Group
Adding People and Groups to a Group
Deleting a Person or Group from a Group
Setting Permissions for a Group
Managing Audit Applications and Logs
Enabling Auditing and Alfresco Access Audit Application
Listing Audit Applications
Getting Audit Applications
Enabling/Disabling an Audit Application
Listing Audit Entries (Logs) for an Audit Application
Listing Audit Entries (Logs) for a Node
Getting an Audit Entry (Log)
Deleting Audit Entries (Logs) for an Audit Application
Deleting an Audit Entry (Log) for an Audit Application
Searching for Content
Finding Folders and Files by a Term
Finding Sites by a Term
Finding People by a Term
Finding Content by a Search Query
In-Process Platform Extension Points
Content Model Extension Point
Defining and Deploying
Configuring the User Interface
Out-of-the-Box Content Models
Metadata XML Schema
Content Models and CMIS
Mapping Child Associations
Deploying a Content Model
Dynamic Deployment Approach
Activating a model
Deactivating a model
Managing Models Using the Repo Admin Console
Deployments
More Information
Sample Code
Tutorials and Developer Blogs
Actions
Description
Deployment
Sample Code and Tutorials
Web Scripts
Deployments
More Information
Sample Code and Tutorials
JavaScript Root Objects
Deployments
More Information
Behaviour Policies
Deployments
Tutorials
Scheduled Jobs
Out-of-the-Box Scheduled Jobs Definitions
Deployments
Sample Code
Metadata Extractors and Embedders
Metadata Extraction and Transform Engines
Metadata Extraction is just Another Transform
Transform Interface
AbstractMetadataExtractor Base Class
Metadata Extraction Configuration
Property Overwrite Policy
Aspect Property Policy
Enable Tagging
Overriding Metadata Extraction Request in the Repository
Metadata Extraction Response
Metadata Embed Request and Response
Repository Information
Framework
XML Framework
Metadata Extractors Moved to T-Engines
Changing Default Property Mappings for PDF Metadata Extraction
Metadata Extraction Debug Logging
Using Custom Content Models in Property Mappings for PDF Metadata Extraction
Changing Default Property Mappings for XML Metadata Extraction
Metadata Extractor Limits
Deployment
Content Transformers and Renditions
Transformation Changes from Content Services 6.2
Configure a T-Engine as a Local Transform
Transformer Selection Strategy
Enabling and Disabling Local or Transform Service Transforms
Configure a Custom Local Transform Pipeline
Configure Custom Local Failover Transforms
Overriding a Local Transform
Configure a Custom Rendition
Configure a Custom MIME Type
Configure the Repository to Use the Transform Service
Creating a T-Engine
Developing a New T-Engine
Migrating a Legacy Transformer
Alfresco Transform Service (ATS) Configuration (Enterprise Only)
Mimetypes Extension Point
Deployments
Sample Code and Tutorials
Content Transformers and Renditions
Transformation Changes from Content Services 6.2
Configure a T-Engine as a Local Transform
Transform Selection Strategy
Enabling and Disabling Local or Transform Services Transforms
Configure a Custom Local Transform Pipeline
Configure Custom Local Failover Transforms
Overriding a Local Transform
Configuring a Custom Rendition
Disabling an Existing Rendition
Overriding an Existing Rendition
Configure a Custom MIME Type
Configuring the Repository to Use the Transform Service
Creating a T-Engine
Developing a new T-Engine
Migrating a Legacy Transformer
Alfresco Transform Services (ATS) Configuration (Enterprise Only)
Permissions and Roles
Deployments
More Information and Sample Code
Data Lists
Deployments
More Information and Sample Code
Ratings
Deployments
Sample Code
Bootstrapping Content
Description
Bootstrapping Users
Bootstrapping Groups
Adding Users to Groups
Bootstrapping Sites
Bootstrapping Folders and Files
More Information on Bootstrapping Folders and Files
Bootstrapping Categories
Bootstrap/Import Module Data
Import Strategy
Deployments
More Information and Sample Code
Patches
Deployments
More Information and Sample Code
Module Components
Deployments
Sample Code
Subsystems
Deployments
More Information and Sample Code
Authentication
Deployments
More Information and Sample Code
Content Stores
File Storage Buckets
Deployments
More Information and Sample Code
Audit Log
Deployments
More Information and Sample Code
Tutorials
Admin Console Components
Deployments
More Information and Sample Code
Share UI Extension Points
Share Configuration
Share Configuration Files
Setting Minimum Length for Username and Password
Enabling Mixed Username Types
Setting Default Port
Removing Persistent Cookies
Enabling Actions When Using Smart Folders
Enabling External Users Panel
Share Document Library
Configuring the Repository Link
Configuring Aspects
Extending the Alfresco Share Document Library
Document Library Repository Tier
Document Library Custom Response
Property Decorators
Permissions List
Document Library Web Tier
Web Tier Configuration Overview
Status Indicators
Metadata Templates
Actions
Action Groups
Custom Client Extensions
Client-Side Template and Action Extensions
Metadata Template Renderer
Custom Action Handler
Customizing Document Library Views
Share Themes
Selecting Share Themes
Editing a Share Theme
Share Forms
Use of Forms in Share
Forms Architecture
Forms Event Sequence
Configuring Forms
Customizing Forms Controls
Customizing the Validation Handler
Displaying Type Metadata
Displaying Aspect Metadata
Configuring a Form Control
Grouping Fields
Changing the Default Set Label
Providing a Custom Form Control
Changing the Field Label Position
Providing a Custom Form Template
Adding Custom MIME Types
Deployments
Tutorials
Document Library
Description
Deployments
More Information and Tutorials
Sample Code and Developer Blogs
Share Themes
Deployments
More Information
Tutorials and Developer Blogs
Site Presets
Deployments
Tutorials and Developer Blogs
Web Scripts
Web Script Locations
Root Objects
Deployments
More Information
Sample Code and Tutorials
Surf Pages
Template Markup
Setting Object References
Generated JavaScript
Deployments
More Information and Tutorials
Sample Code and Developer Blogs
Surf Dashlets
Deployments
More Information and Tutorials
Sample Code
Surf Widgets
Customizing Surf Widget Instantiation
Original Implementation
4.2 Style Markup
Directives
Deployments
Tutorials
Sample Code and Developer Blogs
Surf Extension Modules
Module Deployment and Evaluators
Auto-Deploying Modules
Module Dependencies
Module Dynamic Configuration
Deployments
Tutorials
Aikau Menus
Deployments
More Information
Tutorials and Developer Blogs
Aikau Pages
Creating Aikau Pages with Menus
Creating a New Page
Widget Creation Configuration
A Simple Menu Bar
Adding a Menu List
Adding Cascading Menus and Icons
The Hybrid Page
Summary and Next Steps
Deployments
More Information
Tutorials and Developer Blogs
Aikau Dashlets
Deployments
More Information and Tutorials
Sample Code and Developer Blogs
Aikau Widgets
Deployments
More Information
Tutorials and Developer Blogs
Evaluators
Deployments
More Information
Tutorials and Developer Blogs
JavaScript Root Objects
Deployments
More Information
Form Controls
Deployments
More Information and Tutorials
Form Processor
Deployments
More Information and Sample Code
Form Processor Filters
Deployments
More Information
Form Field Validation Handlers
Deployments
More Information
Modifying out-of-the-box Code
Modifying Ou-of-the-Box Surf Web Scripts
Modifying Out-of-the-Box Surf Pages
Modifying Out-of-the-Box Surf Dashlets
Modifying Out-of-the-Box Surf Widgets
Modifying Out-of-the-Box Aikau Pages
Modifying Out-of-the-Box Aikau Dashlets
Modifying Out-of-the-Box Aikau Widgets
Deployments
More Information
Tutorials and Developer Blogs
Useful Tools
FireBug
Installation
Introduction
Finding out Which Web Script(s) are Behind a Page
Debugging JavaScript Files
SurfBug
SurfBug Introduction
Information Provided
REST API Guide
Things to Know Before You Start
The API Explorer is Your Source of Truth
Finding out If an API Endpoint is Supported in a Specific ACS Version
Tickets
JSON with Padding (JSONP)
Limiting Result Items
Skipping Result Items
Ordering Result Items
Filtering Result Items
Requesting Optional Item Information
Limiting the Item Information
Person Id Alias
Well Known Node Id Aliases
Creating Multiple Entities (Items)
Including the Source Entity for a Collection
Install and Authenticate
Installing
Installing the WAR File into an ACS Trial Environment
Installing the WAR File into an Alfresco SDK AIO Project
Accessing the API Explorer
Getting Started
Install a Tool to Make HTTP Calls
Install a Tool to Format JSON Responses
Authenticate with the Repository
Authenticating to Get a Ticket
Base64 Encoding the Ticket
Using the ticket
Get Repository Information
Managing Folders and Files
List Contents of a Folder
Filter Contents of a Folder
Get Folder/File Metadata
Create a Folder
Upload a File
Upload a File with Custom Type
Create a Custom Content Model Deployed to ACS
Installing the Custom Content Model into an ACS Trial Environment
Installing the Custom Content Model into an Alfresco SDK AIO Project
Test Uploading File and Setting Custom Type
Upload a New Version of File
Get File Version History
Download a File
Download Multiple Files
Get Direct Download URL for a File
List File Renditions
Get File Rendition Content
Get Direct Download URL for a File Rendition
Update Metadata for a Folder or File
Add Aspects to a Folder or File
Remove Aspects From a Folder or File
Get and Set Permissions for a Folder or File
Working with Relationships Between Folders/Files
Introduction to the FDK Content Model
Installing the FDK Content Model into an Alfresco SDK AIO Project
Upload Files Needed When Creating Associations
Create a Node with Associations Using the FDK Content Model
List Associations for a Node
Create an Association for a Node that Exists
Deleting Associations
Manage Comments for a Folder or File
Add a Comment
List Comments
Update a Comment
Delete a Comment
Manage Tags for a Folder or File
Add a Tag
List Tags
Delete a Tag
Search for a Tag
Copy Folders and Files
Move Folders and Files
Lock a File for Editing
Create a Link to a File
Delete a Folder or File
Delete File Rendition
Delete File Version Rendition
List Deleted Folders and Files (Trashcan)
Restore Deleted Folders and Files (Trashcan)
Cloud Storage Properties
List Storage Properties for a File
List Storage Properties for a File Version
Archive a File
Archive a File Version
Restore File from Archive
Restore File Version From Archive
Managing Sites
Create a Site
Update a Site
Add Content to a Site
Add Members to a Site
Managing People and Groups
List People (Users)
Create a Person
Get Person Metadata
Update a Person
Request Password Reset for a Person
List Groups a Person is a Member of
List Groups
Create a Group
Get Group Metadata
Update a Group
List All People and Groups in a Group
Add People and Groups to a Group
Delete a Person or Group from a Group
Set Permissions for a Group
Managing Audit Applications and Logs
Enable Auditing and Alfresco Access Audit Application
List Audit Applications
Get Audit Application Metadata
Enable or Disable an Audit Application
List Audit Entries (Logs) for an Audit Application
List Audit Entries (Logs) for a Node
Get an Audit Entry (Log)
Delete Audit Entries (Logs) for an Audit Application
Delete an Audit Entry (Log) for an Audit Application
Searching for Content
Finding Folders and Files by a Term
Finding Sites by a Term
Finding People by a Term
Finding Content by a Search Query
Searching Text Content
CMIS Query Finding Files by Name
Lucene Query Finding Files Modified Last Week
Searching by Content Type and Controlling Paging and Sorting
Searching by Aspect
Searching by Tag
Faceted Search
Term Highlighting Search
Reference
Debugging
Prerequisites
Debug in a Docker Environment
Configure Docker Compose for Remote Debugging
Run Content Services
Debug Source Code
Debug in a Tomcat Environment (No Containers)
Java Foundation API
Getting Started
ActionService
ActivityService
AttributeService
AuditService
AuthenticationService
AuthorityService
CategoryService
CheckOutCheckInService
ContentService
CopyService
DictionaryService
FileFolderService
JobLockService
LockService
MessageService
MimetypeService
ModuleService
NamespaceService
NodeService
Setting Content for Node
Deleting Nodes
Managing Multi-Value Properties
NodeLocatorService
Custom Node Locator
PermissionService
PersonService
RenditionService
Rendering Engines
Sample Code
RetryingTransactionHelper
SearchService
SiteService
TaggingService
TemplateService
VersionService
WorkflowService
CMIS API
CMIS Basics
CMIS Repository
CMIS Query
CMIS Services
CMIS Object Model
CMIS Bindings
Content Services Configuration Settings
Getting Started with the AtomPub Binding (XML)
What Does a Request Look Like?
Getting the Service Document
Getting Information on a Node
Getting the Children of a Node
Getting the Contents of a Document
Updating the Contents of a Document
Getting Started with the Browser Binding (JSON)
Getting Content
Creating Content
Compact JSON Return Values
Using Aspects
Appending Content
CMIS Item Support
Working with the CMIS API from Java
Working with Alfresco Aspects from OpenCMIS
Adding Aspects to a Document or Folder
Removing Aspects from a Document or Folder
Using the CMIS Workbench with Alfresco
Web Scripts
Understanding Web Scripts
Web Script Types
Web Script Framework
Web Script Components
Naming Conventions
File Locations
URI Anatomy
URI Template
Format Readers
Response Status Code Templates
Invoking Web Scripts
Working with Client Limitations
Tunneling HTTP Methods
Forcing Success Response Status
JSON Callbacks
Exception Handling in Web Scripts
Caching
Runtime Cache Controls
Descriptor Cache Controls
Authenticating Web Scripts
JSR-168 Authenticator
Custom Client Authentication
Forms and Web Scripts
Internationalization (i18n)
Creating Resource Bundles Supporting i18n
Adding Resource Bundles for Additional Languages
Overriding the Default Message Bundle
Java-backed Web Scripts
Java Approach to Web Scripts
Surf Framework
Surf Content Types
Content Delivery Services
Model-View-Controller
Spring Web MVC
Surf View Composition Framework
Pages
Templates and Regions
Components
Presentation Content
Surf Objects
Templates and Surf
Web Scripts and Surf
Connectors and Credentials
Connectors and Endpoints
Credentials
Authenticators
Remote API
Surf JavaScript Root Objects
Context Object
User Object
Content Object
Page Object
Template Object
Config Object
Instance Object
Sitedata Object
Surf Object XML Quick Reference (SiteData)
Advanced Surf Topics
Surf Checksums
Debug and Production Suffices
Surf CSS Data Image Support
Configuration in Share
Surf Dependency Aggregation
The Group Attribute
Mixing <@script> and <@inlineScript>
Configuring Surf to Aggregate Dependencies
Aggregated Dependency Outpu
Debugging
The Output Directives
FreeMarker
Default Root Objects
FreeMarker Extensibility Directives in Web Script Templates
Share Document Library
jsNode Reference
Methods
Properties
Predefined Evaluators
Evaluators
Comparators
Evaluator Instances
Forms Reference
Form Controls
Forms Configuration Syntax
EXIF Renderer Source Code
Repository JavaScript Root Objects
Simple Root Objects
Root Objects that Expose ScriptNode Objects
Root Objects also Available in Web Scripts
Root Objects that Expose Additional APIs
Root Objects that Expose Services
Introduction to Aikau
Goals
Building on Previous Work
Zero Build
Encapsulation
Cross JavaScript Library Support
Continued Extensibility
More Information
Tutorials
Overview
Configure the Model Manager tutorial
Navigate to Model Manager
Create a new model
Create a new type
Create new custom type properties
Add new type properties to the Layout Designer
Create new aspect
Create new aspect properties
Add new aspect properties to the Layout Designer
Activate the model
Apply custom type and aspect to a file in Alfresco Share
Configure Smart Folders
Set up claims management
Configure claims management
(Optional) Create a rule to define your Smart Folder structure
Create a new claim
Add new claim files
Apply multiple templates
Add policy files and review the final claim structure
Configure Single Sign On
SAML
Prerequisites
Configuration
Configure a realm and clients
Configure LDAP synchronization
Configure a service provider for Keycloak
Configure a service provider connection
(Optional) Enforcing SAML
Configure Alfresco Content Services properties
Configure Alfresco Digital Workspace
Configure Alfresco Share properties
(Optional) Configure Alfresco Sync Service
Configure Alfresco Process Services
(Optional) Configure a connection between Process Services and Content Services
(Optional) Configure a mobile client for Process Services
(Optional) Configure a client for Content Services for iOS
Verify the configuration
LDAP
Prerequisites
Configuration
Configure a realm and client
Configure LDAP synchronization
Configure Alfresco Content Service properties
Configure Alfresco Digital Workspace
Configure Alfresco Share properties
(Optional) Configure Alfresco Sync Service
Configure Alfresco Process Services
(Optional) Configure a connection between Process Services and Content Services
(Optional) Configure a mobile client for Process Services
(Optional) Configure a client for Content Services for iOS
Verify the configuration
Kerberos
Prerequisites
Configuration
Configure Kerberos files
Configure Alfresco Content Services (ACS)
Configure Alfresco Share
Configure Alfresco Digital Workspace
Configure Alfresco Process Services
(Optional) Containerized deployment
Kerberos configuration files
Share configuration file
Dockerfiles
Clustered deployments
Verify the configuration
Develop a Platform Extension
Content Model Tutorials
Creating a content model
Creating content of custom type
Adding a custom property
Share configuration for custom types and properties
Adding an association
Adding an aspect with Share configurations
Adding mandatory aspect
Repository Web Scripts Tutorials
Listing pre-built web scripts
Invoking a web script using cURL
Developing a Hello World web script
Locating the Hello World example
How Hello World works
Creating a Hello User web script with authentication
Returning a JSON response format
Selecting a response format
How Hello User works
Specifying user identity
Using the JSON callback
Understanding how the JSON callback works
Processing complex HTTP requests
Configuring a web script
Creating a web script using cache controls
Processing multipart forms
Testing the upload web script
Creating request processing web scripts
Extending the request processing web script
Creating a photo search script
Developing a Folder Listing web script
Creating a description document
Creating a controller script
Parsing the web script URI
Calling services
Constructing the model
Creating a response template
Accessing the model
Accessing services
Registering and testing web scripts
Creating multiple response templates
Adding a response status code template
Constructing the model
Registering a Java-backed web script
Declaring service dependencies
Creating a new kind of web script
Testing the new kind of web script
Creating a Share UI Extension Project
Header Tutorials
Customizing the Share Header style
Customizing the Share Header menu
Customizing the admin tools menu
Customizing the Sites menu
Removing a menu item
Page Tutorials
Adding content to a Surf page
Removing content from a Surf page
Customizing (web script properties) the footer text for a Surf page
Customizing (web script controller) the WebView dashlet on the Dashboard page
Customizing (web script template) the footer text for a Surf page
Adding a new Surf page to Share
Override Share sign in page
Making the new page the default
Localizing Pages
Changes for the updated UI framework
Language Variations
Summary
Document Library Tutorials
Adding new actions
Preparations for the Send-As-Email DocLib action
Implementing the Send-As-Email DocLIb Action
Implementing the Call-Web-Script DocLib Action
Implementing the Show-Custom-Message DocLib Action
Implementing the Go-to-Google DocLib Action
Adding new metadata templates
Implementing the custom Metadata Template for the acme:document type
Implementing custom rendering for the Document Identifier field
Adding a menu item to the “Create…” menu
Customizing a Surf JavaScript Widget
Conditional Rendering (Evaluators) Tutorials
Sub-Component Evaluations
Improving your Sub-Component Evaluations code
Selecting an evaluator
Creating a custom evaluator
Styling Tutorials
Adding a custom Share Theme
Customizing the Share Header Style (Aikau)
Adding AMD packages (Aikau)
Client debug mode
Supported Platforms
More information:
Sample Code: