You are on page 1of 136

SnapLogic® User Guide

 

 

Document Release: October 2013

 

 

 

 

 

 

 

 

 

 

 

 
SnapLogic, Inc.
2 W 5th Ave, Fourth Floor
San Mateo, California 94402
U.S.A.

www.snaplogic.com

Copyright Information
© 2011-2013 SnapLogic, Inc. All Rights Reserved. Terms and conditions, pricing, and other information
subject to change without notice. ”SnapLogic” and “SnapStore” are among the trademarks of SnapLogic,
Inc. All other product and company names and marks mentioned are the property of their respective own-
ers and are mentioned for identification purposes only. “SnapLogic” is registered in the U.S. and Trademark
Office.

Table of Contents
SnapLogic® User Guide 1

Table of Contents 3

Preface 7

About SnapLogic 7

About This Guide 7

Concepts 9

SnapLogic Architecture 9

Key Concepts: Components, Pipelines, and Snaps 11

The SnapLogic Design Process 11

User Interfaces 13

Introducing SnAPI 13

Introducing the Designer 13

Sidebar: Foundry 17

Sidebar: Library 18

Canvas 20

Slider 21

Components 25

Creating and Configuring a Component 25

Suggestions for Component Properties, Inputs, and Outputs 28

Components for Connecting to Databases 29

Components with Pass-Through Fields 32

Populating Default Values in Output Fields 35

Component Parameters 36

Validating a Component 37

Pipelines 39

Creating a Pipeline in Designer 39

Configuring a Pipeline in Designer 39

Updating a Pipeline in Designer 42

Mapping Components with Field Linker 43

Creating Data Service Pipelines and Accessing Feeds 44

-3-

SnapLogic® User Guide Error Handling to Address Connection Problems and Data Errors 47 Executing Pipelines 49 Scheduling Unattended Pipeline Execution 52 Enabling Email Notifications 53 Tracing Data to Debug Pipeline Execution 54 Snaps 57 Accessing Snaps 57 Installing Snaps 58 Configuring Snaps 59 Developing Snaps and Further Participating in the SnapLogic Community 59 Administration 63 Working with Users and Groups 63 Starting and Stopping Servers 65 Configuring SnapLogic Server 65 Signed SSL Certificate Installation 70 Clustering Servers 71 SnapLogic Server High Availability and Failover 76 Memory Configuration Guidelines 78 Authentication: Active Directory-Based or File-Based 80 SiteMinder Support 85 Security Overview 87 Enabling SSL 88 Management Console 90 Log Files 94 Sandboxing to Protect Your SnapLogic Environment 94 Importing and Exporting 94 Snapshots 97 Running SnapLogic Behind a Proxy 98 Data Types and Output Representation Formats 100 SnapAdmin Utility 102 Sidekick 108 Appendix: Completing Tasks in SnAPI 109 -4- .

Table of Contents Creating and Configuring a Component in SnAPI 109 Component Suggestions in SnAPI 110 Configuring Pass-Through Fields with SnAPI 110 Specifying Parameter Values at Runtime in SnAPI 111 Validating Components in SnAPI 112 Creating a Pipeline in SnAPI 112 Creating a Data Service Pipeline in SnAPI 113 Mapping Components in SnAPI 114 Executing Pipelines in SnAPI 114 Data Tracing in SnAPI 115 Appendix: SnAPI and PostgreSQL 117 General 117 Prerequisites 117 Triggers 117 Appendix: ACLs 120 Glossary 125 -5- .

SnapLogic® User Guide -6- .

 and extensible data flow  architecture and straightforward subscription model. open. -7- . 1 Preface The SnapLogic User Guide contains instructions for performing data integration using   several  SnapLogic interfaces: its graphic user interface.  Cloud. Designer. About This Guide The SnapLogic User Guide is an instructional guide for using the functionality available within  SnapLogic. It contains descriptions. About SnapLogic SnapLogic is a data integration platform with an innovative. Web. or enterprise application or data source through Components and Pipelines. SnAPI. The  content is addressed to data integration designers using either the SnapLogic Designer or  SnAPI. and examples. definitions. SnapLogic connects to almost any SaaS. proprietary. SnapLogic is an alternative  to closed. client-server-based integration solutions and the massive amount of  hand-coding still being performed to accomplish data integration in the marketplace today. and its application   program inter- face. pro- viding information as a utility to business users and applications. step-by-step instructions.

SnapLogic® User Guide -8- .

SnapLogic Architecture SnapLogic consists of a number of architectural constituents. including the   SnapLogic Server  with its two interfaces and metadata repository. A SnapLogic Server can run directly on  a data source along with the database. write. or file server. application. and operation Com- ponents and simply snap them into the Server. limitlessly extending the Server's connectivity  and functionality. SaaS. 2 Concepts This section of the document provides an overview to the architecture and concepts of the  SnapLogic application.  The SnapLogic Server's open API enables anyone to create read. The SnapLogic Server features:  l Integration of data from any source (including Web. The SnapLogic Server manages the instantiation and execution of Components and Pipelines. and on-premise data)  l Universally extensible SnapLogic Component API -9- . It can also run as a stand- alone integration server. and the Component   Servers with their APIs. accessing SnapLogic Components across the network.   The SnapLogic Server and Metadata Repository The SnapLogic Server is a lightweight server process that accesses data from one or more  sources and executes SnapLogic integration Pipelines.

 drag-and-drop visual interface for combining Components and Pipelines and defin- ing their execution and results.10 - . or for those who wish to  create Components and Pipelines through code generation. and extensions  l Access to downloadable and reusable integration extensions The SnapLogic User Interfaces: Designer and SnAPI SnapLogic has a graphic user interface in the form of the SnapLogic Designer. including a robust set of  Component connectors. and  Component Containers can be distributed across a network of hosts to improve computation  power. The iso- lation of the Components from the main SnapLogic Server process improves reliability. functions. so no client software installation is required. and an appli- cation program interface in the form of SnAPI:  l SnapLogic Designer: The SnapLogic Designer is a browser-based visual configuration  tool for creating and executing data integration solutions.  Java/Python Component Servers The SnapLogic Component Servers are processes within which the Components run. This architecture enables components to be implemented in a variety of programming  languages. a browser-based drag-and-drop GUI  l Enterprise ETL functionality  l Searchable metadata repository of Pipelines and Components. This enables you to access  your SnapLogic data flow server from anywhere. The Designer enables you to:  l Create Components from the SnapLogic Server Foundry  l Assemble data integration Pipelines  l Create data services from your data sources  l Preview and execute Pipelines  l Schedule unattended Pipeline runs  l SnAPI: The SnapLogic Application Program Interface. SnAPI. is the programmatic inter- face to the SnapLogic Server that enables you to create and use Components and Pipe- lines from your application or development environment. SnAPI is ideal for users who  do not need the visual interface of the SnapLogic Designer. The SnapLogic Designer application runs inside your  Web browser.  SnAPI supports the following  languages:  l Python  l Java Most of the actions you can perform in SnAPI can also be performed in the Designer. The Designer provides a sim- ple. .SnapLogic® User Guide  l SnAPI scripting and command-line API  l Deployment on-premise or in the cloud  l SnapLogic Designer.

 regardless of the interface you use.  A Snap in SnapLogic is comparable to a smart phone app.11 - . and write it to a database. or as complex an  operation as to connect to an instance of Microsoft® Dynamics CRM. The SnapLogic Design Process There are two main approaches you can take when you create data integration solutions in  Designer:  l Sketch. the  Snap adapts and provides you access that takes this change into account. analyze the source data. once configured. such as  read. A Snap can perform as simple a task as to read data from a file. (Refer to Mapping Components to Each Other  . function. or data flows. and Snaps When you work with SnapLogic. then configure: Drag and drop Components onto the canvas and link them. reformat it. a simple Snap can stand alone or participate in a Pipeline. such as a  join or filter.  leaving configuration for another time. or an application  plug-in. These generic  templates. which contains Components for inserting contacts into and  deleting contacts from Salesforce. It is any “pluggable” piece of code that has  been conveniently packaged to run seamlessly in the SnapLogic Server. Components are the building blocks of Pipe- lines. the main concepts to  understand are Components. a browser add-on. Components are generally classified as Connectors (Components  that read or write data) and Operators (Components that perform an action.  l Pipelines: A Pipeline is a collection of Components linked together to orchestrate a  flow of data between end points. on data). Concepts Key Concepts: Components. and Snaps:   l Components: A Component is an object used to perform a simple subtask. The definition of "Snap" is therefore a recursive one: A complex Snap can contain multiple  Pipelines. and usually high-level. When changes have been made to standard or custom objects. or act on data. For example.   l A Snap can also consist of a single low-level building block. Strung together. such as  the Salesforce Snap. write. Pipelines. Basic templates for Components are included in your SnapLogic  installation (refer to the Component Reference for the list of Component templates that  ship as part of SnapLogic). Pipelines.   l A Snap can comprise a complete Pipeline packaged as a simple Component to  insert an item.  and provide full access (data and functionality) to all standard and custom objects within  Microsoft Dynamics CRM. a  Snap can take various shapes:  l A Snap can be a collection of Components that are functionally related. Specifically. become configured Components that are stored in the Snap- Logic Server repository. such as a filter. and reside in the Designer's Foundry panel. a simple Pipeline may read data from an  RSS feed.   l Snaps: A Snap is the encapsulation of an integration task or subtask that performs a  complete. and can be found in the Designer's Library panel.

12 - .) Once all your Components are configured. you can link them to  specify data flow.)   l Configure. . (Refer to the Component Configuration  and Mapping Components to Each Other with the Field Linker sections for detailed con- figuration instructions. then connect: Click on the Pipeline's Components and links displayed on  the canvas. and use the slider to configure them.SnapLogic® User Guide with the Field Linker for details.

Introducing SnAPI The SnapLogic Application Program Interface. SnAPI is ideal for  users who do not need the visual interface of the SnapLogic Designer. the SnapLogic Designer.  2. through which you can access all SnapLogic functionality using Python or Java.sh and bin/snaplogic_env. SnAPI. Scripts are provided for Linux environments:  l Linux: bin/snaplogic_env.  Begin by starting the server. refer to Using SnAPI within PostgreSQL for an introduction to SnAPI.  Snap- Logic provides SnAPI support for the following languages:  l Python  l Java Configuring Your SnAPI Environment If you plan to use SnAPI. Introducing the Designer Designer is the graphical user interface for SnapLogic.   l In a browser. SnapLogic provides scripts to configure your environment appro- priately. You can use SnAPI for tighter integration with various relational database management sys- tems. Launching Designer Follow these instructions to launch Designer from your computer desktop:  1.  SnAPI. . For example. where you can vis- ually create data integration scenarios. See "Starting and Stopping Servers" for information on  how to do this. enables you to create and use Com- ponents and Pipelines from your application or development environment. 3 User Interfaces SnapLogic has an intuitive graphic user interface.csh Source the appropriate script for your Linux shell to configure the environment. or for those who wish to  create Components and Pipelines by way of code generation. go to http://hostname:443/designer. where hostname is the  name of the machine where  SnapLogic is installed. The scripts set the environment variables required to locate the appropriate Snap- Logic libraries and executables.  This guide provides instructions for completing tasks using both Designer and SnAPI where  possible.  Launch Designer. SnapLogic also has an Application Program Interface.13 - .

 for example. The sidebar hosts the Library and Foundry panels:  l Library: The Library stores the projects you are building: your Pipelines and configured  Components.  l Foundry: The Foundry stores the building blocks from which you can build projects. You can also load it by  pointing your web browser to your server host and port number.  .14 - .  l Canvas: The canvas is your work area for sketching and configuring. Refer to the Sidebar: Foundry  Panel section for more details. or  design data flow.   Designer Menu Bar Menus occupy the top of the Designer screen and are focused on the following areas:  l Server: Use the Server menu to connect to. http://h- ostname:443/designer. or by selecting View > Sidebar. previews of  any highlighted object. The canvas and slider are each discussed in detail in this section.SnapLogic® User Guide Designer is a Flash/Flex application that runs in your web browser. and manage SnapLogic  servers. Refer to the Sidebar: Library Panel section for more details. The canvas is  equipped with a slider that displays in detail the properties and. disconnect from. Drag select items  from the sidebar onto the canvas to perform your data integration tasks. or more  specialized Snaps you have purchased from SnapStore. The Designer is divided into a sidebar and a  canvas. if available. as illustrated in the following figure. A Tour of SnapLogic's Graphical User Interface The Designer launches in a web browser window.  l Access these sidebar objects by dragging them onto the canvas to sketch.  l You can toggle the visibility of the sidebar by clicking the sideways arrow to the  left of the canvas.  These building blocks are either generic templates provided with SnapLogic.

 Default setting: No  l Show animations: Select this option to display animations in Designer. and log information.  animations. You must have at least one server registered in  order to use SnapLogic. User Interfaces  l Library: Use the Library menu to create new pipelines and to copy and paste high- lighted Library objects. You can answer "No.  This list describes the settings available and their default values:  l General: General settings include display preferences for the welcome page. and Pipelines if you know a portion of their name.  Default  setting: Yes    l Provide feedback with sound: Select this option to enable short notes that  alert you to possible errors or disabled tasks.  Default setting: Yes  l Show client log at startup: Select this option to display the Designer log infor- mation.    l Show welcome page at startup: Select this option for SnapLogic to display the  Start Page tab in the canvas when you launch Designer. check for software updates.  l Help: Use the Help menu to access SnapLogic resources." and your servers will be left in the registry  while all the remaining setting defaults are restored. you also want all servers to be removed  from this list.  l Remove: Highlight the server you want to remove and click Remove to delete the  server from SnapLogic's registry.   l Search Library & Foundry Bar: Use this search bar to search for Components. Settings To invoke the Settings dialog box.  Default setting: Yes   l Show last opened pipeline/resource at startup: Select this option to auto- matically see the last resource you were working on when you next return to Des- inger.  and to access scheduler.  and manage your SnapLogic licensing. That server displays when you open this  dialog box. For information on configuring  view settings.  l SnapStore: Click SnapStore to open SnapLogic's online marketplace in a new browser  window.  Snaps. However. You can purchase Snaps from SnapStore and open them immediately in  Designer.  Note that you can use the Reset to Defaults button if you do not want to keep your changes.  l View: Use the View menu to dictate what elements appear in your Designer screen.  When you first install SnapLogic.  Default setting: Yes   l Registered Servers: This setting displays a list of servers and their default connection  settings.  Default setting: None. see "Settings".  you are prompted to register a server. server. and feedback with sound. .15 - . you are asked to confirm  whether by restoring all default settings. select View > Settings from the Designer menu bar. if you click Reset to Defaults.

 Keep this option selected if you want SnapLogic to map Component-level  parameters up to the Pipeline level. You can always configure node names at your convenience. with the Smart Link button. or deselect it to disable the polling.SnapLogic® User Guide  l Continually poll connected servers for status (restart required): High- light the server to which you want to apply this setting.  Default setting: 100   l Use UTC rather than local time for datetime values: Use this setting to  specify whether the system should use UTC instead of the system's local time. use this setting to  lower the maximum.16 - . by  selecting the Component on the canvas and configuring its properties in the slider. The node name is  strictly metadata that aids you to recognize the Component after you have con- figured it. Snap- Logic automatically places the Component-level parameters at the Pipeline level  as well. The max- imum number of records SnapLogic can preview is 100.   Default setting: No     l Automatically manage parameter mappings: When this option is selected  and you drag a Component from the sidebar into a Pipeline on the canvas. or to  launch auto-link yourself. at your convenience. Dese- lect it if you want SnapLogic to assign its own node names without prompting you  for approval. Deselect this option if you prefer to define  Pipeline-level parameters manually.  Default set- ting: Yes   l Pipeline Options: This setting enables you to control which prompts and aids are auto- matically enabled when you work with pipelines:   l Perform"Smart Link" automatically when the field linker is displayed:  Select this option if you want SnapLogic to auto-link fields automatically as soon  as the field linker displays. Repeat this choice for each  server. Deselect this option if you want to link fields manually.  Default setting: Yes    l Automatically save before running/previewing.  Limit preview to (specify number) of records: This setting affects the preview  feature available in the canvas slider for Components that support preview.  Default setting: Yes   l Component Options: This setting enables you to control preview and pass-through  options. SnapLogic automatically assigns it a URI and a node name. and then either select the  option to enable it. If desired. You can change the automatically generated links if  they are not correct. . Note that you will need to restart SnapLogic and the servers in question  for your changes to take effect.  Default setting: Yes    l User server-side linking algorithms: Default setting: Yes  l Prompt me to provide a node name when I drop a Component on the canvas: When you first drag a Component template from the Foundry to the can- vas. Refer  to field linker section for more information on the field linker. Select this option if you want to be prompted to provide your own meta- data node name when you first drop a Component or Snap on the canvas. SnapLogic then prompts you to override the suggested node name if  desired.  This is often useful when integrating with other systems also on UTC.

 filtering rows of data. in their original ver- sion (prior to any configuration you have performed) are stored in the Foundry. prior to any configuration you have per- formed. Sidebar: Foundry The Foundry is the bottom panel in the Designer's sidebar and contains Component templates  for your use. To configure a Component. or performing a join. other Components.  such as connecting to a database. User Interfaces  l Initial zoom level: Modify this option if you want to change the default zoom  level for the objects in the canvas. The templates available in the Foundry include:  l Component templates provided with your purchase of SnapLogic.  whether complete or in progress. but rather. each property has a type (for example. consist of Component templates and appear in the Foundry. A Component  has properties. a  Component. drag it from the Foundry to the canvas and edit its properties. They are designed to perform specific  functions. they remain mere templates. its new home (with the work you have applied to  . but without configuration. and the object. The  moment you begin to manipulate an object. At  this point. any work you have done on the object is saved in the Library.17 - . The Foundry is akin to a hardware store where you procure your materials. binary or string )and a value (its value  can either be fixed. or targets. To create Components. Click Close to exit the Settings box.  Default setting: 100%  The Settings box provides a Reset to Defaults button should you choose to restore all the  options to their default values. Components are the building blocks of Snaps and Pipelines: they perform a simple subtask. is no longer considered a Component template.  l Snaps you have purchased from SnapStore. or made a parameter). you  must configure generic Component templates found in your Foundry to your specific needs  and connect them to data sources. The Component templates in the Foundry are generic.

Foundry Toolbar The Foundry toolbar has buttons for the following commands:  l Install New Snap: Use this command to install a new Snap that you have purchased  from SnapStore. or a portion of their name. in the form of tabs:  l The Foundry view tab ( ) displays all objects available to you in the Foundry. This organization is helpful when you have many Component tem- plates and want to look at them by type.  l The Recently Used view tab ( ). If no match is found. a link enables you to access  SnapStore. a SalesForce category is added to  the drop-down list.  l Search for Snaps: Use this command to search for Components or Snaps by their  name.SnapLogic® User Guide it) becomes the Library. where additional Snaps are available for purchase. organ- ized by object type and name. Refer to "Installing Snaps" for details. . Refer to the Library to locate any object which you have begun to con- figure. Foundry View Tabs The Foundry panel has two views. enables you to easily access the objects you last  selected. These Snaps  consist of Component templates and install into the Foundry under their own category. Sidebar: Library The Library is the top panel in the Designer's sidebar and stores all of your customized solu- tions and projects in the form of Components and Pipelines.  l The SnapLogic category displays only  Component templates that are shipped as part of  SnapLogic. which you can filter  using the drop-down list. Foundry Categories The Foundry panel separates its Component templates into categories.   l Additional categories appear when you purchase Snaps from SnapStore.  l Refresh Component List: Use this command to refresh your view of the Foundry if  you have purchased new Snaps that have yet to appear.   l The ALL category displays all objects available to you in the Foundry in a tree structure. if you purchase the SalesForce Snap.18 - .  For example.

 or have completed. When you  configure a Component or create a new Pipeline in SnapLogic. if you have Sidekick configured. this configured Component appears in the Library. which you can choose between from tabs at the bottom of  the panel:  . While you can- not create folders or alter the folder structure outside of the URI definition. Designer references all  the Component and Pipelines you create by uniform resource identifiers (URIs). where your projects come to life. Library View Tabs The Library panel has two views.7. If the Foundry is akin to a hardware store where you procure tools and materials. Data Folder For each server in the Library pane." which can point to objects located anywhere—in the cloud just as easily as on premise. or its sub-folders. there is a “data” folder. Configured Components and Pipelines reside in the Library. This visual organization helps you conceptually  sort the Component and Pipelines you build. and not by a  traditional folder structure. User Interfaces The Library contains all the objects that you are in the process of. you can drag Com- ponents in and out of these folders as necessary. which allows you to upload files  to this folder. hiding the complexity of your system architecture where needed. The moment you begin to  configure a Component template. Components that you  located in the Foundry and have begun to configure reside in the Library. but uses the  URI approach to referencing objects in order to build and execute bi-directional data flows  between applications. despite the convenient appearance of this folder structure. the Library  plays the role of your workshop. Library objects appear to be organized by folder. Library Folders Notice that in the Library view. The resources in the URIs it assigns are fully qualified "long point- ers. con- figuring. However. by right-clicking on the destination  folder and selecting Upload.  from within the Designer. it will display under the corresponding SnapLogic  Server. Sidekick As of 3.19 - .  Designer thus gives the appearance of a folder structure for your convenience. Designer automatically assigns  it a URI and a location in this folder structure. and makes them easier to locate. You can  create any number of Components from a Component template.

 Any one of these three actions displays the slider just below the canvas.  l Highlight a Component to configure its properties in the slider that occupies the lower  portion of the canvas. Use  the canvas for sketching: bringing appropriate building blocks into your data flow and con- necting them. or  run a Pipeline. Configuring refers to the Component and Pipeline properties you can edit in the slider. .   l The Recently Viewed ( ) view tab enables you to easily access the objects you last  selected. configure how fields from each  Component map to their downstream Component) by clicking on the link between them  to display the Field Linker in the slider below. Canvas Tabs and Toolbar The canvas initially displays a Start Page tab. or by editing the General Pipeline Settings. which you can enable or disable with the Show at startup option on the right.  See "Mapping Components with Field  Linker"for more information. See "Configuring a Component in Designer" for more  information. and drag building  blocks into the tab of your choice. and the  resulting Pipelines. and then configuring Components and Pipelines. The canvas occupies the entire work area until you select an object or a link in the canvas.  Sketching  refers to the process of dragging Component templates to the canvas and linking them to  others. or any new Pipeline you create. organized  in folders. The following are high-level instructions for using the canvas. You can have multiple tabs open. do this by selecting one or more Component templates  provided in the Foundry. Each  tab displays the name of its Pipeline.  l Connect multiple Components to form Pipelines. connecting.  l Edit the field links.20 - .SnapLogic® User Guide  l The Library ( ) view tab displays all objects available to you in the Library. Create data integration solutions in the can- vas by sketching. See "Executing Pipelines" for more information. Canvas The canvas is your main workspace in Designer. Designer creates a tab for every Pipeline that is open.  l Execute Pipelines directly from the canvas by clicking the Run Pipeline button in the  canvas toolbar. See "Creating a Pipeline in Designer"  for more information. their connections. you can preview the  results in the slider's Preview tab. The slider is further discussed in the Slider section. dragging them to the canvas. which are later discussed in  detail:   l Begin by creating Components. or connection properties (that is. For Components that support data preview. and renaming them. See "Cre- ating a Component in Designer" for more information. Use the slider for configuring the building blocks.

