You can use the Administrator API to perform most ColdFusion Administrator tasks programmatically. The Administrator API consists of a set of ColdFusion components (CFCs) that contain methods you call to perform Administrator tasks. For example, you use the setMSQL method of datasource.cfc to add a SQL Server data source.
The CFCs for the Administrator API are located in the cf_web_root/CFIDE/adminapi directory, and each CFC corresponds to an area of the ColdFusion Administrator, as the following table shows:
CFC |
Description |
---|---|
accessmanager.cfc |
Specify the username, password, description, access rights, sandboxes, and allowed roles for individual users. |
administrator.cfc |
Contains basic Administrator functionality, including login, logout, the Migration Wizard, and the Setup Wizard. You must call the login method before calling any other methods in the Administrator API. |
base.cfc |
Base object for all other Administrator API CFCs. |
datasource.cfc |
Add, modify, and delete ColdFusion data sources. |
debugging.cfc |
Manage debug settings. |
eventgateway.cfc |
Manage event gateways. |
extensions.cfc |
Manage custom tags, mappings, CFXs, applets, CORBA, and web services. |
mail.cfc |
Manage ColdFusion mail settings. |
runtime.cfc |
Manage runtime settings for fonts, cache, charts, configuration, and other settings. |
security.cfc |
Manage passwords, RDS, and sandbox security. |
serverinstance.cfc |
Start, stop, and restart JRun servers. This CFC only works when running the multiserver configuration. |
servermonitoring.cfc |
Perform many of the Server Monitor tasks programmatically. |
The adminapi directory also contains an Application.cfm file and two subdirectories.
There are two styles of methods in the Administrator API:
Method argumentsWhen setting complex or varied values, the Administrator API uses method arguments.
Getting and setting simple valuesWhen setting simple values, such as true or false debug settings, the Administrator API uses get and set property methods.
To view the methods, method arguments, and documentation for the Administrator API CFCs, use the CFC Explorer. For example, to view datasource.cfc when running in the server configuration, open a browser to http://localhost:8500/CFIDE/adminapi/datasource.cfc.
The following example adds a SQL Server data source:
<cfscript> // Login is always required. This example uses two lines of code. adminObj = createObject("component","cfide.adminapi.administrator"); adminObj.login("admin"); // Instantiate the data source object. myObj = createObject("component","cfide.adminapi.datasource"); // Create a DSN. myObj.setMSSQL(driver="MSSQLServer", name="northwind_MSSQL", host = "10.1.147.73", port = "1433", database = "northwind", username = "sa", login_timeout = "29", timeout = "23", interval = 6, buffer = "64000", blob_buffer = "64000", setStringParameterAsUnicode = "false", description = "Northwind SQL Server", pooling = true, maxpooledstatements = 999, enableMaxConnections = "true", maxConnections = "299", enable_clob = true, enable_blob = true, disable = false, storedProc = true, alter = false, grant = true, select = true, update = true, create = true, delete = true, drop = false, revoke = false ); </cfscript>
The following example adds the same SQL Server data source, but uses the argumentCollection attribute to pass all method arguments in a structure:
<cfscript> // Login is always required. This example uses a single line of code. createObject("component","cfide.adminapi.administrator").login("admin"); // Instantiate the data source object. myObj = createObject("component","cfide.adminapi.datasource"); // Required arguments for a data source. stDSN = structNew(); stDSN.driver = "MSSQLServer"; stDSN.name="northwind_MSSQL"; stDSN.host = "10.1.147.73"; stDSN.port = "1433"; stDSN.database = "northwind"; stDSN.username = "sa"; // Optional and advanced arguments. stDSN.login_timeout = "29"; stDSN.timeout = "23"; stDSN.interval = 6; stDSN.buffer = "64000"; stDSN.blob_buffer = "64000"; stDSN.setStringParameterAsUnicode = "false"; stDSN.description = "Northwind SQL Server"; stDSN.pooling = true; stDSN.maxpooledstatements = 999; stDSN.enableMaxConnections = "true"; stDSN.maxConnections = "299"; stDSN.enable_clob = true; stDSN.enable_blob = true; stDSN.disable = false; stDSN.storedProc = true; stDSN.alter = false; stDSN.grant = true; stDSN.select = true; stDSN.update = true; stDSN.create = true; stDSN.delete = true; stDSN.drop = false; stDSN.revoke = false; //Create a DSN. myObj.setMSSQL(argumentCollection=stDSN); </cfscript> <!--- Optionally dump the stDSN structure. ---> <!--- <cfoutput> <cfdump var="#stDSN#"> </cfoutput> --->