For developers to have their transforms listed on the transform hub the following fields are required:

FieldWhat it MeansExample
* NameName of your transformsIMDB transforms
* Seed URLWhere the seed of your transforms are location (URL). You can optionally ask that this not be visible in the GUI as well. If this is not specified it will not be displayed.http://transf.moviesrus.com/seed.xml
* Description (short)A short description of your transforms.Query the Internet Movie Database
* Description (long)A longer description of your transforms.This set of transforms allows you to pivot from movie, director and actor.
ModifiedA Unix timestamp of when this entry was last modified474336000
* Icon (URL)A 48x48px PNG icon for your transforms.http://www.moviesrus.com/myicon.png
* Provider NameYou / your company name.MoviesRUs
* Provider websiteWhere users can read about you and your transforms.http://www.moviesrus.com/transforms/
*Provider emailWhere users can email you.transform_info@moviesrus.com
Provider phoneWhere users can phone you. Let's hope they don't.555-123-1234
Registration URLIf users need to register for the transforms this page should explains the process to them.http://www.moviesrus.com/transforms/register.php
Input FieldsIf you want to perform access control on your transforms (e.g. make it commercial) these are the fields you'll use in your transforms to identify users. Fields have the following properties:
  • Name - Variable name used
  • Display - The display name shown in the GUI
  • Type - The type of this input field, this can be set to one of the following: string (recommended), int, date, url
  • Optional - If this variable is required / optional, default is false
  • Auth - If this is an authentication field and should be *'d in the GUI, default is false
See example below
Pricing infoExplain to users how much your transforms cost (if at all).$0.01 per transform
Pricing websiteAt this website they'll pay / enter CC info.http://www.moviesrus.com/pricing.php

Note: * - required fields.

Example XML

Below is an example of transform hub XML, please note this is CaSe SeNsItIvE.

<Seed Pos="10" Display="Commercial TAS v3">
    <Url Visible="true">https://alpine.paterva.com/CTAS31.xml</Url> <!--visible is optional, default "false"--> 
    <Description>This is a short description.</Description> 
    <Details>This can be a very very very very very long description. This can be a very very very very very long description.</Details> 
    <Modified>1417531063521</Modified> <!-- unix time --> 
    <Icon><!-- 48x48px png--> 
        <Url>https://www.paterva.com/web7/images/menu/menu5.png</Url> 
    </Icon>
    <Provider>
        <Name>Paterva</Name>
        <Website>www.paterva.com</Website>
        <Email>support@paterva.com</Email>
        <Phone>+27 555 5555</Phone> 
    </Provider>
    <Registration>
        <Website>http://register.paterva.com</Website>
    </Registration>
    <Pricing>
        <Info>$1 per transform or $100 per month unlimited transforms.</Info>
        <Website>https://pay.paterva.com</Website>
    </Pricing>
    <Inputs> 
        <!-- Examples... --> 
        <Input Name="api-key" Display="API Key" Type="string" Optional="true" Auth="true"/>
        <Input Name="username" Display="User Name" Type="string" Auth="true"/> <!-- default for Optional and Auth is "false" --> 
        <Input Name="password" Display="Password" Type="string" Auth="true"/> 
        <Input Name="service-url" Display="Main Blah URL" Type="url" Optional="true" DefaultValue="http://some.service.com/blah"/> 
        <Input Name="from" Display="Start Date" Type="date" Optional="true" DefaultValue="1999-04-22"/> 
        <Input Name="netblockSize" Display="Netblock Size" Type="string" Optional="false" DefaultValue="10"/> 
    </Inputs> 
</Seed>

600 error messages

If your transform returns the following XML it will result in the Maltego client popping up an useful error message prompting the user to fill out the fields marked as 'Auth' (as defined in the transform hub item).

An example of this can be seen below:

<maltegomessage>
  <maltegotransformexceptionmessage>
     <exceptions>
        <exception code="600">Your error message such as API key required</exception>
     </exceptions>
  </maltegotransformexceptionmessage>
</maltegomessage>