The canvas toolbar contains the following commands:  l Run Pipeline: Use this command to execute the Pipeline in the active tab. The content of the slider varies with the  object selected:    l If a Component is highlighted on the canvas. Its appearance is dynamic: it displays in a frame under  the canvas when you select a Component or a link on the canvas. and dis- plays Component properties you can configure. you may not be able to see the entire canvas toolbar without first  dragging down the divider to make the slider smaller and allow the entire toolbar to appear on  the canvas. The properties presented vary with the  type of Component and the functions it supports. the slider appears. or link.21 - . like sticky notes for your Pipeline. or open it in its own  tab alongside the other tabs topping the canvas. Zooming in and out is especially useful when you have a long or cluttered Pipeline.     l Export Pipeline to PDF: Use this command to save the currently displayed Pipeline to  a PDF file.  You can also maximize the slider to occupy the entire area of the canvas.  When you first launch Designer and start to work on the Canvas.  This is particularly useful in large.    l If a connection.  l Rearrange Components: Use this command to arrange the Components in an orderly  manner. or when you run a Pipeline. the slider is in Component mode. is highlighted on the canvas.   . the slider displays the Field Linker. complex Pipelines. Slider The slider resides below the canvas. Note that. Once  you select a Component or link.  l Snap to Grid: Use this command to have Designer automatically align the objects in  the tab.  You can change the default zoom percentage in the Pipeline Settings' Pipeline Options screen.  A toolbar  is located on the left side of the canvas. or run a Pipeline. depending on where the canvas  and slider are separated. User Interfaces The upper right corner of each tab enables you to control the zoom level for the selected area  in that tab.  l Show Grid: Use this command to display a subtle grid to help you visually follow or  align the layout of the objects in the tab.   l Pipeline Properties: Use this command to display the properties of the entire Pipeline  in the slider below.  l Search Pipeline: Use this command to search for specific Components in a Pipeline. the slider is not visible.  l Drag and Drop New Annotation to Canvas: Use this command to add Pipeline anno- tations to the canvas.

 l Add SnapLogic Server: Use this command to add other SnapLogic Servers to the  Library. the slider menu displays an Input page.   l Refresh Selected Server: Use this command to refresh your view of Library objects. the slider goes into Pipeline mode and dis- plays Pipeline properties and execution data.22 - . Slider in Component Mode Selecting a Component on the canvas opens the slider in the lower frame.SnapLogic® User Guide  l If you execute a Pipeline from the canvas.   The slider's Component information is divided into a series of pages. the following commands are available:    l Save: Use this command to save the work you are doing in Designer to the SnapLogic  Server repository. For example. For more information on using the slider in this mode. but neither an  Output nor a Preview page. Slider Commands Regardless of which page the slider displays. Inputs. and then the canvas is primed for you to begin sketching.    l Validate: Use this command to validate Components and Pipelines. Note that the pages available vary with the type of  Component selected in the canvas.  l Delete Selected Item: Use this command to delete an object you have highlighted in  the Library. Refer to the "Val- idating a Component" section for more details about this function. refer to the Components section. A URI dialog box asks you  to name the new Pipeline. you can con- figure the Component.  The slider's title bar displays the name and type of object highlighted in the canvas above. if you have selected a Component that  accepts inputs but produces no outputs.    l Suggest: Use this command to invoke automatic fill-in suggestions. and Outputs" section for more  details about this function. Slider in Field Linker Mode The Field Linker displays when you select the link between two Components. Navigate between them  by clicking the oval-shaped page names.     l Search for Snaps and Pipelines: Use this command to search for objects in the  Library using their name of a portion thereof. Refer to  the "Suggestions for Component Properties. Here. Library Toolbar The Library toolbar has buttons for the following commands:  l New Pipeline: Use this command to create a new Pipeline. This button is only  enabled when you are viewing Components that are eligible for suggestions.  .

 The line between them indicating their con- nection has a ring in its center. refer to the Pipelines section. . click the Run Pipeline button in the can- vas toolbar. The Field Linker automatically suggests field-to-field mappings when field names are the  same (for example. For example. User Interfaces To connect two Components to each other. Slider in Pipeline Mode If you have Components linked to each other in the canvas. Select- ing the link displays the Field Linker in the slider. and is joined to the  green input frame of the Prospects Component. Change individual links by clicking on the output field in question and selecting an  alternative from the drop list. The Field Linker displays output fields in a  column alongside input fields of the downstream Component. this ring represents the link between the Components. When you are  ready to execute the data flows within the Pipeline. The slider now displays Pipeline information. select the bottom (output) frame of the first Com- ponent and drag your mouse to join it to the top (input) panel of the downstream Component. the output frame of the Leads Component appears purple. the "Address" output field of the Leads Component is automatically linked  to the "Address" input field of the Prospects Component).  For detailed information on working with Pipelines. you have a Pipeline. You do not have to accept these sug- gestions.23 - .

