FEATURE: Bulk Import CSV

In the latest release of BulletProof FTP Server, we’ve added the ability to import users via the “Bulk Import (CSV)” button, located in the User Manager. A CSV-File is a flat-text-file that contains a list of records (one per row) with a defined set of field-values for that record. This is analogous to a spreadsheet, such as Microsoft Excel and is often used as a method of getting data in/out of a spreadsheet.

To this end, we’ve developed a function that allows you to IMPORT user-accounts from another source, using a CSV file. Below is a list of fields that are supported for import. In this list, the first record you see is “ACCOUNTNAME”, this is a MANDATORY record as it is the unique-primary-key for the data. If ACCOUNTNAME exists, the data will be updated. If not, a new user-account will be created and all of the data will be set to the provided information. All other fields are optional, but each row in the CSV-file must contain the same fields as defined in the first header-record.

NOTE: Executing this functionality can be automated from the command-line utility “bpftpserver-adduser.exe”. Please see this HOWTO for more information.

EXAMPLE:
In the following example, we are defining a CSV file to import 11 new user-accounts (mmc000 to mmc010). Below you will find the first row contains the list of columns each row/record will contain; subsequent rows contain the data for the accounts. Please note, this is generic data and in this case, I choose to make a simple list of account-names that are prefixed with “mmc” and then use a 3-digit number. The intention is to show the power and flexibility; as each user-account can be assigned their own home-directory (c:\ftp\mmc999), groups, login-name, passwords, etc.

"AccountName","ACCESSRIGHTS_PACKED","Enabled","EnableLogin","Login","EnablePass","Pass","GroupName"
"mmc000","C:\ftp\mmc000;RWDAMLSK","1","1","mmc000","1","mmc000","mmc-group-0"
"mmc001","C:\ftp\mmc001;RWDAMLSK","1","1","mmc001","1","mmc001","mmc-group-0"
"mmc002","C:\ftp\mmc002;RWDAMLSK","1","1","mmc002","1","mmc002","mmc-group-0"
"mmc003","C:\ftp\mmc003;RWDAMLSK","1","1","mmc003","1","mmc003","mmc-group-0"
"mmc004","C:\ftp\mmc004;RWDAMLSK","1","1","mmc004","1","mmc004","mmc-group-0"
"mmc005","C:\ftp\mmc005;RWDAMLSK","1","1","mmc005","1","mmc005","mmc-group-0"
"mmc006","C:\ftp\mmc006;RWDAMLSK","1","1","mmc006","1","mmc006","mmc-group-0"
"mmc007","C:\ftp\mmc007;RWDAMLSK","1","1","mmc007","1","mmc007","mmc-group-0"
"mmc008","C:\ftp\mmc008;RWDAMLSK","1","1","mmc008","1","mmc008","mmc-group-0"
"mmc009","C:\ftp\mmc009;RWDAMLSK","1","1","mmc009","1","mmc009","mmc-group-0"
"mmc010","C:\ftp\mmc010;RWDAMLSK","1","1","mmc010","1","mmc010","mmc-group-0"

SUPPORTED FIELDS AVAILABLE TO BULK-IMPORT

Commonly Used Fields

FIELD_NAME FIELD_TYPE DEFAULT MANDATORY
ACCOUNTNAME STRING “” TRUE
AccessRights_Packed STRING “”
Enabled BOOLEAN True
EnableLogin BOOLEAN True
Login STRING “”
EnablePass BOOLEAN True
Pass STRING “”
EnableGroup BOOLEAN False
GroupName STRING “”
UseGroupHomeDir BOOLEAN False

Lesser Lesser Used Fields

FIELD_NAME FIELD_TYPE DEFAULT MANDATORY
AddHomeLink BOOLEAN False
AddLinkFromFile BOOLEAN False
AddLinks BOOLEAN False
AllowChangePassword BOOLEAN False
AllowNoop BOOLEAN True
BannedFiles_PACKED STRING “”
By-Pass_MaxUser BOOLEAN False
ChgDirMsgFile STRING “”
DefaultGroupQuotaCredit INTEGER -1
DefaultGroupRatioCredit INTEGER -1
EnableMaxConPerIP BOOLEAN False
EnableMaxUsers BOOLEAN False
EnableSITECHAT BOOLEAN False
EnableSITEWHO BOOLEAN False
Hide hidden Files BOOLEAN False
Home-IP STRING “”
IPACLList_PACKED STRING “”
Info_Address STRING “”
Info_City STRING “”
Info_Email STRING “”
Info_Fax STRING “”
Info_Name STRING “”
Info_Notes STRING “”
Info_PhoneHome STRING “”
Info_PhoneWork STRING “”
LinksFile STRING “”
LoginMsgFile STRING “”
MaxConPerIP INTEGER 1
MaxSpeedEnabled BOOLEAN False
MaxSpeedRcv INTEGER 512
MaxSpeedSnd INTEGER 512
MaxUsers INTEGER 0
QuotaCurrent INTEGER 0
QuotaEnabled BOOLEAN False
QuotaMax INTEGER 0
RatioCredit INTEGER 0
RatioDown INTEGER 1
RatioEnabled BOOLEAN False
RatioMethod INTEGER 0
RatioUp INTEGER 1
RelativePath BOOLEAN False
ResolveLNK BOOLEAN True
ShowChangeDirMsg BOOLEAN False
ShowLoginMsg BOOLEAN False
TimeOutEnabled BOOLEAN True
Timeout INTEGER 600
TreatLinksAs BOOLEAN True