Operators

Version 2.14 Change Log

Release Date: 
28th March 2011
Version Number: 
Version 2.14

The new enhancements in this release were based more upon the feedback of the customers along with a new publisher portal.

New Publisher Portal
It’s a major revamp to the Publisher Portal. The portal is developed by revolving around the three mantras: Easy-to-use, Clean and Fast. The portal is sleek and has yielded in excess of 50% improvement in loading speed!

Additional CDN hostnames for HTTP pull
Publisher is capable of adding several CDN hostnames with the same origin. Publisher can take advantage of parallel download to speed up page loading speed. This method is recommended by Yahoo! as one of the best practices for speeding up website.

Aflexi on cPanel Interface

cPanel Plugin

Aflexi Main Scree on cPanel

  • Publishers shall see [Advanced]-> [CDN Manager] in their Home page, provided that their accounts are granted with the Content Delivery Network feature.

Creating CDN Resources

Create CDN site in cPanel

  1. Navigate to [Advanced] -> [CDN Manager] -> [CDN Resource] -> [Add CDN Resource]
  2. Fill in the CDN Hostname and Origin of the site.
  3. Click OK.

Upon CDN resource creation, a CNAME entry should have been automatically created, provided the domains of the CDN resources are managed by cPanel. You may verify this in your domain hostname records @ [Domain[ -> [Advance DNS Zone] . Otherwise, you will need to add an entry to your domain hostname records, click on the CDN sites itself  for CNAME details. Our system checks for CNAME updates every 15 minutes, once it has been activated, you will be able to start using the service.

 


List CDN Resource

Listing all the CDN Resources in cPanel

  1. Navigate to [Advanced] -> [CDN Manager] -> [CDN Resource]
  2. You may see al the CDN sites that user created.

 


CDN Migration Instruction

Aflexi CDN Instruction on cPanel

  1. Navigate to [Advanced] -> [CDN Manager] -> [CDN Resource]
  2. Click on one of the CDN site
  3. You may see the instructions how to migrate content to CDN with the CMS listed.

Aflexi on WHM Interface

Creating CDN Packages

Enable CDN in Feature Manager

To enable your customers to access to cPanel plugin, you would need to enable "Content Delivery Network" on cPanel Feature Manager.

  1. You can create/edit the Feature List of respective package via Main >> Packages >> Feature Manager
  2. Once configured, you may create a cPanel package with that particular feature list.

Alternatively, you may enable it via Aflexi CDN plugin too by navigating to [Main]  -> [Plugins] -> [Aflexi CDN] -> [CDN Package]

Enable or Disable CDN Pacakge in WHM


Modifying CDN Package

Edit CDN Package in WHM

You may edit/update the Aflexi CDN package on WHM instead login into Aflexi portal.

  1. Navigate to [Main] -> [Plugins] -> [Aflexi CDN] -> [CDN Packages]
  2. Click on one of the CDN Packages.
  3. You may edit CDN package properties according to your needs.
  4. Click OK and it will be synchronized to Aflexi database.

Creating/Viewing CDN Users

List Aflexi Users in Aflexi

  • Create a cPanel user as usual by assigning them with a CDN package that was created in the previous step. You may also create cPanle users using WHMCS, as long as the package in WHMSC is enabled with CDN.
  • cPanel users with Aflexi package will be auto synched to Aflexi database. You may login Aflexi portal to see the account created. It normally take around 5 minutes for synchronization.
  • Note that every cPanel user must come with a valid email address. A user without email will not be synced.
  • Downgrade/Upgrade to a Non-CDN package triggers the suspension of the Aflexi CDN account.
  • To list your users with CDN feature, navigate to Main >> Aflexi CDN >> CDN Users.

Manage Live Streaming Topology

This page illustrates the flowing of your live streaming services.

This feature allows you to control the flowing of live streaming. You may drag and drop the live streaming edge server to certain publishing points. In this case, you would have the grouping feature for live streaming edge servers. Take note that publishing points also acts an publishing proxy, for example,

LiveStreamingTopolgy.png

 

There will be 3 different types of edge servers as described on the graph above:

  1. Wowza Origin - contents origin or as a proxy, for example, London and US
  2. Wowza Edge - delivering contents to end users.
  3. Wowza Origin and Edge - combination of above two, etc MY

IF USER uploads contents to US,

  • US delivers to all edge servers under him.
  • London edge servers retrieve from London origin, which retrieves from US origin
  • MY origin retrieves the contents from US and delivers to its edge server and visitors.

If USER uploads contents to London,

  • London delivers to all edge server under him.
  • US edge servers retrieve from US origin, which retrieves from London origin.
  • MY retrieves the contents from US and delivers to its edge server and visitors.

IF USER uploads contents to MY,

  • MY delivers to all edge servers under him while delivering to visitors too.
  • US. edge servers retrieve from US origin, which retrieves from MY origin.
  • London edge servers retrieve from London origin, which retrieves from MY origin.

WHMCS Module

Introduction

This feature allows you to create a CDN product by selecting Aflexi module. Therefore, you may create, suspend, and terminate CDN accounts directly through WHMCS.

Creating Aflexi Product

Creating CDN Product in WHMCS

  1. Navigate to [Setup] -> [Product/Services] -> [Create New Product].
  2. Select your Product Type and Group, then fill in your Product Name and save the changes.
  3. Now, scroll to [Modul Settings] and select "Aflexi", as graph above explained.
    1. [Automatically setup the product as soon as an order is placed] - CDN account will be created upon client placing an order. Note that CDN account will not be created if admin placing the order in admin WHMCS portal. This is the behaviour of WHMCS.
    2. [Automatically setup the product as soon as the first payment is received] - CDN account will be created upon first payment received.
    3. [Automatically setup the product when you manually accept a pending order] - CDN account will be created after a pending order is activated.
  4. Save changes.

Putting Email Template

Setting Up Aflexi Welcome Email


An Aflexi email template is created along with the installation of plugin. You may use this email template for sending username/password to your clients.

  1. You may modify the Aflexi email template at [Setup] -> [Email Template]
  2. Simply navigate to [Setup] -> [Product/Service]
  3. Click the Aflexi product.
  4. Select "Aflexi CDN Welcome Mail", as graph above shown.

 


Placing An/Multiple Aflexi Order(s)

Placing an Aflexi CDN order in WHMCS

  1. Operator may now create an/multiple Aflexi order(s) to your clients.
  2. Navigate to [Order] -> [Add New Order]
  3. Select your client and choose the CDN product.
  4. Save changes and an order is created.
  5. CDN account will be created following the configuration on the "Module Setting" on Product page(Shown In "Creating Aflexi Product" help section)
  6. After the payment is remit, Aflexi will create a CDN account. If welcome email is congifured as above, an email notifcation with username/password will be sent to the respective client's email address. Kindly do remember that email address is required in WHMCS client's account.
  7. Operator may see the created account with respective package in Aflexi portal.

Automated Synchronization (Per CDN User/Publisher)

  • If a client signs up, and insert a domain along with the order, whmcs should automatically generate a username on behalf.
  • If a client signs up without inserting a domain along with the order, Aflexi will automatically generate a username based on registrant email. The Aflexi CDN username would look like: user_domain.com_[Product/HostingId]

Multiple orders with respective username is allowed under the same WHMCS user.

 

Creation of CDN accounts
It depends on the configuration on the product. There are 4 available options in Product's Module Settings.
When a user account is closed or deleted User account in Aflexi is suspended

 


Manual Synchronization

Synchronize using Module Component For Aflexi account

In WHMCS, Aflexi works exactly similar to cPanel hosting. You may use the Module Commands(as graph above) to trigger the events to Aflexi account.

  1. Navigate to [Clients] -> [View/Search Clients]
  2. Click on one of your client.
  3. Browse to [Products/Services] and there are few options for synchronization:
  • Create - Creating/Recreating of Aflexi CDN account.
  • Suspend - Suspend an Aflexi user account.
  • Unsuspend - Activate an Aflexi user account from suspendion.
  • Terminate - Terminate/Delete Aflexi user account.
  • Change Package - Upgrade/Downgrade Aflexi package.
  • Change Password - Update the password of Aflexi user account.

 


Deleting/Suspending CDN account

Suspend Aflexi CDN Account

Beside terminate Aflexi CDN account using Manual Synchronization as above, the CDN account will be deleted/suspended when you closing the WHMCS account.

  1. Navigate to [Clients] -> [View/Search Clients]
  2. Click on the client that you are closing/deleting.
  3. As screenshot shown, you may either choose
    • Close Clients Account - It will suspend Aflexi CDN account by clicking "Close Clients Account"
    • Delete Clients Account - It will trigger to delete Aflexi CDN account.

WHMCS AddOn

Introduction

Given the case installing Aflexi WHMCS plugin and cPanel plugin in your environment, Aflexi Addon in WHMCS supports the seamless experience between cPanel, WHMCS, and Aflexi CDN.

Manual Synchronization (All CDN Packages & Users)

WHMCS Add on Main Screen

  1. This page is accessible via [Utilities]->[Addon Modules]->[Aflexi Cdn]
  2. This page shows a table shows a list of products, each with a checkbox to indicate whether the product has been CDN enabled.
  3. Tick or untick the checkbox to enable or disable CDN.
  4. Click [Save Settings] to synchronize the user (publisher) account and package to Aflexi.

 


Automated Synchronization (Per CDN User/Publisher)

When a payment is made to a CDN enabled product The user (publisher) account and package is synchronized to Aflexi
When user email or name is changed The latest email or name is synchronized to Aflexi
When a user account is closed or deleted User account in Aflexi is suspended
When a invoice is being refunded, cancelled or set to unpaid User account in Aflexi is suspended

NOTE: Changing the statuses from a bulk operation or directly from the status dropdown menu will not trigger the automated synchronization.

 

Show Synchronized Users

  WHMCS Synchronized Publishers  

  1. This page is accessible via [Utilities]->[Addon Modules]->[Aflexi Cdn]->[Show Synchronized Publishers]
  2. The purpose of this page is to show users accounts that had been synchronized to Aflexi, and their Aflexi password (as of the time they are being synced) and package. If publisher changes the password in Aflexi, it will not be reflected here.

 


Charging for Aflexi CDN AddOn

  1. By default, the addon for Aflexi CDN is configured as a free product.
  2. If you wish to charge for it, go to [Setup]->[Product Addons], and configure the addon named “Aflexi CDN”. Change the “Billing Cycle” and the “Pricing” fields to fit your requirement.


Notes

  1. Aflexi package is synchronized by the webhosting package name (if available) or product name  specified in the module settings under the WHMCS product.
  2. Aflexi user account is synchronized by the WHMCS's orders username. If username doesn't exist, email address will be taken in this case.
  3. Free products (and the users) are not synchronized.
  4. Each package created in Aflexi through the synchronization process.

NOTE: Please do not disable the CDN product on the Product Addons page, it will not trigger the automated synchronization.

Version 2.13 Change Log

Release Date: 
2nd March 2011
Version Number: 
Version 2.13

Dear value customer, it's Aflexi monthly release again! This release contains several features and enchancement highlights:

Live Stream Publishing Topology
This newly developed feature allows Operator to specify the topology of Live Stream Wowza Edge and Origin; it allows up to 2-tiered Origin. Operator may now group live stream edge servers under one specifed live stream origin, etc live stream edge servers in US under an origin in Dallas, while live stream edge servers in EU under an origin in London. Origin in London retrieves the contents from US origin(if the cotents published to US) and publishes to it's edge servers.

Set Non-Cache Path
Publisher is capable of configuring non-cache path in the portal right now without amending any configuration at the origin.

Enhancement Highlights: 
  • DNS Content Partitioning
  • Custom Nginx Config
  • RTSP Streaming
  • Allow Bandwidth Exceed Package Limit

API for All Users

 

Gateways

API is accessible for all users through:

Most up-to-date languages have XML-RPC, HTTP and JSON modules or libraries, which allows you to easily interact with our services.

 

References

The quickest way to find out what are the supported methods is through the system.listMethods introspection from commonly implemented by many XML-RPC clients and servers. For HTTP+JSON, send your request to /api/rpc?v=2&s=system&m=listMethods&no_auth.

For further explanations on the API, refer to the API Reference Documentation. If you require them as a ZIP or tarball, please contact us.

 

Usage

Authentication

Except methods of system namespace, all methods require a username and API key (generated through the Portal) for identification and authentication purposes. For better credential control, we do not recommend you to share the same key for all API clients.

The first two parameters of a method are mandatory and meant for your credentials, e.g. surrogate.get('username', 'secret', ...). Your username is your email registered with our system (unless you customized it), contact support otherwise if it does not work.

 

Examples

Examples in PHP

Client Construction
$client  = XML_RPC2_Client::create($uri, array(...));   $client->get('username@domain.com', 'authKey', array('someKey' =>  'someValue'));

 

Examples in Java/Groovy

There's no huge distiction on how an XML-RPC request can be constructed in other languages. We have some Groovy scripts written a while back that you may find useful.

 

HTTP+JSON

The HTTP+JSON service is written on top of the XML-RPC service. We use it internally for Portal's AJAX features and we only recommend it to Publishers for private labeling reason, but if there is a need to, you can read about its usage notes from this page.

 

 

 

 

 

Rebranding APIs

Private Labeled API

If your acquired license is granted with private labeling capability, starting from V3 Portal, we have exposed an API gateway for your customers to use.

This feature doesn't require any additional setups as it honors the existing settings. Just make sure that you provide the correct gateway to your customers:

  • If you are an Operator, your Publishers shall use http://your.rebranded.portal/publisher.php/api/rpc. (API Guide)

 

Rebranding Publisher CDN Portal

 

Requirements

The V3 Publisher Portal is a brand new invention using HTML5, CSS3 and LESS technologies, designed for today's and future's browsers. In order to rebrand the portal, minimum understanding on these technologies is required.

 

HTML5 and CSS3

HTML5

HTML5 enables better semantic markup and rich features which can be well extended on the portal in future. Along with CSS3, the styling of elements are clearner and speak for themselves.

For example, the following rule denotes that the bullet items in the first <nav/> element are in-line with the paragaph:

footer nav:nth-of-type(1) > ul > li { display: inline; list-style: none; }

The portal is well tested on Gecko-based and Webkit-based browsers (the recent ones, as long as CSS3 is supported), such as Firefox, Google Chrome and Safari. It works functionally well on other browsers such as Internet Explorer and Opera, with trivial UI glitches.

You may learn more about them by reading the specifications:

 

LESS

LESS is not a standard but excellent work produced by Alexis Sellier. It is an extension of CSS (like SASS) with variables, mixins, selector inheritance, etc. It is originally written in Ruby and rewritten in JavaScript with easier adoption, greater performance, and runtime compilation. It therefore serves as the foundation of style rebranding in the V3 portal.

Before we look into the real stuff, you may learn more about the "language" from its documentation.

 

Layout and Structure

Wireframe

The wireframe below shows the HTML structure used by generally most of the pages in the portal.

Wireframe

 

Common IDs and Classes

And these are the IDs and classes constituting most of the elements of the structure.

/* Key IDs, some are already shown in the wireframe above. */
#logo, #header-nav, #welcome, #page-wrapper, #page, #page-title, #page-nav, #page-summaries, #side-nav,

/* Decorators */
.highlight, .hidden, .underlined, .unsupported,

/* Data */
.items, .entities, .records,

/* UI Components */
.actions, .links, .notifications,
.box1, .box2,

/* Hackable Stuff */
.action-write, .action-delete,

 

Styling

Stylesheets

The portal is designed with the goals of reducing our customer's ramp-up time and enabling freedom for Aflexi's refactoring. Hence, rebranding no longer requires overriding CSS rules but setting variables in LESS.

Before you begin styling, these are the key stylesheets being used:

  • base.less - Contain predefined mixins, such as .clear, .list-flat, .radius, etc. Imported by standard.less. (View)
  • standard-vars.less - Contain set of standard variables. (View Copy)
  • standard.less - Standard styling of the portal. (View)

 

Basic Styling

  1. Get a copy of default.less and rename it e.g. mystyle.less.
  2. Get a copy of standard-vars.less and rename it e.g. mystyle-vars.less.
  3. Generate your jQuery theme, based on the color scheme you redefine in mystyle-vars.less. We'll call it jqui.css.
  4. Replace in mystyle.less:
    1. @import url(/css/publisher/default-vars.less); with @import url(http://your/path/to/mystyle-vars.less);
    2. @import url(/css/v/jqui/publisher-default.css); with @import url(http://your/path/to/jqui.css);
  5. Further tweak mystyle-vars.less.
  6. Voila!

 

Putting It Online

To maintain backward compatibility with our existing Portals, the CSS URL you set through our V2 portal is being honored and used by our code to resolve the CSS (LESS in fact) URL in V3.

For example, if CSS URL is set as http://your/path/to/oldstyle.css, the existing V2 portal loads it via:

<link rel="stylesheet" type="text/css" href="http://your/path/to/oldstyle.css" />

And the V3 portal loads it via:

<link rel="stylesheet/less" type="text/css" href="http://your/path/to/oldstyle-3.less" />

All you need to do is to ensure that mystyle.less is available as oldstyle-3.less.

This mechanism will be replaced in near future.

 

Advanced Styling

LESS is not error tolerant, if a variable or mixin referred by standard.less is missing, the UI will be broken. For this reason, standard-vars.less exists in the @import as a safeguard for Aflexi to define future variables. We do not recommend you to style elements separately from what we are controlling in standard.less, unless you are familiar with the technologies and you are ready to keep up to date to our UI changes (such as new IDs and classes that we may not announce publicly).

Refer to the line with more.less in your mystyle.less.

Syndicate content