SnapLogic® User Guide .24 - .

 once configured. write.  4. To create a Component. or operate upon data. Components are the building blocks of Pipelines. respectively). write. such as a join or filter. drag an unconfigured Component template from the Designer's  Foundry panel onto the canvas. connect the Components to data sources. Strung together.  Specify a URI in the New [Component Type] prompt that displays. and can be found  in the Designer's Library panel.  Double-click the desired Component template in the Foundry.  2. Com- ponents are generally classified as connectors (these are further divided into consumers and  producers: Components that read or write data. such as read. Configured Components are  stored in the SnapLogic Server repository and can be found in the Designer's Library panel.25 - . continue with the instructions in this section. These generic templates.  Configure the Component properties in the canvas. click Validate. and  reside in the Designer's Foundry panel.  3. The canvas displays Com- ponent properties for you to configure.  . become  configured Components that are stored in the SnapLogic Server repository. 4 Components A Component is an object used to perform a simple subtask. referring to the list of Component  Configuration Properties if required.  Basic templates for Components are included in your SnapLogic installation (refer to the Com- ponent Reference for the list of Component templates that ship as part of SnapLogic).  other Components.   Creating a Component in Designer To create a Component in Designer:  1. creating a Component refers to configuring an instance of a generic Com- ponent template to read.  If you wish to validate your work. or data targets to form Pipelines. If you are in  sketching mode and prefer to configure afterward. and operators (Components  that perform an action.  5. on data).  Click OK. as described in the Pipelines section-- and then return to this section for configuration instructions. or data flows. If you are in configuration mode. or act on  data. and refer to the "Validating a Com- ponent" section for details. The Component you just created now displays in the Library.  Creating and Configuring a Component In this context.

 Refer to the "Specifying Component Inputs"section for details.26 - . General Component Information The General screen describes a Component's basic information:   l URI: The unique URI that SnapLogic assigns to the Component. Configuring a Component in Designer The following tabs open to Component configuration screens for most Components in the  slider:  l General: General information about the selected Component. if you wish to accept the default URI.   l Parameters: Parameters are variables that can be used for runtime substitution in the  properties of Components. and add or  remove parameters.   l Properties: Properties vary for every Component. Using parameters enables you to use a single Com- ponent or a single Pipeline for multiple purposes. Save the Component as it  is now. Refer to the "Specifying Component  Outputs" section for details. Alternately. you can create a Component by dragging  the Component Template onto the canvas. or data that  can serve as inputs to downstream Components. Refer to the "Validating a  Component" section for details.    l Component: The Component used. and at some later point. You can edit this information. Once you drag a Component to the canvas.  You can also return to the configuration step later. save it  with a name of your choice and configure it. Refer to the "Previewing Component Execution" section  for details. drag it from the Library to the canvas to edit its prop- erties in the slider. and ena- bles you to examine a subset of the Component output rows without actually executing  the data integration scenario. This field displays the original Component template used in your  Component.SnapLogic® User Guide  6. The Parameters tab displays Com- ponent parameters and their default values.    l Output: The Output tab only displays for Components that produce outputs. Some properties can be edited.  Click Save to save your Component (whether complete or not) in the SnapLogic Server  repository.  . the type of function it performs may not be  immediately obvious. You can use parameters to avoid hard-coding property  values that are likely to change. Refer to the "Component Parameters" section for more infor- mation on parameters.    l Input: The Input tab only displays for Components that consume input data for the pur- pose of performing functions on them or for passing them through to another down- stream Component.  l Preview: The Preview tab only displays for Components that support preview.  Refer to the "Configuring Component Properties" section for details.

 You can add (using  the Add Output   button) and subtract (using the Delete Output   button) outputs and their  fields. Pausing your cursor over a property name displays an explanation of  the property.  l Created by: The username that defined this Component.  l Modified on: When the Component was last modified. not on Components upgraded from a pre- vious release.27 - . and descriptions. Configuring Component Properties Using the buttons on the Properties tab. Not all Components produce outputs.7 or later.  l Modified by: The username that last modified this Component. types. This is only visible on newly  placed Components in release 3.  The following list is a small sampling of properties common to many Components:   l Credentials: Username   l Credentials: Password   l Delimiter  l File name   l Is input a list  l Input field    l Output field   l Error Handling (Refer to the "Error Handling to Address Connection Problems and Data  Errors" section for details. The Output tab only displays  for Components that produce outputs.7 or later. This is only visible on newly  placed Components in release 3.  l Created on: When the Component was defined in the Library.  l Author: Optionally enter the username of the Component creator. This is only visible on  newly placed Components in release 3. Use the Value column to edit properties that allow editing. Refer to the Component Reference Guide for details about each Com- ponent's specific properties. In this screen. you can display the properties in either a list view ( ) or a treeview .7 or later. This may important when  verifying the functionality available in that Component. This is only visible on  newly placed Components in release 3.7 or later.  .) Specifying Component Outputs Outputs are pieces of data a Component produces that can serve as inputs to downstream  Components or Pipelines. You can change the default field names. you can configure the Component's out- put fields.  Properties vary for  every Component. Components  l Version: The version of the Component used in the Pipeline.    l Description: Optionally enter a description for the Component.

Specifying Component Inputs Inputs are pieces of data that a Component consumes for the purpose of performing functions  on them or (when supported) passing them through to another downstream Component or  Pipeline. you can change the maximum  from 100 to any lower number in the Resource Options of your Pipeline Settings. after specifying the filename property of a CSV Read Component.SnapLogic® User Guide Depending on the Component. and outputs.  explaining that the Component being edited does not support pass-through. the Com- ponent can inspect the file and determine the field delimiter. inputs. or to copy them to your Microsoft  Office Clipboard in tab-delimited format that is ready to be pasted into a spreadsheet  application. enter their values  here to run the preview.  . You can enable or  disable pass-through messages by editing the Resource Options in your Pipeline Settings. These suggestions can help you complete your Components. the data is truncated by an ellipsis hyperlink. Inputs. Suggestions for Component Properties. Here. If you  want faster previews or simply need smaller samples. You can see the start and  end times of your preview run. Not all Components accept input data. If the data source has fewer  records than the maximum setting. and Outputs SnapLogic can make "suggestions" about Component properties. Use the Print and Copy  buttons to print the rows generated in the preview. based on  the values of their properties. the number and type of output  fields. Click Run when you are ready.  Previewing Component Execution The Preview tab only displays for Components that support preview.  When  the data is too large to be displayed. The Input tab only displays for Components  that accept inputs. and descriptions. Click- ing on that link shows the complete data in another window. a message may appear to the right of the properties list.     l Runtime Information: Visit this tab to view runtime results. You can add (using the Add Output  button) and  subtract (using the Delete Output   button) inputs and their fields.   The default maximum number of rows generated is 100. Refer to the "Error Handling to Address Connection  Problems and Data Errors" section for details. the preview shows all the records available. If your Component has runtime parameters. types. and its status.     l Preview Data: Here is where you can view the output rows generated as the preview. This practice enables you to address the failed records while the  remaining records in the Pipeline execute. You can also add error outputs to Components so that erroneous records are collected in a  specified destination file. and even the field names (if a header row is present).28 - .  For example. you can configure the Component's input fields. You can change the  default field names. This tab has the following  subtabs:    l Run: Begin with this tab.

 and in some cases. . Every DB Read- er/Writer/Lookup Component contains a DB Connection Component property field in which you  specify the URI of the DB Connection Component containing the information about the data- base to which the Reader/Writer/Lookup Resource is to connect. and port number.29 - . SnapLogic  provides DB Connection Components for a variety of databases. you specify the connection details of the target database. produces suggestions  from the CSV Read Component regarding the output fields and how many header rows to skip. Suggestions are followed by a Confirm Action prompt. sometimes referred to  as probes.  providing such information as database name. Component Suggestions in Designer If a Component can provide suggestions. which you can opt out of seeing. Components Components are not required to suggest all fields. updating existing or  inserting new rows into a database. The Designer displays a dialog containing the Component's suggestions.  For example.  l DB Upsert: Use this Component for "upsert" (merge) functionality. meaningful suggestions  are impossible. update or delete data in a database. including:  l DB Connection - DB2   l DB Connection - JDBC   l DB Connection - MySQL    l DB Connection - Oracle   l DB Connection - PostgreSQL   l DB Connection - SQL Server   l DB Connection - SQLite   With a DB Connection Component. the Suggest button at the bottom of the slider is ena- bled. SnapLogic  provides the following DB Components:   l DB Reader: Use this Component to select data from a database. This allows connection-spe- cific details to be centralized in a single Component that can be shared by multiple DB  Reader/Writer/Lookup Components. See the Component Reference for detailed information about Components.csv file. Components for Connecting to Databases You can use SnapLogic to read data from or write data to one or more databases.  l DB Lookup: Use this Component to perform per record lookups.  Creating a Component from these templates requires that you also create a database-specific  connection Component using the appropriate DB Connection Component template.  l DB Writer: Use this Component to insert. You can choose to accept or reject any suggestions made. host name. setting the filename property to the name of a .

 called "Sales." The DB Reader Component specifies the URI of the DB Connection Component to use. This selection overrides the connection prop- erty you specified in the Component itself and allows parameter replacement to be per- formed.  .30 - . drag the DB Connection  Component onto the canvas. in addi- tion to the actual SQL statement used to read from the database. and one DB Writer that updates  the HR database with commission information.  The following illustration  shows an example Pipeline that accesses three distinct databases  with two DB Readers that read sales and account history data. Note that the DB Components have drop lists where you can  select which DB Connection Component to use.  When building a Pipeline with DB Reader/Writer/Lookup Components.SnapLogic® User Guide Connecting to Databases in Designer The following example illustrates the properties of a DB Reader Component that connects to a  MySQL database.

31 - . Components .

 When you link two Components. This reduces the field linking  to the absolute minimum. The following diagram illustrates the concept of pass-through fields. Component inputs only need to  specify fields that the Component requires for its computations. the inputs of Components in a Pipeline need not be explicitly designed to  handle all the incoming fields from upstream Components.32 - .SnapLogic® User Guide Components with Pass-Through Fields The pass-through capability allows Components to accept fields that are not specified as  inputs. Examples The following scenarios provide examples of how pass-through works. only  those fields specified as inputs of the downstream Component must be linked. Not all Components support pass-through.  . All the remain- ing unlinked outputs of the upstream Component are passed through to the downstream Com- ponent's output.  With pass-through. and pass these fields directly as their outputs. Each Component description in the Component Ref- erence declares whether it supports pass-through or not.

C are available in the output of Component II. Scenario 2: [Component I] (Input: N/A.   l Field B from Component I is mapped to field B in Component II.   l With pass-through disabled. Pass-through: No) -> [Component II] (Input: A.33 - .C are available in the output of Component II.Pass-through: No) -> [Component II] (Input: A.C. field A is available in the output of Component II.B.C are available in the output of Component II.B. Pass-through: Yes)  l Component I is linked to Component II and field A is mapped from I's output view to II's  input view.C .B. Output: A.   l Field B from Component I is mapped to field B in Component II.B. Field C is  not visible since pass-through is not enabled. toggle  the checkbox of the input whose fields you want to make available for pass-through linking.  Output: A.B.B.C. fields A. fields A. Components Scenario 1: [Component I] (Input: N/A.   l With pass-through enabled. Scenario 3: [Component I] (Input: N/A. Pass-through: No) -> [Component II] (Input: A. Pass-through: No) -> [Component II] (Input: A.  Output: A.  Output: A.C.B. Pass-through: Yes)  l Component I is linked to Component II and field A is mapped between I's output view to  II's input view.   l With pass-through enabled. When con- figuring Component output properties for any Component that supports pass-through. fields A.B.   . Scenario 4: [Component I] (Input: N/A. Configuring Pass-Through Fields with Designer The SnapLogic Designer provides a simple interface for configuring pass-through.  Output: A. Output: A. Pass-through: Yes)  l Component I is linked to Component II and field A is mapped between I's output view to  II's input view.B. Output: A. Note  that field B is not available in the output of Component II due to the fact that it is only  defined in the input view of the Component.   l Field B in Component II is mapped to NULL.B. Pass-through: No)  l Component I is linked to Component II and field A is mapped from I's output view to II's  input view. Output: A.   l With pass-through enabled.

  The next figure displays the Output side of the Filter Component." These are  the inputs it is accepting from the upstream "Leads" Component.SnapLogic® User Guide The following figure provides an example of the input fields accepted by the Filter Component  ("FilterLeads"). "FilterLeads" is the second Component in the Filtered_Qual_CA_Prospects Pipeline." The Leads Component is read- ing data from a comma-separated file and passing it through a filter. but does not operate on these  rows. Notice that the pass-through  option for fields coming from Input1 is enabled.  "FilterLeads" is selective on which rows it accepts as inputs.    . "FilterLeads. the Component is specified to accept  pass-through fields. Its  upstream Component is a CSV Read Component named "Leads.34 - . The Filter Component. that is. and outputs them directly to the next downstream Component. The previous figure displays the Input side of the filter Component.

 If you  select this value. You can specify NULL for this value in the  Field Linking dialog.  The ifnull(X. You can specify con- stant values for the default value. Components   Populating Default Values in Output Fields Providing a Default Field Value to Replace NULL A common scenario addresses the need to set default values for fields in a record when the  field value is NULL. application A may have a field for Pag- erNumber. whereas Application B has no such field. it returns X. For each field. create a Component using the String Operations Component. that field's value is set to NULL for each record. otherwise. one of the available values in the list is [NULL].Y) operator returns Y if X is NULL.35 - .  . For example. To this end. Providing a NULL Default Field Value Another common scenario involves a downstream Component with an input field that is not  present in the upstream Component. or reference other fields as shown in the example below.

csv When defining parameters. Component Parameters Parameters are variables you can set for run-time substitution in Component and Pipeline  properties. The following is an  example of the expression in this case:   CASE WHEN (${Field001} = 'True') THEN 'Yes' WHEN (${Field001} = 'False') THEN 'No' ELSE NULL END You can perform complex expressions to calculate the replacement values or reference addi- tional fields. rather than the entire path to the data file: File name file://data/logs/revenue_$?{DATE}.   A simple example is changing True and False strings to Yes and No strings.SnapLogic® User Guide Transforming Field Values If you need to transform values you can use the CASE expression to achieve complex value  replacement. the user can  specify the report type and date:   File name file://data/logs/$?{REPORT}_$?{DATE}. For example. A Component with a required  . the  user must only specify the date.  the parameter is referred to as a Required Parameter. as follows:  File name $?{INPUTFILE} You can also use parameters to specify only part of property. the Component author has the option to specify a default value.csv A property can contain any number of parameters. In the following example. Use parameters to avoid hard-coding property values that are likely to change. the parameter is called an Optional Parameter.36 - .  this enables you to use a single Component for multiple purposes. If the author specifies a  default value. use a  parameter for the filename property. In the following example. to create a Component that reads data files created on a daily basis. If no default value is specified. or  to require that the Component user provide a value at runtime.

Specifying Parameter Values at Runtime in Designer When executing Components or Pipelines from within the SnapLogic Designer.  a parameter is specified using the $?{PARAMETER} syntax. Refer to the following  table for a breakdown of this concept.    Validating a Component When you create a Component. the Leads_to_Prospects Pipeline  is open on the canvas. Validation  can perform basic checks.  User-Supplied Component Parameter Result Value Type Value  Required/Optional Value  None  Required  Error: No value provided for required  parameter None  Optional  Component parameter's default value Parameter Syntax in Designer and SnAPI When authoring a Component using either the Designer or the SnAPI programmatic interface. and enables you to  specify the values you want to set." is set to a comma. and so forth. "INPUT_ DELIMITER. the Run tab in  the slider displays the parameter names and their default values (if any).37 - . Components parameter cannot be executed without a value specified at runtime. In the following example. such as:  l Ensure that all the required properties have values specified    l Confirm that property values with constraints are set to valid values  . and the slider displays the Pipeline Run information. The parameter.  "LEADS. the value of the parameter." contains a value pointing to the file required. you can invoke the validation process at any point.

 validation can ensure that a specified file exists or  that a user name and password are valid. When the Management Console displays Pipelines or the Components  within a Pipeline.  Validating Components in the Management Console Outside of the design process. each Component can perform more advanced validation tasks that are specific to  the Component's function.SnapLogic® User Guide  l Check that all required input and output views are defined    l Verify that field and view name references are correct  In addition. you can also validate Pipelines and their Components in an  execution context. For example. For example. you can run validation from the console. most Components enu- merate all the validation fails at once. but there are situations where further validation  failures are only detectable after previous ones are rectified. Validating Components in Designer The Designer displays a Validate button at the bottom of the slider  when you view any Com- ponent that supports validation. . If anything fails to validate. Clicking Validate sends the Component to the SnapLogic  Server for validation. it is not possible to determine whether the user cre- dentials are correct. Refer to the "Management Console"  section for details. the SnapLogic Server replies with a mes- sage the items in the Component that require attention. until a missing  database hostname property is rectified. Typically.38 - .

  Configure the field links by clicking on each link that connects two Components to dis- play the slider's field linking dialog. (Refer to the Field Linking section for details.  Click New Pipeline and give the new pipeline a name.  6. you can link the Components and then configure them.) Follow these high-level steps to work with Pipelines in Designer:  1.  3.   5.  2. The main modes of action you can take on Pipelines in Designer are:  l Sketch: Drag and drop Components onto the canvas and link them.  4. You can also reverse the order of this step with the next. (Refer to the Component Configuration and Field Link- ing sections for detailed configuration instructions.  Drag the desired Component templates from the Foundry. and  write it to a database.  Configure the Components in the slider (refer to the section Configuring a Component in  Designer for more details). 5 Pipelines A Pipeline is a collection of Components linked together to orchestrate a flow of data between  end points. and linking them together in the logical order. A tab for the Pipeline opens in  the canvas. reformat it. leaving con- figuration for another time.39 - . Creating a Pipeline in Designer Creating a Pipeline involves selecting the Components that represent data sources. (Refer to the Executing Pipelines in Designer and Scheduling Pipeline Execution  sections for detailed execution instructions. For example.  that is.  and any data manipulation operations. or Components from the  Library. and  use the slider to configure them. Configuring a Pipeline in Designer Configuring a Pipeline can refer to configuring the following types of properties: . a simple Pipeline may read data from an RSS feed.  Link the Components together in the desired order by clicking on each Component and  dragging the connecting arrow to the desired downstream Component. targets. and drop them onto the canvas.  Click Run to edit Pipeline properties and execute the Pipeline.)  l Configure: Click on the Pipeline's Components and links displayed on the canvas.)  l Run: Execute Pipelines from the canvas and examine their runtime information in the  slider.

 Refer to the "Specifying  Pipeline Inputs" section for details. previewing data."  l Author: Optionally enter the username of the Pipeline creator." You can describe the correlation between a field from the Pipeline in  question and a parameter in the target Pipeline.  l Parameters: Use this page to define and set values for parameters at the Pipeline  level and to ensure that all Components with required parameters are mapped to Pipe- line parameters. This is discussed in detail in the "Configuring a Component in  Designer" section. This is discussed in detail in the  "Mapping Components with Field Linker" section.SnapLogic® User Guide  l Component properties: this refers to configuring the properties of each Component par- ticipating in the Pipeline. Navigate between them by clicking the oval- shaped page names.   l Description: Optionally enter a description for the Pipeline. the  . This information is metadata only.  l Pipeline properties: this refers to configuring the properties of the Pipeline as a whole. Refer to the "Gen- eral Pipeline Information" section for details. Refer to the "Pipeline Parameters" section for details. such as inputting run- time parameter values. The slider displays Pipeline Properties.  l Component: The Component used. click Run on the canvas toolbar next to the open Pipeline you  are viewing. Refer to the "Specifying  Pipeline Outputs" section for details. selecting a data tracing option.  l Connection properties (field links): this refers to configuring the properties of each link  between Components that participate in the Pipeline.  l Output: This tab displays outputs defined at the Pipeline level. Pipeline Properties To access Pipeline Properties. executing the  Pipeline.  l Input: This tab displays inputs defined at the Pipeline level. Pipeline Properties include a number of pages. and monitoring its status. The value here is "Pipeline.  l URI: The unique URI that SnapLogic assigns to the Pipeline.  l Related Pipelines: This button enables you to enter optional metadata information  about other Pipelines that together provide useful data streams. as described:  l General: This tab contains general information about the Pipeline. General Pipeline Information This screen contains general information about the Pipeline.  l Run: Use this page for tasks associated with executing pipelines. Refer to the "Executing Pipelines" section for  detailed information. this option facilitates  "data serendipity.  It is discussed in this section.40 - .

 which enables you to execute Pipelines  automatically at designated times. Click Finish.  3. .  Optionally enter a Display name for this entry and click Add. Use it also to ensure that all Components  with required parameters are mapped to Pipeline parameters. Pipeline Parameters Use this page to define Pipeline-level parameters.  2.  l Scheduler: This button launches the Scheduler. If you use the browse option. Refer to the following  table for a list of outcomes for each combination of Pipeline and Component parameters.  You can then add correlation information. Clicking the Add (+) button dis- plays the Add Input Mapping dialog.  enter the URI of a Pipeline or click the  browse button to locate a Pipeline on any server for which your Designer is  configured.  4. Clicking the Add (+) button dis- plays the Add Output Mapping dialog. Pipelines can define parameters  which are then mapped to Component parameters. and find your new output displayed in an additional  tab on the Output page.  Parameters are variables you can set for runtime substitution in Component and Pipeline prop- erties. Enter a name for the Pipeline-level output and select  the Component to it maps. this  enables you to use a single Component for multiple purposes. Pipeline-level inputs are mapped to  Component-level inputs in the Pipeline. Refer to the "Scheduling Unattended Pipeline  Execution" section for details. the Select Pipeline screen  dis- plays. and specifying the source field and target parameter  names for each row. Pipeline-level outputs map to Com- ponent-level outputs within the Pipeline.  Click OK to finish. Specifying Pipeline Outputs This displays any outputs defined at the Pipeline level. Pipelines SnapLogic Server does not execute on this information. You can add and remove outputs by using the + and - buttons. You can add and remove inputs by using the + and - buttons.  In the Related Pipelines screen. Like Component parameters. Use parameters to avoid hard-coding property values that are likely to change. clicking Add Row or Remove  when necessary. Specifying Pipeline Inputs This page displays the inputs defined at the Pipeline level.41 - . Pipeline  parameters can be either Required Parameters or Optional Parameters. Click Related Pipelines and  follow these steps to add a relation:  1. Enter a name for the input and select the Component to  which your Pipeline-level input maps. and that all required Pipeline  parameters have values. and find your new input displayed in an  additional tab on the Input page. Click Finish.

If you open a Pipeline in Designer.  While the Pipeline always sees a Component's current property values. and  parameters--not the Component's property values) as they are defined at that point in time. a background check verifies that its Components are up-to- date. you are adding a copy of that object. Updating a Pipeline in Designer When you add a Component to a Pipeline. A message displays to inform you that Components within the Pipeline have been auto- matically updated to reflect any changes if that is the case. which.42 - . Consult the following figure for an example of a parameter mapping. outputs. and then you modify the  interface of one of its Components.  The first Pipeline Parameter (that is.  If you have completed a Pipeline that the Scheduler now executes. the Component's inputs. The Pipeline  recognizes the interfaces of the Component (that is. subsequent changes to  the Component's interface are not reflected automatically in the Pipeline's copy of that object. a parameter at the Pipeline level) is LEADS. with a Default  Value that specifies the path of the .csv input file containing information on sales leads.  l All of the Pipeline's Components with required parameters must be mapped to Pipeline  parameters. is mapped to the Leads.INPUTFILE Component parameter. future scheduled runs of that Pipeline may fail. in the  Mapped To column. To update  .SnapLogic® User Guide User-Supplied Pipeline Param.Component Param- Result Value eter Type eter Type Value  Required/Optional Required/Optional Value  None  Required  Required/Optional Error: No value provided for  required parameter None  Optional  Required/Optional Pipeline parameter's default  value A Pipeline must have the following requirements met in order to execute:  l All required Pipeline parameters must have values provided by runtime.

  To link fields. Field Linking in Designer To connect two Components in Designer. The Field Linker automatically suggests field-to-field mappings when field names are the  same (for example. This link is manual. Change individual links by clicking on the output field in question and select- ing an alternative from the drop-down list. The output frame of the "from" Component appears purple. select the connection between two Components. The Field Linker  automatically suggests field-to-field mappings when field names are the same (for  . from which you can select the appropriate field. Selecting the link dis- plays the Field Linker in the slider. You do not have to accept  these suggestions. select the bottom (output) frame of the first Com- ponent and drag your mouse to join it to the top (input) panel of the downstream Component. the "Address" output field of the upstream Component is automatically  linked to the "Address" input field of the downstream Component). where it will automatically submit to a background check. How to Move a Pipeline  1. The Select Destination dialog opens. you can simply open it  in Designer. disable the option in  the Pipeline Options of your Pipeline Settings. Pipelines the Pipeline with the new version of the Component you have changed. The Field Linker's Tools include:  l Smart Link:Use this command to generate field linking suggestions.  perhaps SnapLogic did not suggest an output field corresponding to the "Work_Phone" input. Field linking is the detailed act of mapping  Component outputs to inputs of downstream Components. Note: If you do not want automatic Smart Link suggestions. usually green.  Select the new location for the Pipeline and click OK. as opposed to the automatic sug- gestions provided by SnapLogic. For example. On the right of the input column is a set of tools. this ring represents the link between the Components. When the Field Linker finds no obvious correspondence between fields. Mapping Components with Field Linker After you connect Components to each other to indicate the direction of data flow. The Field Linker displays output fields in a  column along- side  input fields of the downstream Component. The line between them indicating their connection has a  ring in its center.  Clicking Select Field next to "Work_Phone.  Select the Pipeline in the Library.43 - . you per- form the more specific process of field linking.  2. You can also delete the  object from the Pipeline and add it again. and is joined to the input frame of  the "to" Component." the other Component's "Phone_w" field is high- lighted as the appropriate output. The slider displays the Field  Linker. then choose Library > Move. The Pipeline and its related resources are copied over. it displays only a drop- down list in the output column.

    l Pipelines that have inputs or outputs. and can be readily con- sumed in Javascript using XMLHttpRequest(). This means that  all fields that have been auto-linked or fields you have linked manually retain their  links. The following diagram is an example of a Pipeline that can be used  as a data service endpoint: Pipeline P contains Components C1 and C2. To  create a data service endpoint. This means that the fields in  question provide no output values for the downstream Component. or if you have cleared the auto-generated sug- gestions. The result is that all of the rows in the output Component column  display "NULL.  the "Address" output field of a CSV Read Component is automatically linked to  the "Address" input field of the CSV Write Component. with no inputs or outputs. manual and auto-generated  alike. to C2's input. while any fields that remain unconnected will provide no output values for the  downstream Component." Creating Data Service Pipelines and Accessing Feeds SnapLogic Pipelines fall into two broad categories:   l Pipelines that are self-contained. and no input views. click Smart Link to regenerate them. However. The result is that all of the rows in the out- put Component column prompt you to select a field.   A Data Service Pipeline is a special form of the second category: it is a Pipeline that has only  one output view. . C2_Input1.  l Clear All: Use this command to clear all field linkings. A confirmation prompt displays to warn  you that any fields you have manually linked will be unlinked should you continue. By default. or both. These data service endpoints provide a simplified interface  to SnapLogic data streams and are easily consumed by any programming language that sup- ports a basic HTTP library.SnapLogic® User Guide example. In particular. as shown in the figure "Field Linker:  Clear All Command". C1_Output1.44 - . A confirmation prompt displays to warn you that any fields you have manually  linked will be unlinked should you continue."  l Null Remaining: Use this command to set any unlinked fields to NULL. assign an output to the Pipeline's output. these suggestions  already display when the Field Linker first opens. The result is that all unconnected fields in the output Com- ponent display "NULL.  l Null All: Use this command to set all output fields to NULL.  Creating a Data Service Pipeline in Designer A Data Service Pipeline is created by assigning the output of one the Pipeline's Components to  an output of the Pipeline. they are very Ajax-friendly. SnapLogic automatically makes the output of a Data  Service Pipeline available as a data service endpoint. if you have changed this  default behavior in your settings. Component C1 is  linked to Component C2 by connecting C1's output. Data Service Pipelines provide data in  response to a HTTP GET request. A confirmation  prompt displays to warn you that any fields you have manually linked will be unlinked  should you continue.

 This  assignment is performed when adding an output to the Pipeline in the SnapLogic Designer. This opens a new browser window with the feed's  URI. Pipelines The following figure is an example of a Data Service Pipeline defined in Designer. In this  example. Accessing a Data Service Feed in Designer To access a data service feed directly from Designer. you can select it. C2's output C2_Output1 has been assigned to the Pipeline output P_Ouput1. If the Component or  Pipeline has a valid feed. click on the URI link to access the menu.45 - . in the Pipeline Properties General tab  (shown in the following figure). .

46 - .  Components that produce structured or user-defined output. You can pass parameters to the Pipeline in the HTTP URI. The output name suffix is used to specify the out- put you are requesting.  as in the following example: http://host:port/feed/P/P_Output1 Note that the URI of the service endpoint is preceded by the /feed token and appended with  the output name of the Pipeline. such as the HTML Formatter and  XML Write Components. The /feed prefix is necessary to indicate to the server that a  GET to this URI triggers Pipeline execution.SnapLogic® User Guide Accessing a Data Service Feed in Your Browser To access the Data Service Pipeline. . Refer to the following diagram.content_type parameter appended to the URI.content_type=text/html Refer to the Output Representation Formats section for a list of the supported representations.content_type parameter. as in the following example: http://host:port/feed/P/P_Output1?sn. output data in a representation that cannot be modified in a mean- ingful way by specifying the sn. point your browser or application at the data service URI. as follows: http://host:port/feed/P/P_Output1?P_PARAM1=value&P_PARAM2=someothervalue The Representation of data from a data server endpoint is negotiated between the application  and the SnapLogic Server. You can explicitly request a certain representation by specifying  the sn.

 Such a Pipeline begins  with a CSV Read Component that outputs data to not one. For exam- ple. reader. You can  configure connection.  You can design Pipelines with tolerance for these obstacles to minimize run failures.47 - . but two CSV Write Components: a  standard CSV Write Component that writes data to the target file. Pipelines Error Handling to Address Connection Problems and Data Errors The most common causes of Pipeline run failures are connection problems and data errors. and a CSV Write Component  that collects error rows and writes them to a bad data file. and writer Components for a specified number of retries at spec- ified intervals when they encounter network connection problems. consider a Pipeline that reads data from a comma-separated file. You can also prevent a sub- set of data errors from causing an entire Pipeline run to fail by setting a tolerance level for the  number of errors and creating an error output that collects the erroneous records. .

 (Note also that if the number you specify here is  greater than the number of records in the source file. Add two CSV Write Com- ponents. and again at 45 seconds.  In the CSV Read Component Properties.  Create a new Pipeline.  Error Handling Options address both data errors and connectivity problems. and every 15  seconds until it exceeds either the Maximum number of retries or the Time- out in seconds. The first  option regards data errors. This time  period is the basis for the next option. A Component executes suc- cessfully if its errors do not exceed the maximum specified here. the Pipeline executes suc- cessfully even if the entire output is written only to an error file.  l Exponential backoff: With the exponential backoff strategy. and the Component encounters any errors at all. the  number of seconds SnapLogic must wait before retrying to connect.  3. and if the errors  are sent to error outputs. using the same interval every time. click the View/Edit link for the Error Handling  property. For example. The interval it uses is specified  in Wait time before retrying option.)  l Wait time before retrying: If the initial network connection attempt fails. the wait-time-based strategy retries again at  30 seconds after the initial failure. the rest address connection failures:  l Maximum number of data errors: This setting specifies the tolerance for  errors before a Component fails with an error status. If you do not specify an error output to collect the bad  data. you can expand the Error Handling folder and edit the  properties there. the previous  wait time is doubled between retries. it will fail even without  exceeding this maximum. if the Wait time before  retrying is set to 15 seconds. this strategy waits 15 seconds before the first  .SnapLogic® User Guide Follow these instructions to configure error handling for the sample Pipeline shown in the dia- gram of a Pipeline with an Error Output:  1. starting with a CSV Read Component.  2. if the Wait time before  retrying is set to 15 seconds.  l Retry strategy: There are two retry strategies:  l Wait time based: The wait-time-based strategy retries to connect peri- odically.48 - .  Specify your error handling preferences in the Error Handling Options dialog. If you are in tree view. For example. The initial interval it uses is specified  in Wait time before retrying option.

 The Component Output screen displays the new Error  Output you have added. or reject  the suggestions by clicking Close. the Maximum number of retries. click the create error outputs link. intermittent connection problems or data errors do not  have to prevent its successful execution. as shown in the diagram at the beginning of this section. or trigger them from other applications. Pipelines retry. Using  Designer is easy and intuitive.   l SnapLogic Designer  l Management Console  l SnapAdmin Utility  l SnAPI .  and continues to double the interval until it exceeds either the Maximum  wait between retries. You can inspect the error file and address the erro- neous records separately. or the Timeout in sec- onds. a Select Outputs to Link dialog prompts you  to specify the output that provides data to the error file.  l Timeout in seconds: Time limit on how long the Component must retry con- necting in the case of a network connection failure. but can be impractical if you prefer to execute Pipelines on a  periodic schedule.  4. This value covers the period  starting when SnapLogic initiates the first connection attempt. 60 seconds before the third retry. the wait time between  retries increases cumulatively until it reaches the value in this field. If you are using the interval doubling strategy.  Link the CSV Read Component to the CSV Write Component you have designated to  catch the bad data. 30 seconds before the next retry.  l Maximum wait between retries: This sets the upper limit (in seconds) on wait  time. If it encounters network connection problems. enter -1.49 - .  In the CSV Read Component Output screen. When you execute the Pipeline. SnapLogic pro- vides other interfaces.  l Maximum number of retries: Maximum number of times the Component must  retry in the case of a network connection failure. Executing Pipelines You can execute Pipelines using several different interfaces. You can agree and click Apply All Changes. To set an unlimited number of  retries. Select your Error output. If the Pipeline con- tains a subset of bad records. Any of the remaining methods can be invoked from cron or other sched- uling software. attempts continue  until this timeout is reached. Because  the CSV Read Component has two outputs.  automatic retries often remove the obstacle without creating a fail.  5. starting with the Designer. they can be written to an error file without preventing the  successful records from loading. Snap- Logic presents field suggestions. For this reason.

 if you submit a request  to an independent server.  l Component Run Times: This graph illustrates the time required to execute each Com- ponent pictorially. next to the Runtime Information tab. respectively. total  number of inputs. that is. The Run tab has the following sub-tabs:  l Run: Use this tab to specify runtime parameters by inputting values directly into the  Value column. In the  Run1 tab. the process of executing Pipelines in a  cluster environment is identical to executing them on an independent server." The Pipeline statistics report includes the following sections:  l Summary: This section reports the execution time. number of Components. it is performed by the cluster.  l Preview Data: Use this tab to preview data for Pipelines with outputs defined at the  Pipeline level. If you have configured your servers to run in a cluster. it is performed by an individual server.  l Runtime Information: Use this tab to view Pipeline status updates and execution logs. for Data Service  Pipelines. its number of inputs. and total number of outputs in the Pipeline. If you submit a  Pipeline execution request to a cluster. Pipelines that do not produce outputs at the Pipeline level do not support  data preview. "Pipeline Run Stats. For Pipelines that do have defined outputs and support data preview. "Pipeline Runtime Information. . Executing Pipelines in Designer To begin the execution process in Designer:  1. select a data tracing option if desired (refer to the "Tracing Data to  Debug Pipeline Execution" section for details).  l Breakdown By Component: This section reports the execution time of each Com- ponent. Clicking on the View log/statistics link provided with a Pipeline's status update displays the  information for that run in a separate tab." displays a list of completed Pipeline runs. Access the Pipeline statistics report by clicking Stats.SnapLogic® User Guide  l HTTP directly for Pipelines that have mapped output views. over time along the X axis. A sample of the statistics screen is  shown in the figure. The slider displays Pipeline Prop- erties.50 - . the Log file displays first.   2. and click Run.  Open the desired Pipeline on the canvas. and execute your Pipeline by clicking the  Run button.  The figure. You can also use the Print and Copy icons to send the file  content to a printer or to your clipboard. Components are listed along the Y axis. the  preview feature is identical to the preview feature at the Component level.  Go to the Run tab. and its number of outputs. Run1.  You can view the log and statistics for each run by clicking on the link provided in its  status. Use the Less and Full buttons to toggle between sum- mary and detailed views of the log.

 if the Pipeline has  mapped Outputs. To view execution logs in this method. From within a shell  script. refer to the Management Console section. . that is.content_type=text/html The /feed prefix tells SnapLogic that you wish to invoke the specified pipeline and read from  the output view you specified. use the management console by entering its URI into  your browser address bar: http://<hostname>:<port>/console.content_ type=text/html tells SnapLogic which output representation to use.51 - . The argument sn. You can specify Pipeline  parameters in the request using standard HTTP syntax.) For more information. in this case Output001. Refer to this example of the request to  specify a value for the CENSUS parameter for the CensusFeed Pipeline: http://servername:443/feed/SnapLogic/User/Exercise_ 3/CensusFeed/Output001?CENSUS=file://tutorial/data/alt_ census. (The Pipelines screen is the only excep- tion to this: it displays only one Pipeline at a time. Components are listed along the Y axis. For exam- ple. Executing Data Service Pipelines from HTTP If the Pipeline you wish to invoke is a Data Service Pipeline. so there is no need to specify which Pipe- line you want to run. use the -c option to SnapAdmin to run a series of commands. Pipelines. you can abort a Pipeline from within Designer by clicking the abort link on the Run  status of that Pipeline.  Events. Executing Pipelines Using SnapAdmin You can use the SnapAdmin utility to invoke the pipeline start command. and Servers. Pipelines  l Record Breakdown: This graph illustrates the number of records extracted and loaded  between Components.content_type=text/html You can invoke Pipelines by this method from cron or other scheduling software. pictorially. over Record  Count along the X axis.csv&sn. you can start the Pipeline using the Pipeline's Data Service URI. Refer to this example of  what a typical command file contains: connect server http://localhost:443 pipeline start /Examples/Pipeline1 Executing Pipelines from the Management Console You can execute a Pipeline from the following screens of the management console: History. you can execute the Pipeline /SnapLogic/User/Exercise_3/CensusFeed by directly typ- ing into the address bar of your browser as follows: http://servername:443/feed/SnapLogic/User/Exercise_ 3/CensusFeed/Output001?sn. Aborting a Pipeline As of 3. Simply click Run in that screen.7. Select the Pipeline you want to execute by using the checkbox in the left column of any of  these screens and click Run in the upper right corner.

 its specifications display here. The "Scheduled Events For Selected Pipeline" screen displays. and then clicking New to create an entry. the screen is initially blank. Scheduling Pipeline Execution in Designer Access the Scheduler in Designer by clicking the Scheduler button in the General page of Pipe- line Properties.52 - . . Complete the properties pages as described in the "Scheduler  Properties" section. on Tuesdays. Date. Scheduler Properties Access the Scheduler Properties pages by clicking the Scheduler button in the General page  of Pipeline Properties. "Scheduler Properties:  General Page.  l Edit: Select a Scheduler entry on the screen and click Edit to change the runtime spec- ifications for the entry.  l Delete: Select a Scheduler entry on the screen and click Delete to remove it. Hour. and using any param- eter values you specify. and Minute on which the Pipeline should  execute.  l Run Now: Select a Scheduler entry on the screen and click Run Now to execute the  Pipeline immediately." It includes the descriptive name of the Pipeline to run and the Pipeline's  URI. or Edit to modify one. Day. Scheduler Properties consists of several pages.  l Schedule: The Schedule page is where you specify the Pipeline's run dates and times.  l Close: Click Close to leave the Scheduler. If you have already set an execution  schedule for the Pipeline. delete. unattended executions of a pipeline. The SnapLogic  Server runs the Pipeline unattended at the dates and times you specify.  You can select the desired attributes of each scheduling column and view the resulting  summary description in the Summary field. If is already running the scheduled job  will be skipped. For example. a Pipeline runs weekly at 3:00 am. the Scheduler ensures that only one scheduled Pipeline is  executed at a time in a cluster. The Scheduler Properties screen displays. The head node will check whether the same Pipeline is waiting  to run or is already running before scheduling a job. The Scheduler Prop- erties screens display. You can specify the Month. through which you can navigate using the side- bar menu on the left:  l General: The General properties page is shown in the figure. Use the "Scheduled Events For Selected Pipeline" screen to add.  In a clustered environment. modify. and execute  Pipeline schedules as follows:  l New: Click New to add a new Scheduler entry for the Pipeline. With no sched- uled runs for a new Pipeline. Modify the properties  pages as described in the "Scheduler Properties" section.SnapLogic® User Guide Scheduling Unattended Pipeline Execution Use the Scheduler to schedule periodic.

 The Exclusions page works exactly like the Schedule page  but the  settings you select here specify times not to run the Pipeline.  The values you enter here are used at the scheduled runtime. as shown in  the following example: # Notifications [notification] # [[email]] # smtp_server = smtp.  Uncomment and specify the appropriate values for the [[email]] section. Enabling Email Notifications To enable email notification of execution successes and failures:  1. or through email.gmail.  l Exclusions: The Exclusions page. You can receive notifications by way of additions to a specified  text file.com # subject_prefix = NOTIFICATION # success_template = email_success_notification. Pipelines If necessary.  Edit the snapserver. Select a range of consecutive entries by holding the Shift key.txt root_directory = $SNAP_HOME/. If you want to run the pipeline every 15 minutes.  l Parameters: The Parameters page displays runtime parameters defined for this Pipe- line.  l Notifications: The Notifications page enables you to receive notifications of execution  successes and failures.. for example. select multiple non-consecutive entries in any column by holding the Ctrl  key while highlighting multiple fields.   2.  enables you to specify exceptions to the execution  schedule you defined. Support for email notifications is only enabled if your Snap- Logic Server has been configured with information about your outgoing SMTP server.com:587 # smtp_use_tls = yes # smtp_login = some_account@gmail.tmpl [[file_write]] filename = notification. select the Minute at which you want the pipeline to  execute.conf file.  The default snapserver. :15.53 - . whereas  selecting :15 runs the Pipeline at quarter past the hour.com # smtp_password = some_password # to = some_target_email # from = some_account@gmail. To run a Pipeline once an hour./logs . make multiple selections in the Minute  column by holding down the Ctrl key and highlighting :00.conf file is configured for logging only. selecting :00 runs the Pipeline at the top of the hour. and :45. Toggle the value of the  Exclusions enabled check box to suspend or enforce your exception. :30.tmpl # failure_template = email_failure_notification.

tmpl # failure_template = file_failure_notification. you can exam- ine the contents of every record as it enters or exits each Component in the Pipeline. this contains the error message Tracing Data to Debug Pipeline Execution The SnapLogic Server has a data tracing capability that enables Components in an executing  Pipeline to dump the data being sent through each Component's inputs and outputs. With data tracing.    l Component inputs and outputs: All Component inputs and outputs are traced. as defined by the success_template and failure_template settings in the Noti- fication section of the snapserver. Notification Templates Templates have been provided that allow you to send custom notifications for successes and  failures.54 - . in SnAPI.SnapLogic® User Guide # success_template = file_success_notification. with each record ter- minated by a newline. and validating Pipelines. debugging.    l Component outputs: All Component outputs in the Pipeline dump their data into trace  files. The parameters available for use in these tem- plates include:  l $name   : Name of the Pipeline execution event  l $uri   : Pipeline URI  l $status   : Result of the Pipeline execution 'Completed' or "Failed'  l $hostname   : Hostname of the server that ran the Pipeline  l $start_time : Time the Pipeline run began  l $end_time   : Time the Pipeline execution ended  l $status_uri : URI to get status information on this run  l $log_uri   : URI to get log information related to this run  l $err_msg   : If status is "Failed".   The data is written out to trace files using a comma-separated format. or through the SnapLogic  Server Configuration file.  Data Tracing in Designer Follow these instructions to enable data tracing when you execute a Pipeline:  .conf file.tmpl  3. The data traced can include:   l Component inputs: All Component inputs in the Pipeline dump their data into trace files.  Restart the SnapLogic Server and reconnect to the Server in the Designer.   You can turn data tracing on and off within the Designer. Use this  data tracing for testing.

No Trace: This is the default setting.   3.output1. The options are:  l Run. No trace files are created.  l Trace INPUT: Use this setting to force all Component inputs in the Pipeline to  dump their data into trace files. The trace file name is constructed by concatenating the fol- lowing three values:  l the Component's name  l the input or output name  l a .  Examine the trace files.  7. For each execution of the Pipeline. Pipelines  1. within the [[cc1]] or [[cc2]] subsections. as described in the Data Trace Files section.  With your Pipeline open in the Canvas.out suffix denoting whether the trace contains input our output data. .conf  file.in or a .output. Data Tracing through the SnapLogic Server Configuration File You can enable data tracing by adding a trace_data line in the snapserver. Data Tracing Files Trace files are written to the log/traces directory by the Component Container process that  contains the Component.  Select the Run menu in the slider's Pipeline Properties. Refer to the Configuring SnapLogic Server section for more information on the configuration  file. a subdirectory is created using  the Runtime ID of the pipeline. Note that data tracing settings you specify  when executing a Pipeline in Designer or SnAPI override any settings in the snapserver.  l Trace ALL: Use this setting to force all Component inputs and outputs to be  traced.  Set the parameters and make other adjustments to your Pipeline as required. From this screen." used in a Pipeline whose output is  named "Output1.   4.  Click the down arrow on the Run button that resides under the list of Parameters to dis- play a drop-down list of data tracing options  5. respec- tively For example.  6. select the Run  tab.  Select a tracing option from the Run drop list. a CSV Read Component called "FileReader.  l Trace OUTPUT: Use this setting to force all Component outputs in the Pipeline to  dump their data into trace files. or input.  Click the Run button. Set the parameter to input.output.55 - ." results in the trace file name: FileReader. as follows: trace_ data=input.conf file's [com- ponent_container] section. output.out. click Run from the canvas toolbar.    2.

If the Pipeline itself resides in another Pipeline named "Pipe1.input1.56 - .in. then the  names of the files are: Pipe1. " then the resulting file name is: DataWriter.DataWriter.output1." and then executed.input1.in.SnapLogic® User Guide If the Pipeline has a DB Write Component named "DataWriter. .out and Pipe1." whose input is named "Input1.FileReader.

Accessing Snaps Snaps are add-on solutions that can be downloaded and installed to enhance the functionality  of your SnapLogic Data Server. regex. specialized Snaps.   A Snap can perform as simple a task as to read data from a file. and provide  full access (data and functionality) to all standard and custom objects within Microsoft®  Dynamics CRM. such as reading data from a file. and DB analytics   Additionally.   A Snap in SnapLogic is comparable to a smart phone app. SnapStore. A Snap may include new Components and Pipelines. For example.   l A Wizard that helps create Components from component templates. or a more  involved grouping of tasks. filter.   l A collection of Components and Pipelines. such as the Sales- force Snap. lookup. or as complex an operation  as to connect to an instance of Microsoft Dynamics CRM. 6 Snaps A Snap is a SnapLogic software package that adds to the functionality and connectivity pro- vided by the SnapLogic Server. or download Snaps built by the SnapStore community. Update. Some of the Snaps in the SnapStore  are free of charge. and sort   l advanced operations: for example: compute. You can access SnapStore directly from the Designer in the following ways:  . analyze the source data.  Upsert. a Snap may add connectivity to SalesForce. a browser add-on. dates. or  add functionality such as Data Cleansing. the Snap  adapts and provides you access that takes this change into account. or an application  plug-in. A Snap usually installs one or more of the  following SnapLogic objects:    l A collection of Component templates that are functionally related. serves many of your specific inte- gration needs by providing additional.  These prepackaged Components are at your disposal as soon as you install SnapLogic. They  include:   l field-level operations: for example: arithmetic. others must be purchased. SnapLogic's online marketplace. When changes have been made to standard or custom objects. A Snap can perform a simple task. string. Delete. such as adding a comprehensive set of Insert. and Search capabilities to all Microsoft Dynamics CRMobjects. The SnapLogic Server comes prepackaged with a library of commonly used Components.57 - . and type conversion   l complex operations: for example: join. You can build your own  Snap. Snaps can be contributed by the SnapLogicCommunity to  solve a specific integration problem. Snaps are typically purchased from the SnapStore  and installed on a SnapLogic server via Designer.

SnapLogic® User Guide

 l In the Designer menu bar, click SnapStore.  

 l When searching for a Snap in the Foundry, if you cannot locate your desired Snap, you 
can click a link that takes you to the SnapStore. 

To download a Snap from the SnapStore, browse the product listing using categories, tags, or 
searches until you find the Snaps you want. Shortly after you complete the checkout and pay-
ment process, you receive two emails: one to confirm your purchase; the other containing 
any download links to your Snaps. SnapLogic must be installed before you can install your 
newly purchased Snap.

Installing Snaps
You can integrate with SnapStore--that is, you can install Snaps purchased from the Snap-
Store--directly from the Designer. After having selected a Snap from SnapStore, you receive 
an email containing a URI to access the Snap. You can, but are not required to, download the 
Snap to a temporary directory on your system. When you install the Snap, you are prompted 
for either the URI you received (if you have not yet downloaded the Snap), or for the Snap's 
location (if you have already downloaded it).  

Follow these instructions to install a Snap purchased from the SnapStore:  

 l Launch the installation in SnapLogic Designer either by selecting Server > Install
New Snap, or by clicking the Install New Snap  button in the Snap Foundry toolbar. 

 l At the installation screen, you can specify the URI you received in your SnapStore email 
when you selected the Snap, and then select the Component template from the drop-
down list. If a subfolder specified in the URI name does not already exist, it will be 
created automatically. Or, if you have already downloaded the Snap, click Browse to 
locate it on your system.  

 l If you have enabled sandboxing, which creates a security sandbox for Java Snaps by lim-
iting access to resources such as network destinations, file system locations, and execut-
ing processes, then SnapLogic prompts you for permission to use each Component that 
the Snap requires. If you deny access to any Component, the Snap installation is can-
celed. (For more information on this feature, refer to "Sandboxing to Protect Your Snap-
Logic Environment.")  

The installer decompresses the required files and installs them, prompting you when the instal-
lation is complete. After the Snap installation is complete, the Foundry displays a new cat-
egory tab with the Snap's name. This tab contains the available Component templates in the 
Snap.

Snap Installation in a Cluster Configuration
When you install a new Snap into a cluster configuration, install the Snap only on the head 
node. The head node then automatically distributes the Snap across the worker nodes. If any 
worker nodes are offline during Snap installation on the head node, they will be synchronized 
with the Snap content of the head node when they come online. If you wish to install a Snap 
on an individual worker node, the installation is not distributed to any other nodes.

- 58 -

Snaps

Configuring Snaps
Configuring a Snap is also a simple process from within the Designer. For your new Snap, the 
Foundry contains a folder with the Component templates available for the Snap. For more 
complex Snaps, a wizard is also provided. You can either use the wizard, or edit the Com-
ponents directly in the Designer, referring to the "Components" chapter for instructions. Snap-
Logic strongly recommends using the wizard when it is available. A wizard is intentionally 
provided for any Snap whose complexity makes editing the Components directly an involved 
process. The wizard guides you through a series of questions that vary with each Snap, and 
that dramatically simplify the configuration process.

Follow these instructions to configure a Snap using the SnapMaker wizard:

 l In the Foundry, click on the Category tab displaying the Snap's name and expand it.

 l Launch the Wizard within the Snap's folder. The SnapMaker screen appears.

 l Enter the Snap-related information requested in the SnapMaker screens. The wizard 
begins by collecting source connectivity information.

 l Select which records to generate from the Snap if you need only specific records; other-
wise, select all records.

 l Review the Summary screen and click Finish.

The SnapMaker wizard displays status messages as it completes the configuration. After the 
SnapMaker wizard is done, configured Components for your configured Snap appear in the 
Library.

Developing Snaps and Further Participating in the
SnapLogic Community
SnapLogic offers an opportunity for systems integrators, data integration developers, and 
ISVs to build custom applications on top of SnapLogic, as well as to create integrations 
between SnapLogic and other systems. This is an opportunity to grow revenue and dif-
ferentiate your services. You may wish to develop and market custom Snaps if you have a 
pressing idea for a Snap, or if you wish to respond to Snap requests by developing needed 
solutions. If so, you can develop and monetize your custom solutions, setting the price for 
your Snap, and monthly receiving 70% of the sales revenue generated. To facilitate your inter-
action with the SnapLogic community, you can participate in the support forums and devel-
oper community groups where you can find answers to your questions. You can also choose to 
help SnapLogic QA new features and Snaps.

Developing Snaps is a straightforward process. Although Snaps vary in complexity and func-
tionality, all Snaps follow the same pattern, use the same APIs, and take advantage of the 
common functions provided by the SnapLogic platform. However, developing Snaps is not the 
same as using SnapLogic. As a SnapLogic user, you create Components, and assemble Pipe-
lines from existing Component templates and the Components you have already created. You 
focus on data flow and manipulation instead of finer details. By contrast, as a Snap developer, 

- 59 -

SnapLogic® User Guide

you approach your task from the perspective of how to create Components that others can 
use, instead of focusing on how to use existing capabilities.

Concepts to Grasp.  A good Snap developer must first be comfortable with using SnapLogic, 
and must understand these main elements of SnapLogic:

 l Component templates and Components

 l Pipelines

 l Data Services

 l Data types

Types of Snaps.  There are two general categories of Snaps:

 l Connectivity Snaps: Connectivity Snaps add connectivity to an application or data 
source. The SalesForce.com, NetSuite, and SAP Snaps are examples of connectivity 
Snaps. These Snaps normally include new Components that access the application API 
and translate it to the SnapLogic API.

 l Solution Snaps: Solution Snaps are higher-level Snaps that implement the business 
logic for a specific integration scenario, such as "quote to bill" between a CRM system 
and a financial system. Solution Snaps normally include Pipeline and Component def-
initions that implement business logic. They often also include connectivity Com-
ponents, or depend on connectivity Components provided by another Snap.

The Twitter Snap in the Snap Developer Tutorial is a connectivity Snap; it adds Twitter 
read and write capabilities to SnapLogic, but does not provide any predefined Pipeline 
logic to process Tweets for a specific purpose.

Parts of a Snap.  A Snap is composed of three parts:

 l Component templates

 l Pipelines and Components

 l An installation program

All Snaps include an installation program. Connectivity Snaps include primarily Com-
ponent templates and Components, while solution Snaps are oriented toward Pipelines 
and Components. Because the Snap Developer Tutorial profiles a connectivity Snap, it 
includes an installer, Component templates, and some Components to get its users 
started.

Considerations for Snap Design.  The first step in designing a Snap is to shift perspective 
to that of a potential user of the Snap. How will someone use your Snap? Use your knowledge 
of the application in question and how it is commonly integrated to determine what your Snap 
exposes, which functions the existing platform capabilities address, and how the Snap fits into 
the data flow model. Ask yourself the following questions:

 l Which application objects must the Snap expose as data?

 l What data access does the Snap require?

 l What data must the Snap needs read?

- 60 -

 They occasionally include one or two function Components. connectivity Snaps include a reader Com- ponent and a writer Component. In general. . it is implemented as a transformation or utility function. Snaps  l What data must the Snap write or update?  l Which application functions may the Snap need to call?  l Which transformations are likely to be used on the data?  l Which utility functions from the application should the Snap expose? The answers to these questions guide your creation of a model of the Snap. rather. in CRM integration.61 - . visit SnapLogic's Snap Developer Doc- umentation page. Some of its  capabilities may require new Components. the "convert" functionality is neither a data source nor tar- get. For more information about developing Snaps.  For example. while others can be addressed by creating Pipe- lines or using existing Components.

62 - .SnapLogic® User Guide .

User names can contain only ASCII alphanumeric characters and must be lowercase.  2. Enter the password for the admin when prompted to  do so.  Set the credentials used for requests to the server to the default set for the admin.  Run SnapAdmin as described in "SnapAdmin Utility".  Connect to your server by entering: connect server <url>. Using SnapAdmin  1. . as:  credential set default admin.63 - . 7 Administration This section of the document covers administration functionality of your SnapLogic envi- ronment. How to Create Users Note: Authentication occurs at the user-level. such as:  l Starting and Stopping SnapLogic and Component Servers  l Configuring SnapLogic Server  l Configuring Authentication  l Enabling SSL  l Using the Management Console  l Sandboxing to Protect Your SnapLogic Environment  l Importing and Exporting Components  l Running SnapLogic Behind a Proxy  l Understanding SnapLogic Data Types and Output Representation Formats  l Using the SnapAdmin Utility  l Using the SnapLogic Sidekick Working with Users and Groups This topic provides common procedures for working with users and groups in SnapLogic.  3.  If you have multiple users that  require individual logins. each user will need a separate user account.

How to Add Users to Groups Add users to groups to simplify access control management for users with similar roles.  Run SnapAdmin as described in "SnapAdmin Utility".  Click Add Group. then click OK.  Select Server > Groups. Using SnapAdmin  1.  Select Server > Users. enter: group create <groupname>.  3. enter: group adduser <groupname> <username>where.  At the command prompt.  Type a name for the user and supply a password.  3. where   l <groupname> is the name of the group you are creating. Within Designer You can create users within Designer provided you are not using an external authentication  method.  Restart the SnapLogic Server for the changes to take effect.SnapLogic® User Guide  4. How to Create Groups Note: Access controls assigned to a group only apply to users that are members  of that group.  1.64 - .  1. where   l <username> is the name for the user  l <password> is the password.  Click Add User.  2.  5.  Restart the SnapLogic Server for the changes to take effect.  2. enter: users create <username> <password>.  At the command prompt.  2.  l <groupname> is the name of the group you are creating  l <username> is the name of the user you are adding the to the group .  2.  Run SnapAdmin as described in "SnapAdmin Utility".  Type a name for the group and click OK. Within Designer You can create groups within Designer provided you are not using an external authentication  method.  3. Using SnapAdmin  1.  At the command prompt.

  . The paths in this section apply if you have kept the default installation set- tings when installing SnapLogic.  Select Server > Groups. Within Designer You can add users to groups within Designer provided you are not using an external authen- tication method.  Restart the SnapLogic Server for the changes to take effect.  Admin users will be prompted to change their password each time that they log in  until they choose a new password that’s different from the default password. Starting and Stopping Servers The SnapLogic Server installation provides scripts to start and stop the SnapLogic and Com- ponent Servers. How to Set Access Controls For information on how to set access controls. see "Understanding ACLs" How to Change a User Password A user can change his password in Designer by going to Server > Change My Password.  2.  Select a group and click Assign User. Administration  3.  l snapctl. Starting and Stopping SnapLogic and Component Servers in Linux The Linux equivalent file names and locations are in /opt/snaplogic/[release number] /bin/. Configuring SnapLogic Server SnapLogic installs several configuration files containing default settings for running the Snap- Logic software.sh start: Start the server processes.  l snapctl. then click OK. snaplogic_ admin_pw. Changing the Initial Admin Password The default password assigned to an admin user is now a standard password.sh stop: Stop the server processes.  l snapctl.65 - . It is rec- ommended to run in that mode for installation and upgrade of Snaps to ensure con- sistency. You can edit these files and modify or comment out settings. This section dis- cusses the configuration options available for SnapLogic in its primary configuration file.sh restart: Stop and restart the server processes.  3. Note: Invoking this script with --admin_mode enforces single-user mode.  Select the user.  1. You can invoke this script with start/stop/restart arguments.

 Note: the log level is set separately for the server and the Component Con- tainers.conf The bulk of your configuration settings reside in the SnapLogic Server Configuration file.0.0.conf. Some options that must be enabled or disabled in the configuration file  also require additional configuration steps.  Example: server_address = 0. which resides in the snaplogic\config folder of your installation directory. if you accepted the default settings during installation.  For example. snap- server.  l server_hostname: The hostname for this server.66 - .pem. .  l log_level: Sets the SnapLogic Server log level (possible values are ERR.  DEBUG). SnapLogic Server Configuration File: snapserver.conf General SnapLogic Server Settings The general settings in the [main] section of your snapserver.  Example: log_dir = /opt/snaplogic/logs.  Example: server_port = 80 and server_secure_port = 443. these are broken out into separate topics within  this chapter.conf  l General SnapLogic Server Settings  l Component Container Configuration Parameters  l Data Cache Configuration Parameters  l Notification Instructions  l Management Console Configuration For information on clustering servers.  l SnapLogic Server Configuration File: snapserver. your snapserver.  Example: server_hostname = hostname. server_secure_port: The port numbers used by the server.conf  l Linux: /opt/snaplogic/config/snapserver.  l server_proxy_uri: If the public hostname for this server is different than reported by  `hostname` then set the server_proxy_uri to the external URI.conf file include:  l log_dir: The location of logging directory.  l server_port.SnapLogic® User Guide snapserver. see "Clustering Servers".conf  file location is:  l Mac: /Applications/snaplogic/config/snapserver. Example: server_proxy_uri = http://HOSTNAME:DATAPORT  l server_address: The address to which this server binds.  l server_secure_cert: Location of the server certificate.conf.0.  Example: server_secure_cert = /opt/snaplogic/config/host. INFO.

 for example. up to number of backups  specified.67 - . but you can assign any other name. auth_plugin_args. auth_file_passwords: If the auth_file option is present.  SnapLogic is calling this directory __static__. in  order to have it executed via pipe_to_http. This is no longer in the file by default.  Example: polling_interval = 60.  l auth_file_config.  l explorer_uri: Location of the explorer (as a fully qualified URI) Example: explorer_uri = http://Snap05:443 /__snap__/sta- tic/designer/index. To disable  SSL.  l state_dir: Directory to store state data needed across server restarts. .com:443. For  tighter security. The recommendation is to use the auth_plugin and auth_plugin_args  instead.  Example: license_file = "/opt/snaplogic/config/license.2. then it  is interpreted to be an absolute path name.  SnapLogic Server does not start.another- . In the file.html?mode=explorer  l pipe_to_http_uri_prefix: Specify the prefix that should be added to resource URI.  l static_dir: Specifies the directory from which static content is served.  l LDAP_address: To enable LDAP authentication.  l auth_plugin.  Examples: auth_file_config = "/opt/snaplogic/config/snapaccess.  Example: allow_proxying_to = server1.  l log_backup_count: Set the maximum number of backups to create if log rotation has  been enabled. For more information.  Example: pipe_to_http_uri_prefix = /feed.  l license_file: Location of the license key file. that a Pipeline receives status  updates regarding the Components inside it.txt".  l allow_proxying_to: To enable the management console. If  the directory name starts with a forward slash (/). comment out this line. The default value is 5. Administration  l server_secure_ignore = no: This setting tells SnapLogic to enable SSL. but is supported for leg- acy reasons. and proxy_auth_header: these properties are  used to implement custom authentication. /tmp/static.  Example: server_secure_ignore = yes. uncomment this line and update it to  point it to your LDAP URL. in seconds. sever2.  l polling_interval: The interval of time. refer to the "Con- figuring the Management Console" section.  Example: static_dir = /opt/snaplogic/static. All requests for  the /__snap__/__static__ URI space are served from within this directory.domain:443. In the absence of this option. then all  authentication information is read from the specified file.conf" and  auth_file_passwords = "/opt/snaplogic/config/passwords". use a comma delimited list. change the setting to yes.1. .  Example: state_dir = /opt/snaplogic/repository. Each backed up log gets suffixed with .somedomain.

 A maximum of 10000 tokens will be cached. the root is the SnapLogic  install directory. Can be used on a worker node and also on a standalone server.  l max_job_limit: Adding this property sets a limit on the maximum number of jobs a  data server will accept. sandboxing. If it fails on all workers. and set the parameter to either input. the contents of  the file are rotated to a backup log name (suffixed with .SnapLogic® User Guide  l max_log_size: Set a maximum size which applies for each snaplogic log file. comment  out or remove the line from the file. Refer to  the section on Sandboxing to Protect Your SnapLogic Environment for details. client_token_ timeout is the time a token is valid for. component_dirs. Refer to the Enabling SSL section of this chapter for details. the next  request with that token will fail with a 401 error. sandboxing is  enabled. The  parameters in this section address SSL. as follows: trace_data=input. and cc_hostname: These parameters are used for your  SSL configuration. output. cc_ secure_cert. The size can be specified in bytes.  l client_token_cache_limit.2. then client_token_cache_limit is the maximum limit on the  number of client tokens cached by the server (default is 10000 entries). By  default there is not limit on the size. MB or GB. Sandboxing enables you to run  Components in a restricted environment provided by the JVM. Component Container Configuration Parameters The [component_container] section of the snapserver. .output. specified in minutes (default is 1440 minutes.  l trace_data: To enable data tracing. see  "Clustering Servers". etc. By default. component_conf_dir.  . cc_port.conf file. client_token_timeout: If token-based authentication is  being used in the client. the job is failed. cc_secure_port. [[cc1]] and [[cc2]]). DEBUG.  l log_level: Sets the Python Component Container log level. the job is tried on all other workers one by  one.  24 hours).68 - . more than that and the expired  tokens or the oldest token will be removed.  Setting it on a head node does not do anything since job execution happens on workers. WARNING. When a file reaches the upper limit. cc_address. or  input.  If one worker hits the throttle limit and fails. INFO.output. You can disable it by setting the disable_sandbox property to false. Possible values are  CRIT- ICAL. ERROR.  l filesystem_root: Changes the filesystem root.) as long as log_ backup_count has a non zero value.conf file is subdivided into sections  for each Component Container on your server (for example.  l heartbeat_seconds: Server pings the CC every heartbeat_seconds (set to 0 to dis- able). a call can be made  to the get_token api with the old token.  l disable_sandbox: This parameter controls sandboxing. By default. For information on used of this feature in clustered deployments. add this line to the [component_container] sec- tion of the snapserver. and data tracing functionality:  l log_dir.1. The data tracing settings you specify when execut- ing a Pipeline in Designer or SnAPI override this parameter in the configuration file. If the account password is changed or the account is deleted. which will give a new token valid for 24 more  hours. To renew a token. To turn data tracing off.

 in gigabytes (using a GB or gb suf- fix).python. You can specify the size in bytes  (for example.  Example: type = sqlite.conf file to spec- ify how the Scheduler notifies you about Pipeline execution. that data should be cached. or in terrabytes (using a TB or tb suffix). specifying the percentage of  maximum size that must be reached once cache cleanup is initiated. The cache can temporarily  exceed the maximum size. use a KB/kb suffix. in kilobytes (in this case. in megabytes (using an MB or mb suffix). Example: cache_size = 10MB.  l low_water_mark: An integer percentage value (0 - 100).org/lib/posix-large-files.  l type: The type of database system hosting your metadata repository.conf file describe your cach- ing settings. the OS should be capable of supporting large files. Data Cache Configuration Parameters The parameters in the [data_cache] section of the snapserver. 10KB  or 10kb). in seconds. Administration Refer to the "Data Tracing via the SnapLogic Server Configuration File" section for  details. for example. you need to deter- mine if the OS can support a large file. so SnapLogic recommends specifying a value less than  100% to allow for these temporary excessions.  .  l cache_dir: The location of the cache directory.  l cc_resdef_cache_enabled and cc_resdef_cache_max_entries: control resdef  caching.html). Also.  l path: The location of your metadata repository database file.  Example: low_water_mark = 60. While caching large data output (greater than 2GB) from a single resource.  l high_water_mark: An integer percentage value (0 - 100) specifying the percentage of  the maximum size at which cache cleanup is initiated.  l cache_timeout: The amount of time. the Python interpreter might need to be compiled  with special flags to handle large files (see http://docs. For details on configuring these  parameters. 10000). Repository Configuration The parameters in the [repository] section of the snapserver.  l cache_size: The maximum allowed size of the cache.  Example: path = /opt/snaplogic/repository/repository.  Example: high_water_mark = 90.conf file describe your meta- data repository.  Example: cache_timeout = 300.  Also.69 - . refer to the section on "Enabling Email Notifications" for more information.db. Notification Instructions Configure the parameters in the [notification] section of the snapserver.

 Both jobs_per_worker and max_job_limit can be used together.70 - . The following parameters are supported in this section:  l node_type: Designates whether a node is a head or worker node. snapserver. as follows: allow_proxying_to = some_other_domain:443. Refer to the section on "Configuring the Management Console"  for detailed infor- mation.  l workers: Used on a head node of a cluster to list the worker nodes.  l head_node: Used on a worker node to designate the head node in the cluster. To limit access to specific domains. as follows: allow_proxying_to = <domain>.  host.  You can use an asterisk ( *) wildcard to allow proxying to any domain. In that  case. some_other_domain2:443 Additional setup involves logging into the console on your primary server to add extra servers  as required.jks. host.  (Optional) Backup existing keystore and certificate files: host. See "Clustering  Servers" for more information. Signed SSL Certificate Installation The following procedure explains how to replace the SnapLogic instance's self-signed cer- tificates with digitally signed CA certificates.pem. Clustering Configuration Parameters Add a [cluster] section to your snapserver.conf and add a configuration directive in the form of a  line specifying which servers can be proxied.cert. jobs_per_worker is applied on the head node (with queuing of jobs) and max_ job_limit is applied on the worker (with no queuing). Prerequisites:  l Private key used to create a certificate signing request (CSR)  l Signed SSL certificate  l CA bundle certificate To replace the certificates:  1. Set to -1  to disable it.SnapLogic® User Guide Management Console Configuration SnapLogic includes a browser-based management console that provides details about the per- formance of executed Pipelines. but SnapLogic does not  recommend unlimited access. See "Configuring Job Distribution  Across Workers" for more information. To enable the management console. open your SnapLogic  Server Configuration file. use a comma-delimited  list.  2.  Change the current directory: .conf file to run your SnapLogic Servers in a  cluster.   l jobs_per_worker: The maximum number of jobs a worker can run at a time.

  with an emphasis on load balancing.pem where:  l <PRIVATE_KEY> refers to the private key used to create the signed SSL certificate  CSR  l <SIGNED_CERT> refers to the signed SSL certificate  7.p12 -name tomcat -passout pass:changeit where:  l <BUNDLE_CERT> refers to the CA bundle certificate  l <PRIVATE_KEY> refers to the private key used to create the signed SSL certificate  CSR  l <SIGNED_CERT> refers to the signed SSL certificate  4. they are scheduled to the worker nodes. In clustering.  Create the new server certificate: cp <SIGNED_CERT> host.  Create a PKCS12 file using the CA signed certificate: openssl pkcs12 -export -chain -CAfile <BUNDLE_CERT> -in <SIGNED_CERT> - inkey <PRIVATE_KEY> -out host. The head node then main- tains a queue of job submissions.cert where:  l <SIGNED_CERT> refers to the signed SSL certificate  6. As jobs come in.sh restart Clustering Servers Add a [cluster] section to your snapserver. .p12 -srcstoretype PKCS12 - srcstorepass changeit -destkeystore host.71 - . Clustering is a method of improving performance by allowing multiple Pipeline  execution requests to proceed in parallel in a cluster of worker nodes.  Convert the PKCS12 file created in Step 2 into a keystone: keytool -importkeystore -srckeystore host.jks -deststorepass changeit  5. Administration cd /opt/snaplogic/config  3.  Restart SnapLogic services: /opt/snaplogic/bin/snapctl. data  servers are assigned roles of either head node or worker nodes.  Create a new PEM file: cat <SIGNED_CERT> <PRIVATE_KEY> > host.conf file to run your SnapLogic Servers in a  cluster.

 The proc- ess of executing Pipelines in a cluster environment is identical to executing them on an inde- pendent data server. provided that the worker nodes are online during  installation.  l Modify the SnapLogic Server Configuration file (snapserver. One way to do this is to copy the passwords. http://worker2:443 . http://worker1:443. Worker nodes report job completion to the head node. All  accounts (including user accounts created after initial configuration/deployment) need  to be synchronized between all cluster nodes. New Snaps are installed in the head node. ensure the SnapLogic passwords are synced up on all  machines of the cluster.conf) on each node. http://worker2:443). designate a data server as a head node and one or more  data servers as worker nodes by modifying the SnapLogic Server Configuration file (snap- server.conf) on each node as fol- lows: To designate a data server as the cluster head node. cc1_creds and  cc2_creds files from the config directory of the head node to all the worker nodes. add the following [cluster] sec- tion to its snapserver. http://head:443. Follow the process described in the "Executing Pipelines" section  regardless of your server environment. it is performed by the individual server. ACLs must be synchronized  across all nodes if custom ACLs are implemented. Follow these instructions to configure your cluster:  l Identify your head node and worker nodes.  In addition. if you  submit a request to an independent server. The head node interacts directly with Snap- Logic Designer and SnAPI.SnapLogic® User Guide A SnapLogic clustering configuration consists of a data server designated as the head node  and one or more data servers designated as worker nodes:  l Head node: Jobs get queued by the head node and then de-queued and distributed  when a worker node is available to run them. which automatically repeats the Snap instal- lation on each of the worker nodes. it is performed by the cluster. The worker nodes do not access the repository  directly.  l Install SnapLogic onto each node.72 - .  l If not using LDAP authentication. they point to the head node repository to retrieve Component and Pipeline  parameter values.conf file: [cluster] node_type = head workers = http://worker1:443. If you submit a Pipeline execution request to a cluster. The status of Pipeline jobs on worker nodes can be polled using a  status interface. Configuring Clusters To establish a SnapLogic cluster.  l Worker nodes: The worker data servers accept pipeline execution requests and report  completion back to the head node. and provides cluster execution and reporting data to the man- agement console and to Designer. and note the URI or IP address of each node  (for example. The nodes in a cluster configuration do not have to  run the same operating system.

 To increase this. If a Pipeline has a Execute Resource Com- ponent. Job execution requests which are directed to the head node are load balanced across the work- ers. Using a shared mount point ensures that the files created as Pipe- line output can be used for Suggest and previewed using the filesystem browser. One way to do this is to change the filesystem_root property to point to  the shared mount directory. The required Snaps have to be installed on  the new worker by opening the Designer directly to the worker node. Administration To designate a data server as a cluster worker node. the new worker node has to be configured appropriately  with the right credentials and [cluster] section. The filesystem browse option in the Designer shows the files on  the head node by default.) Go to  server_cluster. and then to cluster-info. (You can  also navigate to this page from the head node data server page: http://head:8088.html. the incoming job is queued up and the next worker which has a  completed job will be assigned the queued job. Test the cluster by using the Designer to run a pipeline or using the test interface on the head  node: http://head:443/__snap__/__static__/console/cluster-info. Input/Output Files Pipeline execution requests which are sent to the head node are forwarded to one of the avail- able worker nodes. Each  worker node can run a maximum of one job at a time by default. From this page. add the following [cluster]  section to its snapserver.73 - .conf file: [cluster] node_type = worker head_node = http://head:443  l Restart the SnapLogic Servers on the head node and all the worker nodes. The status of the job  queue can be monitored by using the URI http://head:8088/__snap__/cluster/info.html. If a job execution request is sent directly to a worker. See the  Worker section of "SnapAdmin Commands" for information on how to add or delete worker  nodes. set the  jobs_per_worker property in the [cluster] section of the head node.  This shows the queued jobs. If all  workers are running one job. Configuring Job Distribution Across Workers Every incoming job is sent to the worker node with the least number of running jobs. For example. If all workers  are running five jobs already. the job runs on the same worker  and does not apply towards the worker's job limit. . Then the new worker  should be added in the head node's [cluster] section and the servers restarted. the target Pipeline should be changed to point to the head node to ensure that the jobs  spawned by the Execute Resource are load balanced across the cluster. a shared  filesystem mount can be created and all filesystem operations can be done on the shared  mount directory. the running jobs and the last few completed jobs. The job execution happens on the worker node and any input files which  are read or output files to be created are created on the worker node where the job runs. the head node will first distribute one job to every worker in round robin.htm. you can submit Pipeline  jobs to the cluster. if this is  set to five. then the next job will be sent to the first worker. To  ensure that the output file can be read without knowing which node the job ran on. To add a worker node to the cluster.

 The firewall rules need to be changed appropriately to fix this. If there  are firewall rules which prevent the client from talking directly to the worker nodes. then for Pipeline or Component preview to work. To do this. the cluster is no longer accessible since the clients cannot submit any jobs. If virtual machines are being used.  open each of the workers SSL URIs https://head:8091. The fail- over from master to backup can be done in multiple ways. a second machine is assigned to be the backup head node. https://worker1:8091.SnapLogic® User Guide Troubleshooting  l Since the Pipeline execution happens on one of the worker nodes. Failover Configuration using keepalived Note: Installing and configuring keepalived is operating system dependent. possibly leading to out  of memory errors. . If the Designer is using  SSL connection to the head node. the  virtual IP switches to the backup node. so clients can continue to use the cluster after the master goes  down.  l SnapLogic installation by default installs self signed certificates. the execution logs are  created on the worker node.  Head node failover can be used to prevent such a scenario and provide protection against hav- ing a single point of failure. All client requests are sent to the host name cor- responding to the virtual IP. If one of the worker  nodes goes down.  Depending on how the network is configured.  l The jobs_per_worker property can be used to increase the level of parallelism by  increasing the number of jobs to run on a worker. the  browser should trust the self signed certificates used by the worker nodes. Setting this to a very high value can  cause issues with excessive memory usage on the worker node. assigning a virtual IP might require  changes in the network configuration. Head Node Failover for Clustering A SnapLogic cluster consists of one head node and multiple worker nodes. The following documentation uses IP address failover using the kee- palived package. If a Component has to be debugged. then the  VM settings might have to be changed to enable virtual IP addresses. keepalived has to be installed on the master and backup head nodes and a  virtual IP address is assigned to the master by keepalived. the requests are sent to the backup head node instead of the master head node.  https://worker2:8091 from the browser and accept the prompt which asks whether  the certificate should be trusted.  these operations will fail.  l Previewing the output of a Pipeline or a Component from the Designer or reading the out- put of a SnAPI program requires the client to be able to talk to the worker node. DNS failover  or IP address failover. Failover Configuration Options To configure head node failover.  The clients talk to the master head node using its hostname and in case of the master going  down. the head node ensures that no more jobs are sent to the worker which is  down and the other worker nodes handle the subsequent jobs. the debugger should  be connected to the worker node.74 - . using HTTP failover. If the head node goes down for  some reason. When the master goes down.

 headvirtual is the name for the virtual IP address and worker1 and worker2 are  the worker nodes.75 - .127 dev eth0 } } A sample keepalived.57.189. A sample keepalived.189. the backup head is  headbackup. The steps to configure the failover are:  1. keepalived has installables and keepalived  docs has the user guide. Administration The following assumes that the master head node is named headmaster.  Install keepalived on both the head nodes.57.conf file for the headbackup is global_defs { router_id my_router } vrrp_instance app_master { state BACKUP interface eth1 virtual_router_id 36 priority 100 advert_int 1 preempt garp_master_delay 5 virtual_ipaddress { 60.conf file for the headmaster is global_defs { router_id my_router } vrrp_instance app_master { state MASTER interface eth1 virtual_router_id 36 priority 150 advert_int 1 preempt garp_master_delay 5 virtual_ipaddress { 60.127 dev eth0 } } .

 When a new resource or Pipeline is created. The client requests should go to the headbackup and the jobs should run suc- cessfully. it will forward the request to one of the SnapLogic instances based on how the  load balancer is configured. then the  SnapLogic configuration changes remain the same as mentioned. Either software or hardware load balancers can be used.  Test the failover by shutting down the headmaster machine and trying to run jobs on the  cluster. so each instance maintains a copy  of the SnapLogic repository data- base. update all ref- erences to the local hostname to headvirtual. If a request is sent to the  load balancer. If the master machine  goes down and there are repository changes on the backup head node. On the master and backup head nodes.  Install SnapLogic as usual on the cluster machines. [cluster] node_type = head workers = http://worker1:443. A leader  is chosen among the SnapLogic instances. only one of the head nodes should be enabled at a time. particularly in a cluster envi- ronment. the repository database  can be copied from the master head node onto the backup head node. To resynchronize the repository. the master head  node has a new entry pointing to the backup_head_node and all the configuration entries point- ing to the head node use the virtual name. On the worker node also. multiple head nodes cannot be enabled at the same time. Pipelines will execute on the instance which gets the initial execution request.http://worker2:443 backup_head_node = http://headbackup:443  3. a new leader is chosen when the next scheduled job has to run. add a backup_ head_node property pointing to the backup head node. Repository Synchronization In a failover configuration. If the backup head node is offline for some time.    . SnapLogic Server High Availability and Failover Introduction Multiple SnapLogic Server instances can be installed behind a load balancer. If failover is configured using some other means like HTTP failover or DNS failover. So if  HTTP failover is used. both the master and backup head node maintain a copy of the  SnapLogic repository database. the repository can go out of sync  with the repository on the master. This can be used  as a means to achieve failover in case one instance goes down. Configure the cluster as documented  in the Clustering Servers section. Mainly. Since the head node maintains a job queue and  keeps track of job distribution.SnapLogic® User Guide  2. Change the Designer to point to  http://headvirtual:443. it will get saved on  each SnapLogic instance. All scheduled jobs execute on the current leader. If  the leader goes down.  Restart keepalived and SnapLogic on all the machines. Any repository changes are replicated from the master to the  backup.  4. the repository from the  backup head node has to be synced up to the master repository after the master node comes  back up again.76 - . update the  head_node property to point to headvirtual. On the master head node.

Administration

During a Pipeline execution, any output files created by the Pipeline are created on the 
machine which ran the Pipeline. A shared filesystem can be used to ensure that input and out-
put files are available on every machine. The filesystem_root   setting controls the location 
of the input and output files used by the Components. The log file and trace data for each Pipe-
line execution also are available only on the instance which ran the Pipeline.   

Configuration
Each SnapLogic instance is installed using the installer. The user accounts on each instance 
need to be synced up. One way to do this is to:

 1.  Copy the passwords, cc1_creds and cc2_creds files from the /config directory of the 
first instance to the /config directory of all other instances. 

 2.  Add the failover related entries need to the snapserver.conf config file. 

Two entries need to be added to the [main] section of snapserver.conf. The first is 
backup_servers, which is a comma separated list of the backup instances. failover_
proxy_uri is the URI of the load balancer. For example, if the two instances are run-
ning at https://instance1.mydomain.com:443 and https:/-
/instance2.mydomain.com:443 and the load balancer is running at 
https://loadbalancer.mydomain.com:443, then the entries on instance1 are: 

backup_servers=https://instance2.mydomain.com:443
failover_proxy_uri=https://loadbalancer.mydomain.com:443

The entries on instance2 are:

backup_servers=https://instance1.mydomain.com:443
failover_proxy_uri=https://loadbalancer.mydomain.com:443

 3.  Install and configure  the load balancer  in front of the SnapLogic instances. The load bal-
ancer configuration details depends on the type of load balancer being used.   

Sidekick Configuration
Each of the instances can be configured with a Sidekick. In this configuration, there would be 
two SnapLogic servers and two Sidekicks, one for each of the SnapLogic Servers. There will 
be single load balancer in front of the two SnapLogic Servers. The steps to configure the 
server would be similar to above. Since the user accounts need to be synced up between the 
SnapLogic Servers, we need to ensure that the Sidekick is getting the updated server cre-
dentials. The sequence of steps would be:

 l Install SnapLogic on the two server instances. Sync the user credentials by copying the 
passwords, cc1_creds and cc2_creds files from the config directory of the first instance 
to the config directory of the second instance.

- 77 -

SnapLogic® User Guide

 l Run /opt/snaplogic/bin/snaplogic_sidekick_generate_config.sh on both the 
instances to ensure that the updated credentials are available to the Sidekick instance 
for download.

 l Install the sidekick machines, and run /opt/snaplogic/bin/snaplogic_sidekick_
download_config.sh to download the sidekick configs.

 l Start all the instances and enable sidekick for each instance individually. Each instance 
should be functional with its sidekick.

 l Add the backup_servers and failover_proxy_uri entries to the server instances. 
Install and configure the load balancer and restart the servers.

Troubleshooting
 l If using self signed certificates for the load balancer, then the load balancers SSL cer-
tificate needs to be added to the trust keystore of the Java CC of all the SnapLogic 
instances. This can be done using the command   
$SNAP_HOME/pkg/java/jre1.6.0_20/bin/keytool -importcert -alias
proxy -file /etc/ssl/certs/myssl.crt -keystore $SNAP_
HOME/../config/host.jks -storepass changeit

   where $SNAP_HOME is the install location of the SnapLogic version and 
/etc/ssl/certs/myssl.crt is the certificate being used by the load balancer.   

 l Configuration changes are not currently synced between the instance. So changes like 
creating new user accounts  etc need to be done on each individual instance separately.

 l In a failover configuration, each instance maintains a copy of the SnapLogic repository 
database. Any repository changes are replicated to every instance. If one instance is 
down for some reason, the repository can go out of sync with the other instances. To 
resynchronize the repository, the repository database can be copied from the working 
instance onto the failed instance.

Memory Configuration Guidelines
The SnapLogic Server does not provide a monitoring capability to determine if memory allo-
cation is exceeded at runtime. If this happens, the Java process will exit with an "out of heap 
space" exception. Refer to the configuration scenarios below if you are receiving heap space 
errors during Pipeline/Component execution.

Memory Configuration
In some cases, Pipeline execution might require you to increase the memory allocation of the 
Java process. The Java Component Container memory allocation can be defined in   the cc2_
java.sh/bat files, located in the   installdir/product/version/bin/init.ddirectory.   

You can set the option using   set SNAP_JAVA_MEMORY=-Xmx'MEM_VALUE' to allocate 'MEM_
VALUE' memory for the Java CC process. The default value is 256MB. Other valid values are -
Xmx512, -Xmx1048 or -Xmx2048. In the case that your   physical memory of the machine is 
exceeded during startup, then the Java CC process will fail to come up and write its log into   

- 78 -

Administration

installdir/logs/javacc_stderr. As an example: Some Linux kernels only provide 1.7GB 
available process memory. If you are setting the 'MEM_VALUE' to 2048 then the process will 
fail to start. The option   should be set to the maximum available physical memory or below 
that limit.   

The memory configuration allows you to increase performance for certain Components such 
as the Sort or the Aggregate Component. Both allow you to configure its memory usage   during 
execution. As an example, the Sort Component allows you to configure how much memory 
can be allocated by the Component to sort the records in memory before they are   written to 
disk. Setting this to, for example, 200 MB will allow you to sort 200 MB of records in memory. 
In the case that the whole input record set will fit into the allocated memory, then   the sort will 
be much faster since it does not need to write records to disk during the sort operation.

Buffer Configuration
During Pipeline execution (in a Java-only execution environment), a buffer is kept between 
two Java Components that are linked to each other. The first one (defined as   the upstream 
Component) links to the second one (defined as the downstream Component). In between 
resides a buffer with the default size of 1000, meaning up to 1000   records are kept in memory 
between the two Components. In the case the downstream Component is slower then the 
upstream Component in regards to throughput, then the buffer   will fill up over time, having 
1000 records remain in memory until the down stream Component consumes all remaining 
records. The assumption is that the upstream Component   is either very fast or the process is 
long running to allow the buffer to fill up.

Lets say you have a larger Pipeline with ten Java Components (meaning nine buffers) and the 
last downstream Component is the slowest Component in the Pipeline. In this case all   nine 
buffers will fill up over time, leading to 9000 records in memory. This might exceed the allo-
cated memory depending on the record size. For this scenario it is advised to   decrease the 
buffer size to a lower setting by defining the   -Dsnap.pipe.size='BUFFER_SIZE' option as a 
Java argument cc2_java.sh/.bat files. The 'BUFFER_SIZE' setting should not be lower then 
the actual throughput of the slowest Component, meaning if the slowest   Component produces 
200 records/sec then a buffer size of 200 should be defined.   

Concurrent Pipeline Execution
Running large records sets through multiple Pipelines that are being executed concurrently on 
the same Java CC process requires that Components that are being executed   at the same time 
have sufficient memory available for execution. Important for this scenario are implications 
described above. If one or more Pipelines have slow running   down stream components then 
the buffers of on or more pipelines for all up stream component will fill up over time during 
execution. Here you want to configure the buffer   size as described above using the lowest 
through put value. If one or more Components of the Pipelines allocate memory such as the 
sort or aggregate Component then the   combined memory allocation of all Components should 
not exceed the maximum allocated memory of the Java process (even though they might not 
be executed at the same time).

- 79 -

  . Users can access the  server in "public" (unauthenticated) mode. Note: If a user account name is defined both locally within SnapLogic as well as  through the authentication service. see client_ token_cache_limit and client_token_timeout in the "General SnapLogic  Server Settings" Permissions and User Credentials The SnapLogic Server  supports the following three types of permissions that are applied to the  Components within a URI namespace:  l Read: Allows access to basic metadata including description. limit. orig- inating IP address. The server can apply access rules to all requests. username. it is a valid account  as long as the password matches with either definition. You can perform active directory-based authentication by configuring SnapLogic for your LDAP  database. If the same user name is defined in both places. the credentials are checked against the built- in authentication first. operation.  l Write: Allows users to save Components they create. inputs and outputs. Depending on your requirements. By default. and similar objects. the SnapLogic Server is installed with a basic authentication configuration that  allows "public" users to perform all operations. or file-based authentication by configuring the Snap Access Configuration (sna- paccess.  l Execute: Allows execution of the Component or Pipeline. The SnapLogic Data Server logs all interactions in the access log files: main_process_ access.80 - . or they can authenticate with the server during con- nection. it is checked against  the plug-in. All users belong to the public group. and URI. Users who share a particular responsibility  can be assigned to groups. There are two default groups: public and known. If it is not a valid built-in credential.  required arguments. A SnapLogic user has an identity comprised of a username and set of groups to which the user  belongs.  you can further modify the authentication configuration to enhance the security configuration. cc1_access.log. and grant or deny access depending  on the type of operation attempted by the user.  but only users who have authenticated by providing a username and password belong to the  known group as well.SnapLogic® User Guide Authentication: Active Directory-Based or File- Based The SnapLogic Server supports an authentication and privilege model that allows the admin- istrator to grant. Note: If you are in a token-based authentication environment. or restrict access to Components  and Pipelines. Each access request logs the time.log.log. with the exception of modifying the Tutorial  examples located in the /SnapLogic/Tutorial namespace. and cc2_access.conf) file.

Access rules are configured by adding entries in the <ACLs> section.   l The directive names are case-insensitive. per URI. ACLs can be  defined at a user level or at a group level.  l ACLs: Specifies. Authentication Using the snapaccess Configuration File The snapaccess. Understanding ACLs The SnapLogic Server reads the Access Control Lists (ACLs) from snapacess.conf. because a user  is not required to belong to any administrator-defined groups. Every group should have an entry in the <Groups>  section of snapacess. it denies all access to the specified  URI.conf file on  server startup. which user or group has which role or privileges.  . Each entry specifies a  rule for a particular URI and the default SnapLogic installation comes with a set of predefined  rules.  l UserGroups: Specifies to which groups a user belongs. unless the NONRECURSIVE directive is specified. Users are assigned to groups by adding entries in the <User- Groups> section.  l Groups:  Enumeration of logical groups. This is optional. <Location name="/Test/MyPipeline"> DENY USER joe ALLOW GROUP dev_group PERMISSION READ WRITE EXECUTE NONRECURSIVE </Location> Some things to note:  l All rules are recursive by default. The SnapLogic Designer prompts for authentication when you initially connect to a Data  Server. and how.  You can add entries for Pipeline URIs.81 - . It contains the following sections:  l Users: Enumeration of individual users. or when you add a new Data Server.conf configuration file is an XML document containing the rules that specify  which users can access which URIs. These ACL rules apply to every REST request to the server. These groups are optional and in addition to  the system public and known groups.  l Permissions can not be specified for DENY rules. SnAPI users can provide their credentials  through the appropriate interface routines. For example. if a Pipeline is defined at URI '/Test/M- yPipeline'. then an ACL can be added as follows.  Note: Rules for URIs beginning with '/__snap__/' are defined as required by the  product and usually should not be changed by the user. but user and group names are case-sensitive. Administration Note: The administrator can create users and assign passwords with the Sna- pAdmin utility users command.

Note: To access files outside of SNAP_HOME (which is the install directory. Permissions through group matches (a user can be a  member of multiple groups) however are accumulative. The syntax for a rule is: DENY USER/GROUP <name> [NONRECURSIVE] ALLOW USER/GROUP <name> PERMISSION READ [WRITE EXECUTE] [NONRECURSIVE] The amount of information returned depends on what permissions the user has for this data:  l READ:  Can access anything within the resdef.  l DELETE requests require WRITE. you can specify: <Location name="/foo"> deny user joe </Location> <Location name="/foo/bar"> allow user joe permission read </Location> This gives 'joe' read access to '/foo/bar' (and everything below).  filesystem_root = /tmp will  . a client must know the exact URI. For example. but denies all access to '/foo'  (and everything below. instead of being able to discover it. If a user is a member of multiple  groups and any of them allow access to a path.SnapLogic® User Guide  l One or more permissions must be specified for ALLOW rules. No resdef data. the file system root  property needs to be configured. Matching locations are evaluated with the longest prefix first. an  example on Linux is /opt/snaplogic/[release number]). Note: Denying read access to the root namespace / may disable some features. However. except 'bar'). then access is granted. In general:  l GET requests require READ access.  l EXECUTE:  Can see the resource exists and any resdef data related to execution (known  as DESCRIBE view). there are variations.  So.  l WRITE: Only has permission to see that the resource exists.82 - .  l POST/PUT requests require EXECUTE. the traversing of the path is stopped and the per- missions are taken from that match. If a specific match for a user is found. Permissions are separated  by spaces and the order in which they are listed does not matter. Without it. Read access to the / (root) namespace and to the /__snap__/meta/info is required by  clients to whom you want to allow dynamic discovery of the SnapLogic Data Server capabil- ities.

   l Jane is also a member of the Finance department. Administration allow access to all files from the Components.. consider the fol- lowing scenario:   l Harry and Sally are both members of the Finance department. Example As an introduction to the flexibility of the SnapLogic authentication model. They have been given  permission to execute the Pipelines in the /dept/finance/ space.   l No one outside of the Finance department is allowed access to that space.83 - . harry finance sally finance jane finance </UserGroups> <ACLs> <Location name="/"> deny group public allow group public permission read NONRECURSIVE allow group finance permission read write execute </Location> <Location name="/dept/finance"> deny group public known allow group finance permission read execute allow user jane permission read write execute </Location> </ACLs> </AccessConfig> . so she has been given full permissions for that  space. The Access  Configuration file should appear as follows: <AccessConfig> <Users> #Username Description harry Harry Smith .Senior Analyst jane Jane Burton . but she is the maintainer of the Pipe- lines in the /dept/finance/ space.Finance Manager </Users> <Groups> #Groupname Description finance Finance Department </Groups> <UserGroups> #Username Group1 Group2 .Senior Analyst sally Sally Bell . but are not allowed  to modify them.. This can be done for each Com- ponent Container individually.

84 - .. If you define an "admin_group" group  in the snapaccess. Follow these instructions to configure and use Active Directory-based authentication:  1. and add one or more users to it.conf file.conf file. By  default.  Edit the snapserver.   Example: LDAP_user_tem- plate="uid=%USER%.SnapLogic® User Guide Note: Privileges are assigned to namespaces.. Authorization for access requests continues  to be managed through the snapaccess.conf file's [main] section to add an LDAP_address entry..  Create a group named admin_group in the snapaccess. a user name template can  be configured to simplify the user name to be entered by the user. which is then consulted for authentication.  2. </Location>  l If a user accesses the URI /dept/finance/budget or /dept/finance/audit/results.dc=com".  the longest matching prefix rule applies to the rules for location /dept/finance/. The "admin" user has no special privileges. uncomment this line and update it to point to the LDAP server URL.. %USER% is a keyword that gets  replaced by the user name supplied by the user. They can be applied to a single  resource.  l If a user accesses /dept/finance/sales_report. this line is commented out in the snapserver. This is usually  required when connecting to an OpenLDAP server.com:389. The server checks the permissions based on the longest matching prefix first. then only this group's users will  have admin privileges. as follows: <Location name="/dept/finance/"> . </Location> <Location name="/dept/finance/sales_report"> . If the user logs on as "abc". </Location> <Location name="/dept/finance/users/jane/"> . or to a group of resources with a common prefix.  3. the user "admin" is the administrative user. By default. the rule for /dept/finance/sales_ report is used.conf file.ou=Users. Configuring Authentication Based on Active Directory You can integrate the SnapLogic Data Server with an existing external Active Directory  server. For example.  Example: LDAP_address=ldap://myserver. the user  name sent to the LDAP server would be  "uid=abc. To enable Active Direc- tory authentication..ou=Users.dc=com".conf file.  If the user name for the Active Directory instance is complex. if  . Add users that should  have administrative privileges to this group in the UserGroups section.mydomain.  uncomment the LDAP_user_template entry.  l If a user accesses the URI /dept/finance/users/jane/Q1_budget. the rules from the  location /dept/finance/users/jane/ are applied.dc=mycompany. To configure the user name template..dc=mycompany.

7.  Restart the SnapLogic Server and Component Containers.com test_group </UserGroups>  4. Administration admin_user@ad_domain. SnapLogic offers support for Single Sign-On with CA SiteMinder®. the server must be behind a proxy that protects against unauthenticated  access. the  following are your entries in the snapaccess.85 - . Custom Authentication Plug-ins As of 3. now the default configuration is to disallow anonymous requests.  l auth_plugin: the name of the plug-in to use.mycompany. more generic properties are available in the snapserver.com admin_group test1@ad_domain. Credentials and Requests From SnapLogic 3.7.  Once SnapLogic Server is installed. SiteMinder Support As of 3.mycompany.com is the account in LDAP for the admin user. Scripts or appli- cations using SnAPI or REST calls to the SnapLogic Server might have to be modified to pro- vide credentials. How to Configure SiteMinder for Use with SnapLogic The goal of this procedure is to get SnapLogic installed on a machine behind a SiteMinder  proxy. If sub-Pipelines are executed within a Pipeline using the Execute Resource  Component where the target Pipeline is on another SnapLogic instance.  Change the default port from HTTPS port 443 to HTTP port 80.conf file as follows:  a.    Uncomment this line: # The port number used by server. most incoming HTTP requests to the SnapLogic Server need to  pass credentials.conf file: <Groups> test_group test group admin_group Admin users group </Groups> <UserGroups> admin_user@ad_domain.  l auth_plugin_args: a comma-separated list of arguments for the plug-in  l proxy_auth_header: for use with a proxy-generated header as authentication. .  1.4 onwards. credentials have to be  configured for the Execute Resource Component. In earlier versions.conf file to allow for cus- tom authentication plug-ins.mycompany. the default configuration was to allow anonymous  requests. If this is  enabled. modify the snapserver.

 but if you only have shell access.  Set the proxy_auth_header to be SM_USER # To use a proxy-generated header as authentication. uncomment and update property # below. netstat -a | grep -i http  l Configure the SiteMinder proxy to forward all requests from a proxy URI to SnapLogic  on port 443. #server_proxy_uri = http://<whatever the siteminder proxy address is>  c.86 - . . Ideally by connecting to the server machine on port 80 with a  web browser. configure an Apache proxy (using mod_proxy) and modify httpd.  Configure SiteMinder Policy Server to allow access to the SnapLogic Server.com/ ProxyPassReverse / http://hostname. uncomment this line.com.  Set the proxy uri to be the SiteMinder proxy. the server MUST be behind a proxy that # protects against unauthenticated access # proxy_auth_header = "SM_USER"  1. # NOTE: If this is enabled.SnapLogic® User Guide # To enable HTTP.com/ That forwards http port 80 from the proxy to the SnapLogic Server at hostname. If you make the proxy_auth_header X_FORWARDED_FOR (which is added by the mod_ proxy).sh restart  2.  1.    For example. # If the public hostname for this server is different than reported # by `hostname` then set the server_proxy_uri to the external URI. #server_secure_port = 443  b.  Verify it is up and running. you should be able to log in with Designer with no credentials as your IP  address. server_port = 80 And comment out: # The secure port number used by the server. You only  need to allow access to the main server port (80 by default) and support  GET/POST/PUT.  Start the server: /opt/snaplogic/bin/snapctl. with the appropriate DNS name and port.conf  with: ProxyPass / http://hostname.

. try going to the Snap- Logic root URI on the proxy. and SnapLogic is configured and running. Administration  2.  l The method in which the Component Containers communicate through the various data  sources is dependent on the following:  l Does the source support secure communication? For example. .87 - . launch Designer. It should re-direct you to the SiteMinder login screen.  To enable a SiteMinder user to have admin credentials. 1234455678345 admin_group </UserGroups> Restart the server for it to take effect. Note: You may not be able to import/export resources or install Snaps because you are logged  in as an non-admin user.. You should be able to build Pipelines  and run them.conf file and add one group: <Groups> # groupname description . if the data  source does support secure communication.  l The SnapLogic Server and the Component Containers communicate with each other  through a secure HTTPS connection... You should see Designer automatically log in as  the SiteMinder user (identified by a numeric id). admin_group admins </Groups> and then add the numeric user id that you want to have admin privilege to the user groups sec- tion <UserGroups> # username groupname1 groupname2 . you need to edit the /opt/sna- plogic/config/snapaccess.  If that is successful. Once  you enter your credentials. . Security Overview SnapLogic's security points consist of:  l The SnapLogic Designer and SnapLogic Server communicate with each other through a  secure HTTPS connection. if the data  source is an FTP server (not an SFTP server) then it would be impossible to com- municate with the data source through a secure connection.  Once the proxy is set up. it should re-direct you to the SnapLogic landing page (the  one with all the API links)..  1. However..  3. then there is a dependency on the  Snap.

 A Component Container is a process that  runs a Component. Example: [[cc1]]. By default SSL is enabled.  l log_dir: The location of the log directory for this Component Container."/opt/snaplogic/extensions/components".conf.  Note: The servers need to be restarted after any change in the  snapserver. To enable SSL."/opt/snaplogic/extensions/components" component_conf_dir = "/opt/snaplogic/component_config" cc_port = 8089 cc_secure_port = 8092 cc_secure_cert = /opt/snaplogic/config/host. Include the name of each Component Container in brackets. as shown: # Configuration of component containers (CC) [component_container] # Name of CC1 [[cc1]] # the location of the log directory for this CC log_dir = C:\Program Files\snaplogic/logs # The location of component directory component_dirs = "$SNAP_HOME".SnapLogic® User Guide  l Assuming the data source supports secure communication generally.conf file's component_container section.88 - . and 8093. comment  out server_secure_ignore and cc_secure_ignore properties in the snapserver. and Java Component Container have SSL  listeners on ports 8091. Enabling SSL The SnapLogic Server. Example: component_dirs = "$SNAP_HOME". Example: log_ dir = /opt/snaplogic/logs. For example.conf. modify the snap- server. Python Component Container. respectively. . 8092. Parameters The parameters in the component_container section of the snapserver. followed by  parameters describing the Component Container.conf file include:  l CC Name: Enter the name of each Component Container before specifying its param- eters. to disable SSL.  Many existing Snaps support secure communication.  l component_dirs: The location of component directory. it is the  Snap developer's discretion whether or not to support secure communications.pem cc_hostname = YourHost-PC # Name of CC2 SSL is enabled if server_secure port is defined in the main section and/or cc_secure_port is defined in the cc section.

 self signed certificates are  installed on the server. all subsequent oper- ations for that connection are done with SSL. keeping SSL for the server only. Since the CC's will be running on the same machine.  l cc_secure_cert: This parameter points to the location of the certificate file required  for SSL communication. Example: cc_secure_port = 8092 . If the client (Designer) connects to the SnapLogic Server through https.  l cc_secure_port: Number of the port on which secure communication is available via  SSL. Pipeline execution involves the transfer of data  between CC processes.conf.5.  comment out the server_port property in the main section and cc_secure_port property in  the cc section of snapserver.domainname.89 - . to disable non-SSL access (enable only SSL). SSL  can be disabled for CC's. There  need to be a few updates to the startup scripts: On Linux or OSX Update the snaplogic_include.com:8091/designer. Example: cc_host- name = YourHost-PC.  l cc_hostname: Name of the host running the Component Container. By default. To connect to the Designer over SSL. Administration  l component_conf_dir: The location of the component configuration directory. The default SSL port  for the server is 8091. If SSL is not desired for pipeline execution. Comment out this parameter to disable https.conf and restart the server. Example: cc_ port = 8089. since the SSL certificate will have the machine name  and the browser can validate the machine name. comment out the server_port property in  the  main section and cc_port property in the cc section of snapserver. Change DATA- PORT to the port use for server_secure_port in snapserver. The browser would prompt for whether the certificate should be  trusted. Disable non-SSL access To disable non-SSL access (enable only SSL). SSL Usage To use SSL. Prior to 3. enable SSL in the snapserver. Example: cc_secure_cert = /opt/sna- plogic/config/host. Exam- ple: component_conf_dir = "/opt/snaplogic/component_config".conf. Change SERVER_URI to  .sh script in the INSTALL_VERSION_DIR/bin. SSL is not  required for inter-CC communication. To use SSL for the data server and non-SSL for CC's. Trusting the certificate would open the Designer with https. The machine name has to  be specified when installing the product. use the URL https:/- /machinename.conf. comment out the server_port prop- erty in the main section and cc_port property in the cc section of snapserver.  l cc_port: The port number used by the Component Container process.conf This will change  SnapLogic to use SSL for all interactions.pem. Note: Accessing SSL URLs through the IP address does not work since SSL cer- tificates do hostname validation.

 register all of your remaining SnapLogic  Servers by following these instructions:  l Access the Management Console by entering its URI into your browser's address bar:  http://<hostname>:<port>/console. Pipeline- and Component-level statistics. without specifying the protocol (that is. add each server by entering its hostname. .90 - . The  server you added now appears in the Setup screen. the information summarizes only that instance. as fol- lows: http://<hostname>:<port>/console.  l Repeat this step for each of your SnapLogic Servers. Using the Management Console Access the Management Console by entering its URI into your browser's address bar. the SnapLogic instance on the same domain as  the console into which you are logging. port.  without specifying http://). and password.   l Log in to your primary server. you enabled the Management Console for your SnapLogic installation. The Wall page displays. results.SnapLogic® User Guide start with https instead of http. Use the Management Console to view data for multiple distributed Snap- Logic instances.conf) to specify which  servers can be proxied. whether in a cluster or on individual SnapLogic Servers. as follows: some_snaplogic_instance:443. with an overview of  recent statistics for your SnapLogic instances. that is.  l Under the Server URI heading.  l Enter the SnapLogic instance as host:port.  Clicking on the URI of a server in this page navigates you to the Servers page for  detailed server information. The Management Console  draws on comprehensive log message access. including:  l A dashboard view of Pipeline executions  l Historic reports of all Pipeline executions  l A detailed drill-down on each Pipeline's execution history.  To make full use of the management console. A Login screen displays. as well as jobs run by the cluster Registering Servers in the Management Console When you edit the SnapLogic Server Configuration file (snapserver. Because you are only logged in to your  primary server. You can also remove servers  from the list by clicking Remove Server to the right of the server's credentials. and  analysis of Pipeline run history to enable quick drill-down to the root causes of Pipeline  execution failures. Log in with your username and password. go to the Setup screen. Management Console The browser-based Management Console provides details about the performance of executed  Pipelines. and contents  l An overview of your SnapLogic Servers at both the cluster and individual server levels. Restart the SnapLogic servers.  username. Click Add Server.  cluster configuration and server designations.  l To register additional servers.

 Click the Pipeline's Last Run time to display the Pipelines screen. Events. It displays each Pipeline executed  in the last 48 hours. which is  easily discerned by its color. you can drill down to server. The screens of the management console are  listed in a horizontal menu panel across a top of the console:  l The Wall: Use this screen as the dashboard view of your most recent Pipeline  executions.  The Wall initially displays the Pipelines run in the last 48 hours.  l Events: Use this screen to examine historical information for every Pipeline executed  from an event-based approach.  and the number of errors encountered. or Pipelines screens. but is used to display Pipeline Components when you select a Pipeline to  examine. You can manipulate the event-driven display as follows:  l Time Range: Along the top of the screen are links to control the time range in display. configuration. their status. the server on which it was run. Administration Click the tab of the screen you wish to access. . Click Last Week to dis- play all Pipelines run within the last week. or Servers screen by clicking on the  name of a Pipeline.  l Time Range: Along the top of The Wall are links to control the time range in display. Access the Servers screen by  clicking a server name in the Wall. but takes  an event-based focus. From it. The bottom panel of the Events page initially displays  the main server log. Click Last Week to dis- play all Pipelines run within the last week. The top panel of the page displays Pipeline names. Amber-colored Pipelines indicate Pipelines that have failed in the  past but are now running successfully. Pipeline.  l Server Info: Use this screen to monitor server information.91 - . and activity  for every server that you registered in the Setup screen.  l Drilling Down: Each Pipeline is presented in overview format on The Wall. the servers on  which they executed. The Wall The Wall is a dashboard view of your latest SnapLogic runs. or specify a custom range using the cal- endars that pop out of the Date Range from and to fields. Access the  Pipelines screen from the Wall.  The screen initially displays the Pipelines run in the last 48 hours. History. their start and end times. and the result of its last run. the number of records written. Events. where you can  examine the log of that run in the bottom panel.  l Paging: Use the left and right arrows on the sides of the screen to page through the  Pipelines displayed in your specified time range. History. or specify a custom range using the cal- endars that pop out of the Date Range from and to fields. or execution details. Events The Events screen also contains historical information for every Pipeline executed.  l Pipelines: Use this screen to drill down to the details of a single Pipeline. Click the  Pipeline's Server name to display the Servers screen where you can examine server  details.

  The screen initially displays executions that occurred within the last 48 hours. you can limit the display to Pipelines  that ran with Success. Ended. The tab- ular display reports the Pipeline's runs on that server: each run's Status. Click Last  Week to display all executions occurring within the last week.  l Sorting: Click on any of the column headers (Pipeline. Use the Type column on the left of the screen to filter the display by type  of event. regard- less of result.  l Filtering by Event Type: Initially. the time each run  Started and Ended. Pipeline runs that Failed.  l Pipeline Details: Drill down to Pipeline-level historical and content details by clicking  on a Pipeline's name to navigate to the Pipelines screen. Server.  l Sorting: You can sort the tabular data by clicking on any of the column headers (Status.  l Run or Validate the Pipeline: Click Run or Validate in the upper right corner of the  screen to run or validate the Pipeline on display. The bottom panel of  the screen breaks down the Pipeline's Components and reports on their individual per- formance for the execution selected in the top panel. History.  The graphic display includes a chart of data records processed by date. Stats. Access the Pipelines screen from  the Wall. or Servers screen by clicking on the name of a Pipeline. The bottom panel of the Events screen displays a  list of the Pipeline's Components and their execution status.  l Server Details: Drill down to server details by clicking the Pipeline's Server name to  display the Servers screen.  l Pipeline Components: Drill down to a single Pipeline's contents by selecting a Pipeline  using the checkbox in the left column. the number of Records processed and the number of Errors encountered.SnapLogic® User Guide  l Run or Validate Pipelines: Select one or more Pipelines using the check boxes in the  left column. or Pipelines  whose runs were Stopped. Pipelines The Pipelines screen displays when you want to drill down to the details of a single Pipeline.  Started. Records.  Records. the Events screen displays All executions. or specify a custom range  using the calendars that pop out of the Date Range from and to fields. Events. Ended. Click again to toggle  between ascending and descending order. and Errors) to sort the data by that criterion.92 - .  This screen accesses all log information related to Pipelines. Pipelines currently Running. Started. Click Run or Validate in the upper right corner of the screen to run or val- idate your selected Pipelines. . You can manipulate the detailed Pipeline display as follows:  l Time Range: Along the top of the screen are links to control the time range in display. and Errors) to specify the sort criterion. Click again to alternate between  ascending and descending order. By clicking on one of the event types. The top of the screen identifies the Pipeline-server combination you are examining.

 time Started and Ended. Click  again to toggle between ascending and descending order. . Ended. Started. configuration.  l Examine a Different Server: If you have configured your servers to run in a cluster. Events. The Servers screen  dis- plays information for the head node of a cluster. ServerInfo The Server Info screen enables you to monitor server information. Administration  l Pipeline Components: The bottom panel of the Pipelines screen displays a list of the  Pipeline's Components and their execution status. version. and the  number of Records processed and Errors encountered. The main portion of the screen is devoted to the activity of the server you are  examining: which Pipelines it has executed.  The screen initially displays the Pipelines run on the server in the last 48 hours. and activity  for every server that you registered in the Setup screen. or specify a custom range  using the calendars that pop out of the Date Range from and to fields.  l Pipeline Components: Drill down to a single Pipeline's contents by selecting a Pipeline  using the checkbox in the left column. Pipelines. if you are using that  configuration.  l Sorting: Click on any of the column headers pertaining to Pipeline executions (Pipeline.  in its Details view. installation date. as well as the operating system and architecture of the machine.  l Pipeline Log: Click the Logs view in the bottom panel to view the execution log for the  server on display. Records. license type. Click on any of  the other nodes in this section to view details about that server. History.  l Run or Validate Pipelines: Select one or more Pipelines using the check boxes in the  left column. It also dis- plays information about the Cluster to which this server belongs. or Setup screens. Access the Servers screen by clicking a server  name in the Wall. This section identifies  the head and worker nodes of the cluster to which this server belongs. as instructed in the "Registering  Servers in the Management Console" section.93 - . a Cluster pane displays providing a real-time health status of the cluster. and expiration date of Snap- Logic it is running. The bottom of the panel displays the  server Log file content. The left panel of the screen displays static Summary information about the server you are  monitoring: the edition.  Status. and Errors) to sort the data by that criterion. You can manipulate the server information display as follows:  l Time Range: Along the top of the screen are links to control the time range in display.  then the left panel of the Servers page displays a Cluster section. Click Run or Validate in the upper right corner of the screen to run or val- idate your selected Pipelines. If you are in a cluster envi- ronment.  l Pipeline Details: Drill down to Pipeline-level historical and content details by clicking  on a Pipeline's name to navigate to the Pipelines screen. their Status. The bottom panel of the Servers screen displays. Click  Last Week to display all Pipelines run within the last week. a list of the Pipeline's Components and their execution status.

0 definitions. you are prompted to grant or  deny each of its requests to use JVM Components. By default. which  limits access to resources.dmp' . Sandboxing to Protect Your SnapLogic Environment Sandboxing only applies to Java Components. Upon approval of the Snap's declared per- missions. Refer to the  "Configuring SnapLogic Server" section for more information on the snapserver. Importing and Exporting The SnapLogic Server supports exporting Component definitions in a portable format that can  be subsequently imported by the same or other servers. This  declaration occurs at Snap installation time. sandboxing is already enabled in the Java Component Container. when you install a Snap. importing resources can be done by selecting Import from the Server  menu. For example.SnapLogic® User Guide Log Files Log files provide a behind-the-scenes look into how your SnapLogic system is running. file system locations.94 - . Every Snap includes a permissions file that dictates the permissions required by each Com- ponent in the Snap. The export format is portable regard- less of operating system.0.conf file. For  assistance migrating 1. release 3. You can disable it  by setting the disable_sandbox property to true in the snapserver. Each Snap declares which resources it intends to use for it to run successfully. as follows: snapadmin> resource import /Samples/Demo1/Resources/Emp Imported /Samples/Demo1/Resources/Emp as /Samples/Demo1/Resources/Emp Imported 1 resource from file 'snaplogic. Java Snaps run inside a security sandbox.5. You can view log files in Designer from the View > Server Logs and View > Client Log  commands. such as network destinations. the server puts the approved permissions into the repository for use during  execution. and starting with SnapLogic release 2. please contact SnapLogic Professional Services. Importing using SnapAdmin Perform imports using the SnapAdmin resource import command.conf file. Importing within Designer As of release 3.  and to its "Component Container Configuration" topic for details. and executing  processes. With sandboxing. and enables you to run Components in a  restricted environment provided by the JVM.0 exports.0 exports.0 does not support the import of 1. import compatibility is sup- ported across at least one major release number. enabling you to grant or deny permissions at  install time.1 supports the  import of release 2.) Note: Authentication to the SnapLogic Server being connected to is required  before running the commands documented. (Release 2.

dmp. the -R option con- verts all contained Component URIs. For import.  l Overwriting existing Components: By default.dmp /SnapLogic/Tutorial/Exercise_1/Resources/Leads Imported /SnapLogic/Tutorial/Exercise_1/Resources/Leads Imported 1 resource from file '/home/fred/Leads. separated by spaces.95 - . either by re-rooting the URI relative to a  provided path. as  follows: snapadmin> resource import -r /Samples/Demo1 Imported /Samples/Demo1/Pipelines/Emp_Dept_Pipeline Imported /Samples/Demo1/Resources/Emp Imported /Samples/Demo1/Resources/Dept Imported 3 resources to file 'snaplogic.dmp'. by using a wildcard in your command. snaplogic. . You may  also choose to rename the Component's URI.  or by performing a recursive import. you are prompted for permission to overwrite the existing Component. or by text substitution within the URI. You may  also specify the -f option to force the overwrite without prompting you first.dmp'.  l Importing multiple Components by listing URIs: You can specify a list of Com- ponents to import by listing multiple Component URIs.  l Recursive import: To recursively import everything in a location.  l Converting absolute URI paths to relative: When importing Pipelines containing  absolute URIs that point to a different server. If the specified Component already exists in your SnapLogic  Server.  unless you specify an alternate filename using the -i option.dmp'. you can direct SnapLogic to automatically  convert these URIs to relative paths with the -R option. use the -r option. as follows: snapadmin> resource import /SnapLogic/Tutorial/Exercise_ 1/Resources/Leads /SnapLogic/Tutorial/Exercise_1/Resources/Prospects Imported /SnapLogic/Tutorial/Exercise_1/Resources/Leads Imported /SnapLogic/Tutorial/Exercise_1/Resources/Prospects Imported 2 resources from file 'snaplogic. Administration The following is a list of additional import options:  l Specifying the import file: Import reads from the default file.  l Importing multiple Components: You can import numerous Components with one  command by listing the URI of each Component.dmp'. as follows: snapadmin> resource import /Samples/Demo1/Resources/* Imported /Samples/Demo1/Resources/Emp Imported /Samples/Demo1/Resources/Dept Imported 2 resources from file 'snaplogic. as follows: snapadmin> resource import -i /home/fred/Leads.  l Importing multiple Components using a wildcard: You can use the asterisk (*)  wildcard character to specify all of the items in a particular folder. regardless of the server. import preserves the URI name of  the exported Components.

 l selecting Export All from the Server menu. The following is a list of additional export options:  l Specifying the export file: Export writes to the default file. . All rights reserved.dmp. Exporting using SnapAdmin Perform exports using the SnapAdmin resource export command.96 - . For example.dmp' Exporting within Designer As of release 3. SnapLogic Inc.dmp'. exporting resources can be done by:  l right-clicking on a resource in the Library and selecting Export Resource.SnapLogic® User Guide  l Renaming Components on import: You can rename Components when you import  them.1. snaplogic. you can  import it to a new location. Server URL: http://snaplogic1:443 Server version: 3.5.dmp' snapadmin> resource import -s /Demo1/=/MyDemo1/ /Samples/Demo1/Resources/Emp Imported /Samples/Demo1/Resources/Emp as /Samples/MyDemo1/Resources/Emp Imported 1 resource from file 'snaplogic.dmp /SnapLogic/Tutorial/Exercise_1/Resources/Leads Exported /SnapLogic/Tutorial/Exercise_1/Resources/Leads Exported 1 resource to file '/home/fred/Leads. as follows: snapadmin> resource export -o /home/fred/Leads.  or by performing a recursive export. if you do not wish to overwrite an existing Component. snapadmin > credential set default admin Password: ****** Success: credential is set snapadmin> resource export /SnapLogic/Tutorial/Exercise_ 1/Resources/Leads Exported /SnapLogic/Tutorial/Exercise_1/Resources/Leads Exported 1 resource to file 'snaplogic.  l Exporting multiple Components: You can export numerous Components with one  command by listing the URI of each Component. as follows: snapadmin> connect server http://snaplogic1:443 Success: Connected to server. using the -s option. by using a wildcard in your command. unless  you specify an alternate filename using the -o option.0 Server copyright: Copyright (c) 2007 .2010. as follows: snapadmin> resource import -s Emp=EmpCopy /Samples/Demo1/Resources/Emp Imported /Samples/Demo1/Resources/Emp as /Samples/Demo1/Resources/EmpCopy Imported 1 resource from file 'snaplogic.dmp'.

. To export dependencies.  l Recursive export: To recursively export everything in a location.  l Exporting Pipeline dependencies: When exporting Pipelines. The originating server to which they point may be  the same server containing the Pipeline.dmp'.  l Converting absolute URI paths to relative: By default. Use the -R flag  to make these URIs relative when they are written to the dump file. you normally need to  export the objects included in the Pipeline. export preserves the URIs  of Components contained in a Pipeline. Administration  l Exporting multiple Components by listing URIs: You can specify a list of Com- ponents to export by listing multiple Component URIs. as follows: snapadmin> resource export /SnapLogic/Tutorial/Exercise_ 1/Resources/Leads /SnapLogic/Tutorial/Exercise_1/Resources/Prospects Exported /SnapLogic/Tutorial/Exercise_1/Resources/Leads Exported /SnapLogic/Tutorial/Exercise_1/Resources/Prospects Exported 2 resources to file 'snaplogic. SnapLogic export can do this automatically  for any Components that are co-located on the same server as the Pipeline you are  exporting. as follows: snapadmin> resource export /SnapLogic/Tutorial/Exercise_1/Resources/* Exported /SnapLogic/Tutorial/Exercise_1/Resources/Prospects Exported /SnapLogic/Tutorial/Exercise_1/Resources/Leads Exported 2 resources to file 'snaplogic.  l Exporting multiple Components using a wildcard: You can use the asterisk (*)  wildcard character to specify all of the items in a particular folder. or a different SnapLogic server. Importing the dump file  back on the Server will restore all the Pipelines to the state they were in when the dump was  created.dmp'. Snapshots Under the Server menu there is a new option by the name Snapshots.dmp'. These URIs may be absolute URIs that point  explicitly to the originating server. separated by spaces. as  follows: snapadmin> resource export -r /SnapLogic/Tutorial/Exercise_1 Exported /SnapLogic/Tutorial/Exercise_1/Resources/Prospects Exported /SnapLogic/Tutorial/Exercise_1/Pipelines/Leads_to_Prospects Exported /SnapLogic/Tutorial/Exercise_1/Resources/Leads Exported 3 resources to file 'snaplogic.97 - .dmp'. This allows users to  create a dump file of all the Pipelines on a specific SnapLogic Server. use the -d flag as follows: snapadmin> resource export -d /SnapLogic/Tutorial/Exercise_ 1/Pipelines/Leads_to_Prospects Exported /SnapLogic/Tutorial/Exercise_1/Resources/Leads Exported /SnapLogic/Tutorial/Exercise_1/Pipelines/Leads_to_Prospects Exported /SnapLogic/Tutorial/Exercise_1/Resources/Prospects Exported 1 resources and 2 dependencies to file 'snaplogic. use the -r option.

 Snapshots creates the dump  file on the server while Export All provides the dump file as a local download. # The port on which nginx should list # for requests for this server (can be # anything you want. please configure # a different port for each of these entries in the nginx # config file. http { . This section provides an example of con- figuring the nginx web server to be used as a front end for the SnapLogic processes.mycompany. proxy_pass http://myhost. proxy_redirect off. listen 81. Add a server con- figuration for each process to your nginx.com:443. If the SnapLogic Server is configured with both SSL and non- SSL.. proxy_buffering off. In the case of nginx.com:8089.. } } server { # One of these entries for each CC (component container) process # If multiple CCs are running on the same host.conf file. proxy_pass http://myhost. configuring proxy forwarding is straightforward.SnapLogic® User Guide The difference between the Snapshots and the Export All functionalities is that while the con- tents of the dump file generated by either actions is the same. server { # For the SnapLogic main server process listen 80.   Running SnapLogic Behind a Proxy SnapLogic supports running behind a proxy server. Consequently. This means  Snapshots is saves time and is less of a hassle when it comes to recovery/rollback..mycompany.. location / { # Replace the example URI with your actual CC URI. as follows: . then both the SSL and non-SSL ports have to be proxied for each of the three servers. you must  configure the proxy for all three. proxy_redirect off. underscores_in_headers on. of course) location / { # Replace the example URI with your actual Server URI. Configuring the Proxy A running SnapLogic installation has at least three server processes: The SnapLogic Server  (the main server) and one or more Component Container processes. } . proxy_buffering off.98 - .

location / { . server { # SSL proxy for the SnapLogic Server listen 443.. Configuring SnapLogic In order to ensure correct operation of the SnapLogic  Server processes. as follows: server_hostname = myhost... a different front-end port must be chosen in the proxy for each SnapLogic server and  the location must be '/'.com cc_port = 8089 cc_proxy_uri = http://myproxy. ssl_certificate /etc/ssl/certs/myssl. Add proxy-URI definitions for each server process. the main server and CC processes are run behind a proxy front end. 'proxy_buffering' has to be disabled to ensure that out- put view reads do not fail with network read errors..com:80 Likewise. http { . The underscores_in_headers property is required to ensure that all headers used by the  SnapLogic are forwarded by nginx. Your proxy may run on a different host than your SnapLogic  servers. Administration } .mycompany. in which case the hostnames in the examples above  would be the same.  Instead. the fol- lowing example shows how this can be done using nginx as a proxy front end: . ssl_certificate_key /etc/ssl/private/myssl.crt. SSL Proxy Configuration In order to secure the network connection between clients and the server of a SnapLogic instal- lation. as shown in the preceding config file example.99 - . .mycompany.com:81 The server_proxy_uri and cc_proxy_uri parameters define the complete URI of the proxy  front end for that process.. or it may run on the same host...mycompany. } Please note that it is currently NOT possible to separate requests to the various SnapLogic  servers by path (simply using separate 'location' directives within a single 'server' definition). you must edit the  SnapLogic configuration file.key. add proxy-URI definitions for each CC: cc_hostname = myhost.. ssl on. The front end then  takes care of all SSL encryption.com server_port = 443 server_proxy_uri = http://myproxy.mycompany. Extending the example described in the "Running SnapLogic Behind a Proxy" section. in the CC section of the config file.

conf. The keytool command which is part of JRE can be used for  this.com:443 .0_20/lib/security/cacerts If the SnapLogic Server is being accessed through a Java SnAPI program.. When using the proxy front end to take care of SSL.crt -keystore /opt/snaplogic/3. For example.mycompany. the certificate used by the proxy should be added to  the trust store used by the Java CC.  l Number: This is a decimal number. } } .com:444 Self-signed Certificates If self-signed certificates are being used.crt. Data Types and Output Representation Formats Pipeline Data Types The following data types are the field-level data types supported by SnapLogic. } . ssl on.6. which are  used by input and output records within Pipelines:  l String: This is a Unicode string. ssl_certificate /etc/ssl/certs/myssl. Comment out the server_secure_port and cc_secure_port properties  in the snapserver. as follows: server_proxy_uri = https://myproxy. .. Note: Replace the example paths to the CRT and KEY file with the correct paths to  you CRT and KEY files.19583PE/pkg/java/jre1. location / { . port.1.. SSL support can be disabled in the Snap- Logic configuration.key. keytool -import -alias proxy -file /etc/ssl/certs/myssl...  possibly.SnapLogic® User Guide } } server { # SSL proxy for the SnapLogic CC listen 444.. cc_proxy_uri = https://myproxy. the proxies cer- tificate would have to be added to the trust store of the JRE running the Java client process.100 - . with a precision of 28 digits.mycompany.4.. The proxy URI has to be modified to express the new scheme and. ssl_certificate_key /etc/ssl/private/myssl..

 a web browser can read the output from Output1 of a Com- ponent whose URI is http://server:443/SnapLogic/Tutorial/Exercise_ 1/Resources/Leads using the following /feed URI: http://server:443/feed/SnapLogic/Tutorial/Exercise_ 1/Resources/Leads/Output1?sn.3 Mime type: 'text/tab-separated-values' Applications can request a specific format by specifying the sn. it converts the data stream into one of several formats. introduced in version 2. introduced in version 2.  This data representation enables requestors to specify which format their preferred format. or underscores.) Mime type: 'application/json'  l HTML: text in the form of Hypertext Markup Language Mime type: 'text/html'  l CSV: text with comma-separated values.1: information encoded in Abstract Syntax Notation One format. The valid schemes and their meanings are:  l file: Specifies a file local to the SnapLogic Server.  SnapLogic currently supports the following data representations:  l ASN. which stores time with micro- second resolution.content_type parameter in  the HTTP request. If  input path begins with a /. between Components and Pipelines.  l http: Specifies data is read via HTTP.0  had a JSON Component for explicitly returning output records from Pipelines to the appli- cation. input_path is the HTTP URL. otherwise the path  is relative to the server root. A SnapLogic identifier is a string beginning with a letter or underscore. Output Data Representation Formats When SnapLogic sends data over the network. digits. input_path is the HTTP URL.0.0. fol- lowed by a sequence of letters.  l ftp: Specifies data is read from an ftp data source.  l https: Specifies data is read via secure HTTP.  l Filename: Most file read components support a URL specification for their input using  the format 'scheme://input_path'.101 - .0. For example. This component is obsolete as of Version 2. General Data Types The following definitions are the definitions of data types used in Component properties:  l SnapLogic Identifier: This is an ASCII string which follows the same rules as Python  identifiers. then the filename is treated as absolute. Administration  l Datetime: This is a combined date and time data type.content_type=text/html . input_path is the local filename.3 Mime type: 'text/csv'  l TSV: text with tab-separated-values.  Mime type: 'application/x-snap-asn1'  l JSON: information encoded in JavaScript Object Notation format (SnapLogic Version 1. or to the  applications requesting output data.

 Admin credentials must be used. acl  l acl addrule: Add a new acl rule. . note the <index>  of the specific rule in order to specify it here. SnapAdmin Commands The SnapAdmin command library consists of the following commands. Admin credentials must be used. Admin credentials must be used. Example: cluster set jobs_per_worker 5  l cluster syncsnaps: Reads all the snap.102 - .  l acl get: Print info for a particular acl in the username/password file. Admin credentials must be used. The only parameter  allowed currently is jobs_per_worker. you can give SnapAdmin a file containing  commands to execute. Using acl get <aclname>. Starting SnapAdmin The SnapAdmin utility is located in the /bin directory of the SnapLogic Server installation.  l acl list: Print list of acl in the username/password file.  l acl delrule: Delete an existing acl rule. By default. by using the -c filename option. zip files on the head node and installs each  one on the given worker node URI. bye  l bye: Exit the SnapAdmin utility. SnapAdmin must  be connected to a server. Alter- natively. Admin credentials must be used. To  start SnapAdmin:  l Linux: Execute snapadmin. SnapAdmin starts an interactive command session. Returns an  error if not connected to a cluster configured server. Admin credentials must be used. SnapAdmin must be con- nected to a server.sh at the command prompt.  l acl create: Create a new acl. Admin cre- dentials must be used.SnapLogic® User Guide SnapAdmin Utility SnapAdmin is a simple command line interface that provides basic SnapLogic Server admin- istration functions.  l cluster workers: Prints all the worker nodes configured on the head node.  l acl delete: Delete an existing acl from the username/password file. cluster  l cluster set: Sets the specified parameter to the new value.

 snapadmin -c command_file) and you don't want the prompt.dmp /path/to/.. Refer to the Component Reference Guide for a com- prehensive list of Component names... Note: You may need to edit your ACL configurations for this command to  work. Note that if you are using a command  script (for example.. Lastly. Specifying current  sets credentials only for the current connection. Use default to specify the default credentials used for  any connection that does not have its own credentials set. you may need to disable ALLOW GROUP known PER- MISSION read write execute and enable ALLOW GROUP public PER- MISSION read write execute.  l connect list: List the current server connections and their index.more commands that follow. The command prompts for a password.  l component print <name>:  Print the information about a specific Component. Administration component  l component list: List the Components available to this server. credential  l credential set {default | current | <connection-index>} <user>: Set the cre- dentials used for requests to the server. a connection index is used to set  the credentials for a specific connection. You can use the  index to switch the active connection with the connect switch command. such as snap- logic. Use the connection list command to view each con- nection and its index. For example. Lastly.components. as follows: connect server http://localhost:443 credential set default admin yourpassword resource import -r -R -f -i . connect  l connect server <url>: Connect to a server by specifying its URL.103 - . Specifying current resets cre- dentials only for the current connection.  l connect switch <connection-index>: Set the active server connection. Use this com- mand when you are connected to multiple SnapLogic Servers. Use the connect list com- mand to view each connection and its index. a connection index is used to reset the  credentials for a specific connection. . The  <name> parameter must be a full Component identifier name. Use default to specify the default credentials  used for any connection that does not have its own credentials set. you  can place the password after the user credential. Use the connection list command to view each  connection and its index.  l credential reset {default | current | <connection-index> }: Reset the cre- dentials for a server connection./demo. and the resulting user/password pair is used for  all server requests for the relevant connections.CsvRead.

104 - .  l group get <groupname>: Get group. Options  l -l LIMIT. Admin credentials  must be used.  log  l log search [-l limit] [-o offset] pipeline_rid [regex_search_string]: Dis- plays the Pipeline logs for the given Pipeline runtime ID. enclose it in quotes. If the optional regex search string is specified. Admin credentials must be used.SnapLogic® User Guide disconnect  l disconnect: Disconnect the current connection. SnapAdmin must be con- nected to a server. --limit=LIMIT: how many log lines to show. Admin credentials must be used. . Admin credentials must be used. that is.  l group deluser <groupname> <username>: Delete a user from a group. only the log lines matching the search  string are displayed. You can find the Pipeline ID by  using the pipeline list command.  Lines are shown in reverse chronological order. group  l group adduser <groupname> <username>: Add a user to a group. Default is 0 (show all).  l group create <groupname>: Create a new group.  l group list: Print list of group in the username/password file. exit  l exit: Exit the SnapAdmin utility. Admin cre- dentials must be used. Admin credentials must be used.  l pipeline print <pipeline-uri>: Print the history of a specific Pipeline identified by  URI. If the search string consists of several words. the most recent records are  returned first. help  l help: Print-related help.  l group delete <groupname>: Delete an existing group from the username/password  file. --offset=OFFSET: Log lines at the beginning to skip pipeline  l pipeline list: List the Pipeline execution history.  l -o OFFSET.

 You can get the runtime ID through the pipeline list command. The user needs to be connected to  the server as an admin user to be able to run this command.105 - . the user needs to ensure that  the repository password is saved in a secure manner. If  the password option is not supplied. If the repository password  is lost. . but the Pipeline continues to run asynchronously  until completed or forcibly stopped. The database is left in the MySQL server and can be recreated with the  repository create command. If this option is used. The path must either point to a nonexistent file to create.  l repository destroy -t mysql [-H <host>] [-P <port>] -u <username> [-p <password>] <database>: Destroys the MySQL repository.  l repository create -t mysql [-H <host>] [-P <port>] -u <username> [-p <password>] <database>: Create a new MySQL repository.  The last argument specifies the name of the database in the MySQL server containing  the repository. and the user can recreate it with the  repository create command.  Supported only if the repository type is set to SQLite. Use empty password to disable encryption. It is the same as running one of the above repository destroy commands. The database file is left at the location. The username is the MySQL user.  l repository destroy -t sqlite <filename>: Destroys the SQLite repository at the  given path. The optional host and port  specify the hostname and port of the MySQL server. the repository password has to be entered every  time the server is restarted. the command prompts the user for the password. the command prompts the user for the password.  l repository destroy -c <filename>: Destroys the repository configured in the config  file. The username is the MySQL user. The optional host and port  specify the hostname and port of the MySQL server.  l repository encrypt [options]: Encrypts the repository database used by SnapLogic. the repository contents CANNOT be recovered. If  the password option is not supplied.  The command returns immediately. or to a  SQLite database that does not already contain a SnapLogic repository. If this option is used. --password=PASSWORD The password to use to encrypt the repos- itory database.  The last argument specifies the name of the database in the MySQL server in which to  create the repository.  l pipeline stop <pipeline-id>: Stop the execution of a Pipeline identified by its run- time ID.  l Options: -n. The repository contents can  be backed up using export before using this command. Administration  l pipeline start <pipeline-uri>: Start the execution of a Pipeline identified by URI. but the  necessary options are parsed directly from the config file. -p PASSWORD. repository  l repository create -t sqlite <filename>: Create a new SQLite repository database  at the given path. --no_save   Do not save the new repository encryption password on the  server.

 In general it should not be used manually unless you are sure of what  you are doing.  l resource list: List the Components in the repository. -p PASSWORD.   l resource export Refer to the "Import and Export" section for details. aes-128-cbc. Using this option takes  you out of the --no_save mode. aes-256-cbc and aes-256-cfb.  l repository password [options]: Changes the encryption password for the repository  database used by SnapLogic. separated by whitespace. --current_password=CURRENT_PASSWORD The current  password to use to decrypt the repository database..  If supplied. uri-list is a list of URIs of Components to delete. If this option is used. the user needs to ensure that  the repository password is saved in a secure manner.  l resource print <uri>: Print Component details.  l repository wait_on_upgrade: Wait for the startup repository upgrade to complete. all Components are deleted. -c CIPHER. aes-256- ecb.106 - . The repository contents can  be backed up using export before using this command. aes-128-cbc. The supported options are aes-128-ecb.SnapLogic® User Guide -c CIPHER. --cipher=CIPHER The cipher to use to encrypt the repository data- base. Otherwise. the command confirms whether to  proceed for each Component. In the case of Pipelines. If the repository password  is lost.  If * is supplied instead of uri-list.  l Options: -n. The supported options are aes-128-ecb. Use empty password to disable encryption. the repository password has to be entered every  time the server is restarted. . If this option is used. aes-256-cbc and aes-256-cfb. aes-256- ecb.  l repository upgrade {-t <db-type> | -c <config-file>} [options] .. --cipher=CIPHER The cipher to use to encrypt the repository data- base. This command is used by the Snap- Logic installer.   l resource import: Refer to the "Import and Export" section for details. --password=PASSWORD The password to use to encrypt the repos- itory database.aes-128-cfb. resource  l resource delete [-f] {<uri-list> | *}: Delete Components from the repository. The default is aes-256-cbc. aes-128-cfb. The -f flag forces the  delete without requiring user interaction. The  user needs to be connected to the server as an admin user to be able to run this com- mand. the repository contents CANNOT be recovered. Supported only if the repository type is set to SQLite.:  Upgrades the structure of the repository database. including its properties and input/out- put definitions. the command also displays the list of contained  Components. --no_save   Do not save the new repository encryption password on the  server. -o CURRENT_PASSWORD.The default is aes-256-cbc.

 This means that the user is deleted. Returns an error if  not connected to a cluster-configured server. Example: worker delete http://worker.mydomain.  l users list: Print a list of users in the username/password file.  l users makepasswordfile [-f] <password_file> [<admin_password>]: Creates a  new.com:443  l worker delete: Delete a worker node from the cluster configuration. . All user information is lost.com:443  l worker list: List all the worker nodes configured on the head node. --recursive: descend recursively into matched subfolders server  l server shutdown: Shutdown the SnapLogic server in a graceful manner. Administration  l resource upgrade [options] {<uripatterns> | *}: Upgrade Components from  prior Component versions to the current versions.  An admin user will always be created. shell  l shell: Execute an operating system shell command. without prompt.  l verbose on: Verbose mode.  l Options: -r. source  l source: Execute SnapAdmin commands contained in a file. empty password file. No new job executions are permitted when the server is  shutting down. Print additional error information. if available.  l users setpassword <username> <password>: Modify the password of an existing  user. worker  l worker add: Add a worker node to the cluster configuration. If the admin password is not specified on the com- mand line. The - f flat forces deletion. Waits for all  currently running jobs to finish. only containing the admin user. verbose  l verbose lasterr: Print additional information about the last error. then it will be prompted for.107 - .mydomain.  Example: worker add http://worker. users  l users create <username> <password>: Add a user.  l verbose off: Turn off verbose mode.  l users delete [-f] <username>: Delete an existing user from the password file. Specifying the name of an  already existing password file overwrites the existing file. Succinct error reporting.

 but logs can be shown in the Designer. If communication  between the Server and the Sidekick is interrupted.108 - . For more information. the server will no longer be able to talk to  the Sidekick. the server tells  the Sidekick to run it. so those Pipelines can still be run. The Sidekick can be installed anywhere on your network  that has access to the data that you want to use. . The advantage of using Sidekick instead of  an on-premises installation of the Server is a lighter install and footprint on the ground. so Pipelines will not be executed. actual Java code runs in the Sidekick on the ground. Side- kick's lighter footprint means that all Pipelines and associated metadata are stored in the  cloud instance of SnapLogic Server. When a Pipeline needs to run. Scheduled Pipelines have an option to be  executed if they miss their window.SnapLogic® User Guide Sidekick The SnapLogic Sidekick is a service installed locally that lets you access data both on site  behind a firewall and in the cloud. see the SnapLogic Sidekick Guide. Snap output streams are made available to the Server in such a way that there is no dif- ference whether the Java CC is running on the ground (as Sidekick) or in the cloud. Snap logs  are stored with the Sidekick. A Server running in the cloud  stores the metadata and controls the Sidekick. Sidekick is essentially a Java Component Container (Java CC).

input_def) emp_reader_resource. 'Employee Number').components. 'Salary'). 'string'. ( 'comm'. 'Job'). 'Hiredate'). 'string'. ( 'deptno'. ( 'job'. 'string'.set_general_info('description'.txt') # etc.  l Set the Component properties.FixedWidthRead') # Set the properties emp_reader_resource. 'string'. 'snaplogic. Refer to the following example for Component creation in SnAPI. # Define the output view output_fields = ( ( 'empno'. ( 'sal'.109 - . 'Manager').  l Define the inputs and/or outputs. 'file://demo/date/emp_fixed.  l Validate and save the Component to the server. Creating and Configuring a Component in SnAPI Creating a Component with SnAPI consists of these basic steps:  l Create an instance of a Component. ( 'mgr'. 'string'. 'string. etc. ( 'ename'. 'Employee Name'). 'string'. 'Read employee records from emp_fixed. 'string'. ( 'hiredate'.set_property_value('filename'.create_resource_object(server_uri.txt') emp_reader_resource. A Appendix: Completing Tasks in SnAPI This section provides instructions for completing tasks using the SnapLogic Application Pro- gram Interface.set_property_value('Field specs'. 'Department') ) . from snaplogic import snapi # Create an instance of a Component server_uri = 'http://localhost:443' # URL of the SnapLogic data server to which we connect emp_reader_resource = snapi. 'Commission').

.validate() emp_reader_resource. 'snaplogic.components. ..txt') # Run suggest/auto-fill and get a new resource image back with suggested changes.SnapLogic® User Guide emp_reader_resource. 'file://demo/data/emp_csv.CsvRead') emp_reader_resource. Configuring Pass-Through Fields with SnAPI You can specify pass-through in SnAPI using the set_output_view_pass_through() call. You can inspect and compare the original and suggested resdefs to  determine whether to use the suggested resdef. Example: Component Suggestions in SnAPI from snaplogic import snapi # Create an instance of a component server_uri = 'http://localhost:443' # URL of the SnapLogic data server to which we connect emp_reader_resource = snapi.add_record_output_view("output1".set_property_value('filename'. "output view") # Validate and save it to the server validate_error = emp_reader_resource.110 - .save(server_uri + '/SnapLogic/Demo/Resources/Emp') Component Suggestions in SnAPI When using SnAPI. the Suggest method returns a complete Component definition containing  the suggested changes.suggest() print "Original Resource" print emp_reader_resource print "Suggested Resource" print emp_suggest_resource #. output_fields. emp_suggest_resource = emp_reader_resource.create_resource_object(server_uri.

Appendix: Completing Tasks in SnAPI Example: Configuring Pass-Through Fields with SnAPI # This resource needs only empno.get_current_status(False).exec_resource(SERVER_URI + PIPELINE_NAME..add_record_input_view("Input1". 'number'. 'number'.exec_resource call.com:443' PIPELINE_NAME = '/SnapLogic/Tutorial/Exercise_1/Pipelines/Leads_to_ Prospects' # You can specify values for any of the parameters declared by the Pipeline parameters = {'LEADS' : 'file://tutorial/data/leads. 'number'. 'INPUT_DELIMITER' : '.. (('empno'.set_output_view_pass_through("Output1".is_finished(): time. 'Department'). 'Employee number')." while not handle.sleep(1) print "Polling for completion of pipeline.["Input1"]) Specifying Parameter Values at Runtime in SnAPI When using the SnAPI interface. The rest are passthrough. raise.example. 'number'. 'Salary')). 'number'. 'Department'). ('deptno'.(('empno'.  import time from snaplogic import snapi SERVER_URI = 'http://myhost.add_record_output_view("Output1". 'Employee number').111 - ." print "All done!" .. ('sal'. "Input View") raise. "Output View") raise. ('sal'. params=parameters) print "Waiting for completion of pipeline execution. deptno and sal. 'Salary')).' } handle = snapi.. 'number'. ('deptno'.csv'. you can specify parameter values and pass them into the  snapi.

'string. and then  linking the Components together using simple SnAPI calls. The following example is an  excerpt from the SnAPI files used to load the examples featured in the tutorials:   . 'Manager'). ('deptno'.add_record_output_view("output1". you can create Pipelines by adding Components to your Pipeline object. For more information. 'string'. 'snaplogic. "output view") # Validate and save it to the server validate_error = emp_reader_resource. 'Commission'). 'string'. 'string'.validate() # We forgot to set the filename property so validate # should return an error so indicating. 'Job').FixedWidthRead') # Define the output view output_fields = ( ('empno'. 'string'. ('hiredate'. S('sal'. 'Hiredate'). 'Salary'). 'string'.components. 'Employee Name'). output_fields.112 - . if validate_error: print validate_error else: emp_reader_resource. refer  to the online SnapLogic SnAPI information on creating a Component in Python and creating a  Component in Java.   Example: Validating a Component in SnAPI from snaplogic import snapi # Create an instance of a component server_uri = 'http://localhost:443' # URL of the SnapLogic data server to which we connect emp_reader_resource = snapi. ('mgr'.save(server_uri + '/SnapLogic/Demo/Resources/Emp') Creating a Pipeline in SnAPI Using SnAPI. ('job'. 'Employee Number'). 'string'.SnapLogic® User Guide Validating Components in SnAPI Refer to the following example to validate a Component in SnAPI. 'string'. 'Department') ) emp_reader_resource. ('comm'.create_resource_object(server_uri. ('ename'.

get_current_status(False). 'Last_Name'). p. When using the SnAPI programmatic interface. Appendix: Completing Tasks in SnAPI .. 'First_Name').. snapi.exec_resource(SERVER_URI + PIPELINE_NAME.'input1'. ('Address'.example." while not handle.link_views('Leads'.' } handle = snapi.csv'. import time from snaplogic import snapi SERVER_URI = 'http://myhost.com:443' PIPELINE_NAME = '/SnapLogic/Tutorial/Exercise_1/Pipelines/Leads_to_ Prospects' # You can specify values for any of the parameters declared by the Pipeline parameters = {'LEADS' : 'file://tutorial/data/leads. ('Phone_w'. 'Prospects'. you can specify parameter values and pass  them into the snapi. .create_resource_object(server. ('State'. field_links) # Save the pipeline p.. ('Zip'. 'Zip_Code'). ('Last'. .add(leads_res_def. 'City')..exec_resource call. ('City'. 'State'). 'Work_Phone')) p. "Prospects") # Specify the field linkage field_links = (('First'. .is_finished(): time." print "All done!" Creating a Data Service Pipeline in SnAPI Follow this example to assign outputs in Data Service Pipelines in SnAPI: .sleep(1) print "Polling for completion of pipeline. 'Address'). params=parameters) print "Waiting for completion of pipeline execution. p = snapi.113 - .PIPELINE) # Add the resources to the pipeline.'output1'.save(p_uri) . .add(prospects_res_def. "Leads") p. 'INPUT_DELIMITER' : '.

SnapLogic® User Guide # p_resdef is my pipeline object to which resource C2 has been added. "P_Output1") Mapping Components in SnAPI To link fields with SnAPI you must define a list of field pairings and add the list to the Pipeline. 'deptno') ) # Define the resource linkage and the mapping used for each link p.sleep(1) print "Polling for completion of pipeline. 'comm'). p_resdef.exec_ resource(). 'mgr'). 'output1'. You can then run Pipelines using snapi.'hiredate') ('sal'.. emp_record_ link) Executing Pipelines in SnAPI You can use the SnAPI interface to launch Pipelines...is_finished():t ime. ('job'. 'ename').' } handle = snapi. configure your environment using  the appropriate snaplogic_env script.get_current_status(False). 'job'). "C2_Output1"." while not handle. 'sal'). ('comm'. This gives you more flexibility to start  and monitor Pipelines from Python and Java scripts. ('mgr'." . 'input1'.exec_resource(SERVER_URI + PIPELINE_NAME.com:443' PIPELINE_NAME = '/SnapLogic/Tutorial/Exercise_1/Leads_to_Prospects' # You can specify values for any of the parameters declared by the Pipeline parameters = {'LEADS' : 'file://tutorial/data/leads. 'INPUT_DELIMITER' : '. ('deptno'.example.  The following is an example of a field linking script in SnAPI: # Define the field name mapping emp_record_link = ( ('empno'. passing arguments at runtime. params=parameters) print "Waiting for completion of pipeline execution. ('ename'. 'Emp Write'.. 'empno').assign_output_view("C2".114 - . and monitoring them. Refer to the following  example of SnAPI Pipeline execution: #!/usr/bin/env python import time from snaplogic import snapi SERVER_URI = 'http://myhost.csv'. ('hiredate'.linkViews('Emp Read'. First.

trace_ data. Data Tracing in SnAPI Enable data tracing during Pipeline execution in SnAPI by specifying the parameter sn.output: Use this setting to force all Component inputs and outputs to be traced.org:443' TUTORIAL_1_PIPE = '/SnapLogic/Tutorial/Exercise_1/Pipelines/Leads_to_ Prospects' pipe_resdef = snapi.  l input.115 - .execute(None...get_resource_object(SERVER_URI + TUTORIAL_1_PIPE) handle = pipe_resdef. {"sn. . Appendix: Completing Tasks in SnAPI print "All done!" To view execution logs in this method.trace_data": "input. "Pipeline with tracing enabled") # .  l output: Use this setting to force all Component outputs in the Pipeline to dump their  data into trace files.output"}.snaplogic. None. use the Management Console by entering its URI into  your browser address bar: http://<hostname>:<port>/console. The parameter value can be set to:  l input: Use this setting to force all Component inputs in the Pipeline to dump their data  into trace files. The following is an example of the data tracing command to trace both inputs and outputs: from snaplogic import snapi SERVER_URI = 'http://snaplogic1.

116 - .SnapLogic® User Guide .

 A more advanced scenario could.html.04   l PostgreSQL 8. This can be  done by executing the following at the psql prompt:  CREATE FUNCTION get_plpython_ver() RETURNS text AS $$ import sys return str(sys. B Appendix: SnAPI and PostgreSQL General This page describes the usage of SnAPI from within PostgreSQL. we'd want to capture this changed  data and write it out into the CSV file.php?/archives/99-Quick-Intro-to-PLPython. Database Access chapter of the PostgreSQL  manual. If the version returned from the query above is not 2.4 (installed with apt-get install postgresql-plpython-8. of course. as a useful case for change data capture.so. Log Level Sample snippets below assume SET client_min_messages='LOG'. this means that functions  can be used as well to integrate with SnapLogic. It has to be 2. for the purposes of this  example.5 or 2.117 - .  We will assume.6 you may have to rebuild lib/post- gresql/plpython. as triggers use functions.com/journal/index.5 or 2. see http://www.3. has been run at the psql prompt. see 41. This has been tested with the  following:  l Ubuntu 10. For more information on that. has been run  on the appropriate databases. but.- postgresonline.4)  Prerequisites PL/Python This assumes PL/Python has been installed and CREATE LANGUAGE plpythonu. that every time a row is inserted into a table.  Here we will write new data to a CSV file as it gets inserted into a table.   Triggers This example presents integration with triggers. SELECT get_plpython_ver().  First. set up the  . Triggers are chosen  as an example for a nice use case.version) $$ LANGUAGE plpythonu. For more details on that. check the version of Python PL/Python will be using.6.

Create CSVWrite Resource We will create a CSVWrite resource at /postgres_cdc URI that has a single input view.close() h.2. In such cases we would be interested in other # parts of TD object.postgresql.  We will.rp import SNAP_ASN1_CONTENT_TYPE # URL for the CsvWrite resource created above write = snapi. we will create a table the changes for which we will prop- agate to the CSV file.SnapLogic® User Guide trigger on both insert and update. For more information. we are only interested in the 'new' value of the TD object.  Input1. # however. then. # Thus. None) h. a trigger may act not just on INSERT but also on # UPDATE or DELETE.append('/opt/snaplogic/2.4/interactive/plpython-trigger.path. city and state (corresponding to the above table). we are focusing on responding to just INSERTs.execute(inputs.snapi_base import resdef from snaplogic import snapi from snaplogic.org/docs/8.get_resource_object('http://localhost:443/postgres_cdc') inputs = {'Input1' : SNAP_ASN1_CONTENT_TYPE} h = write.log("Writing to SnapLogic: " + str(rec)) inp. as follows:  CREATE TABLE snap_cdc_example ( city VARCHAR(100). . see # http://www.wait() $$ LANGUAGE plpythonu.write_record(TD['new']) inp.2PE') from snaplogic.dictionary_format_record = True inp = h. go through the following steps:   Table to Capture Changes on For the purposes of this example. state VARCHAR(2)).118 - . and use DBUpsert component to propagate the change to  another database.html rec = TD['new'] plpy.inputs['Input1'] # In this example. Create Function Create a function that will be used as a trigger:   CREATE OR REPLACE FUNCTION write_to_csv() RETURNS trigger AS $$ import sys # Path to the SnapLogic Python code base sys. with two String fields.

 every insert into the snap_cdc_example table will result in writing the inserted data to  the SnapLogic CSV Write resource created above.  Try it Now.  CREATE TRIGGER snap_cdc_example AFTER INSERT ON  snap_cdc_example FOR EACH ROW EXECUTE PROCEDURE write_to_csv().NY line is written to the postgres. And see that New York.csv file. Appendix: SnAPI and PostgreSQL Create the Trigger Create a trigger to run the above function. on every insert:  DROP TRIGGER  cdc_trig ON snap_cdc_example. 'NY').119 - . Execute  INSERT INTO snap_cdc_example VALUES ('New York'. write_to_csv(). . Try it for yourself.

 let you configure which user or  groups has which role or privileges.   l Default Permissions: ALLOW GROUP known PERMISSION read write execute  l Location Name: /__snap__/__static__  l Description: Allow static handlers. which is needed for the land- ing page. Information on configuring ACLs can be found at "Under- standing ACLs".120 - .    l Default Permissions: ALLOW GROUP public PERMISSION read NONRECURSIVE . Required by the product and usually should not be  changed by the user.SnapLogic® User Guide Appendix: ACLs The access control lists.  l Default Permissions:  l DENY GROUP public  l ALLOW GROUP public PERMISSION read NONRECURSIVE  l ALLOW GROUP known PERMISSION read write execute  l Location Name: /__snap__  l Description: Allow all Snap handlers. Default deny. Required by the product and usually should not  be changed by the user.  l Location name: /  l Description: Root directory. stored in the snapaccess. except for root. The following is the list of predefined ACLs in the snapaccess. most of which protect themselves further with  admin restrictions or secret keys. Required by the landing page (http://<hostname>:<port>). needed by anonymous users to login.   l Default Permissions:  l DENY GROUP public  l DENY GROUP known  l Location Name: /__snap__/auth  l Description: Allow auth entry point.conf file. Required by the product and usually should not be  changed by the user.conf file.  Required by  the product and usually should not be changed by the user.   l Default Permissions: ALLOW GROUP public PERMISSION read  l Location Name: /__snap__/__static__/protected  l Description: Only admin can access it.

   l Default Permissions: ALLOW GROUP public PERMISSION read NONRECURSIVE . Required by the product and usually should not be  changed by the user.   l Default Permissions: ALLOW GROUP public PERMISSION write  l Location Name: /__snap__/meta/info  l Description: Allow info page. Required by the product and usually should not be  changed by the user. Required by the product  and usually should not be changed by the user.    l Default Permissions: ALLOW GROUP known PERMISSION read NONRECURSIVE  l Location Name: /__snap__/cluster/status  l Description: Allow cluster status check. Required by the product and usually should not  be changed by the user.121 - . Required by the product and usually should not be  changed by the user.    l Default Permissions: ALLOW GROUP public PERMISSION read write execute NON- RECURSIV  l Location Name: /__snap__/auth/acl/list  l Description: Allow auth entry point.   l Default Permissions: ALLOW GROUP public PERMISSION read write execute  l Location Name: /__snap__/auth/check  l Description: Allow auth login point. Appendix: ACLs  l Location Name: /__snap__/uri_check  l Description: Allow uri checks. which is further protected by tokens.  l Default Permissions: ALLOW GROUP public PERMISSION read NONRECURSIVE  l Location Name: /__snap__/runtime/status  l Description: Allow runtime status check. Required by the product and usually should  not be changed by the user. which is needed by snapadmin.   l Default Permissions: ALLOW GROUP public PERMISSION read  l Location Name: /__snap__/cc/register  l Description: Allow cc register uri. Required by  the product and usually should not be changed by the user.

ico  l Description: Access to the SnapLogic icon (from the root directory) for the browser. Required by the product and  should not usually be changed by the user.  Required by the product and usually should not be changed by the user.  l Location Name: /favicon.  l Default Permissions: allow group public permission read write execute.122 - .txt  l Description: Serve /robots.xml  l Description: Serve /crossdomain. Snaps will instantiate resources here.txt .xml   l Default Permissions: ALLOW GROUP public PERMISSION read  l Location Name: /designer  l Description: Runs the SnapLogic Designer.  l Default Permissions: ALLOW GROUP public PERMISSION read write execute  l Location Name: /console  l Description: Runs the SnapLogic Management Console.SnapLogic® User Guide  l Location Name: /__snap__/resources/upgrade/status  l Description: Allow polling of repository upgrade status.   l Default Permissions: ALLOW GROUP public PERMISSION read  l Location Name: /extensions  l Description: By default.   l Default Permissions: ALLOW GROUP public PERMISSION read  l Location Name: /crossdomain.   l Default Permissions: ALLOW GROUP public PERMISSION read  l Location Name: /__snap__/self_check  l Description: Used for determining whether resource references are remote or local.  l Default Permissions:ALLOW GROUP public PERMISSION read  l Location Name: /__snap__/cc_proxy/__snap__/runtime/  l Description: Allow proxying for querying runtime info  l Default Permissions: ALLOW GROUP public PERMISSION read  l Location Name: /robots.

Appendix: ACLs

 l Default Permissions: ALLOW GROUP public PERMISSION read

 l Location Name: /public

 l Description: Public folder

 l Default Permissions: ALLOW GROUP public PERMISSION read write execute

 l Location Name: /SnapLogic

 l Description: Allows access to the SnapLogic directory.

 l Default Permissions: ALLOW GROUP public PERMISSION read write execute

 l Location Name: /SnapLogic/Tutorial

 l Description: Allows access to the SnapLogic Tutorial directory.

 l Default Permissions: ALLOW GROUP public PERMISSION read execute

- 123 -

SnapLogic® User Guide

- 124 -

Glossary

C

canvas
The canvas is your main workspace in Designer. Create data inte-
gration solutions in the canvas by sketching, connecting, and then
configuring Components and Pipelines. Drag generic Component
templates from the Foundry or configured Components from the
Library in the sidebar to the canvas. Connect these objects to each
other, configure, and execute them all from the canvas. Refer to
the section about the canvas for greater detail.

Component
A Component is an object used to perform a simple subtask, such
as read, write, or act on data. Strung together, Components are
the building blocks of Pipelines, or data flows. Components are
generally classified as Connectors (Components that read or write
data) and Operators (Components that perform an action, such as
a join or filter, on data). Basic templates for Components are
included in your SnapLogic installation (refer to the Component
Reference for the list of Component templates that ship as part of
SnapLogic), and reside in the Designer's Foundry panel. These
generic templates, once configured, become configured Com-
ponents that are stored in the SnapLogic Server repository, and
can be found in the Designer's Library panel.

Component Container
A process that runs a Component.

Component template
An unconfigured Component in the Foundry. Component tem-
plates are generic objects used to perform a simple subtask, such
as read, write, or act on data. They are included in the SnapLogic
installation, and reside in the SnapLogic Designer Foundry panel.
To create a Component, you must configure a Component tem-
plate to your specific needs. To create a Pipeline, you must con-
figure one or more Component templates, and connect them to
data sources, other Components, or data targets.

- 125 -

F Foundry The bottom panel in the Designer's sidebar that stores the building blocks from which you can build projects. Not all Components accept input data. and analysis of Pipeline run history to . whether in a cluster or on individual SnapLogic servers. M Management Console The SnapLogic browser-based management console provides details about the performance of executed Pipelines. I input Inputs are pieces of data that a Component consumes for the pur- pose of performing functions on them. The management con- sole draws on comprehensive log message access.SnapLogic® User Guide Connectivity Snaps A Snap that adds connectivity to an application or data source. D Designer The SnapLogic graphic user interface where you can visually create data integration scenarios. Pipeline.and Component-level statistics.126 - . link A link defines a mapping between the fields of any two Com- ponents. or (when supported) pass- ing them through to another downstream Component. L Library The top panel in the Designer's sidebar that stores the projects you are building: your Pipelines and configured Components.

pass-through The pass-through capability allows Components to accept fields that are not specified as inputs. With pass-through. only those fields specified as inputs of the downstream Component must be linked. the inputs of Components in a Pipeline need not be explicitly designed to handle all of the incoming fields from upstream Components. O output Outputs are pieces of data a Component produces that can serve as inputs to downstream Components. field linking is used to specify how fields or columns from one Component map to those of a downstream Component. Refer to the Com- ponent Parameters section for more information on parameters. P parameter Parameters are variables that can be used for run-time sub- stitution in the properties of Components or Pipelines. You can use parameters to avoid hard-coding property values that are likely to change. Component inputs only need to specify fields that the Component requires for its computations. Not all Components produce outputs.127 - . Using parameters enables you to use a single Component or a single Pipeline for multiple purposes. Glossary enable quick drill-down to the root causes of any Pipeline execution failures. Parameters defined at the Pipeline level must be mapped to corresponding parameters at the Component level within the Pipeline. . mapping The identification of data relationships between different entities. This reduces the field linking to the absolute minimum. When you link two Components. and pass these fields directly as their outputs. All the remaining unlinked outputs of the upstream Component are passed through to the downstream Component's output. In SnapLogic.

the Snap resides in the Library. such as the Salesforce Snap.SnapLogic® User Guide Pipeline A collection of one or more Components linked together to orches- trate a flow of data between end points. The definition of "Snap" is therefore a recursive one: A complex Snap can con- tain multiple Pipelines. After you configure its Component tem- plates to your specific sources and targets. SnapAdmin A simple command line interface that provides basic SnapLogic Server administration functions. You can purchase a Snap in SnapStore and install it into the Foundry. func- tion. and using any parameter values you specify. slider A feature in the SnapLogic Designer that enables you to navigate through Component. periodic executions of a Pipeline. while still viewing the corresponding object in the can- vas above. and Pipeline properties below the canvas. and usually high-level.128 - . such as a filter. S Scheduler The SnapLogic utility for scheduling automatic. connection. which contains Components for inserting contacts into and deleting contacts from Salesforce. The SnapLogic Server runs the Pipeline unattended at the dates and times you specify. A Snap can comprise a complete Pipeline packaged as a simple Component to insert an item. Snap An object that performs a complete. A Snap can be a collection of Components that are func- tionally related. A Snap can also consist of a single low-level building block. Refer to the "SnapAdmin Utility" section for more information. a simple Snap can stand alone or par- ticipate in a Pipeline. SnAPI SnapLogic Application Program Interface is the programmatic interface to the SnapLogic Server that enables you to create and .

SnapStore. SIs. SnapStore SnapLogic's online marketplace. enables developers. . and ISVs to develop and monetize custom Snaps. SnAPI is ideal for users who do not need the visual interface of the SnapLogic Designer or for those who wish to create Components and Pipelines by way of code generation. Glossary use Components and Pipelines from your application or devel- opment environment. extending the SnapLogic Server's connectivity and functionality.129 - .

130 - .SnapLogic® User Guide .

conf 81 creating in Designer 25 syntax 82 creating in SnAPI 109 understanding 81 creation overview 25 admin database related 29 password 65 definition 11 administration overview 25 buffer configuration 79 parameters 36 memory configuration 78 optional 36 overview 63 required 36 architecture 9 syntax 37 authentication pass-through fields Active Directory 84 configuring in Designer 33 overview 80 configuring in SnAPI 110 permissions 80 overview 32 snapaccess.131 - .conf 81 properties 27 user credentials 80 suggestions B Designer 29 buffer overview 28 configuration 79 SnAPI 110 C Components canvas exporting using SnapAdmin 96 overview 20 exporting within Designer 96 tabs 20 general information 26 toolbar 20 importing using SnapAdmin 94 clustering importing within Designer 94 head node 72 inputs 28 .Index A worker node 73 Component ACLs configuring 26 in snapaccess.

high availability 77 mats 100 http requests Designer credentials 85 launching 13 menu bar 14 overview 13 .132 - .output representation for.SnapLogic® User Guide liking fields in Designer 43 E liking fields in SnAPI 114 error handling 47 outputs 27 F previewing 28 failover validating server configuration 77 Designer 38 Sidekick configuration 77 management console 38 feed 46 overview 37 Field Linker 43 SnAPI 112 files concepts uploading from Library 19 overveiw 9 Foundry credentials categories 18 http requests 85 Foundry view 18 D overview 17 data folder Recently Used view 18 Library 19 toolbar 18 data representations 101 view tabs 18 data service G access feed from browser 46 groups access feed from Designer.conf 81 data tracing known 80 configuration file 55 public 80 designer 54 trace files 55 H data types.feeds adding users 64 accessing 45 creating 64 creating Pipeline in Designer 44 in snapaccess.

L overview 32 passwords Library admin 65 data folder 19 changing users 65 folders 19 permissions overview 18 execute 80 toolbar 22 read 80 view tabs 19 write 80 M Pipeline management console 90 concurrent execution 79 Events 91 configuring 39 Pipelines 92 dataservice registering servers 90 creating in SnAPI 113 Servers 93 definition 11 using 90 properties 40 Wall 91 Pipelines memory aborting 51 configuration 78 creating in Designer 39 O creating in SnAPI 112 output fields data types 100 default values 35 definition 39 providing NULL default value 35 executing 49 replacing NULL with default value 35 executing from HTTP 51 transforming field values 36 executing from management console 51 P executing from SnapAdmin 51 parameters executing in Designer 50 specifying at runtime in Designer 37 executing in SnAPI 114 specifying at runtime in SnAPI 111 execution pass-through fields scheduling 52 configuring in Designer 33 general information 40 configuring in SnAPI 110 inputs 41 .133 - .

snapserv.SnapLogic® User Guide outputs 41 Sidekick configuration 77 parameters 41 slider running 49 commands 22 updating 42 Component mode 22 proxy server Field Linker mode 22 configuring for SnapLogic 98 overview 21 self-signed certificates 100 Pipeline mode 23 R Smart Link 43 Snap repository definition 11 encrypt 105 SnapAdmin password 106 commands 102 requests overview 102 anonymous 85 SnAPI http and credentials 85 configure 13 S configuring pass-through fields 110 sandboxing 94 overview 13 Scheduler procedures 109 email notifications 53 SnapLogic properties 52 about 7 security Component servers 10 overview 87 design process 11 server configuration 77 user interfaces 10 servers SnapLogic Server clustering 71 architecture 9 head node 72 Component Container head node failover 74 parameters 68 job distribution 73 configuration file.conf 66 worker nodes 72 configuring 65 settings 15 configuring for proxy server 99 Sidekick 108 data cache parameters 69 in Library 19 general settings 66 .134 - .

management console 70 creating 63 notification 69 in snapaccess. 59 installing 58 installing in a cluster 58 overview 57 SnapStore defined 57 SSL disabling non-SSL access 89 enabling 88 proxy configuration 99 usage 89 T token-based authentication server setting 68 U user interfaces overview 13 usergroups in snapaccess.135 - .conf 81 repository configuration 69 starting 65 stopping 65 SnapLogic Sidekick 108 Snaps accessing 57 configuring 59 defined 57 developing.conf 81 users changing password 65 .

136 - .SnapLogic® User Guide .