slightly more up-to-date docs
authorivan <ivan>
Tue, 26 Oct 2004 12:33:39 +0000 (12:33 +0000)
committerivan <ivan>
Tue, 26 Oct 2004 12:33:39 +0000 (12:33 +0000)
ANNOUNCE.1.5.0
httemplate/docs/billing.html
httemplate/docs/export.html
httemplate/docs/index.html
httemplate/docs/overview-new.dia [new file with mode: 0644]
httemplate/docs/overview-new.png [new file with mode: 0644]
httemplate/docs/schema.html
httemplate/docs/selfservice.html [new file with mode: 0644]

index d9968dc..46204b8 100644 (file)
@@ -16,6 +16,7 @@
 - modular price plans, rewrote package add/edit page
 - fixed up tax report - should be correct for all edge cases with named taxes,
   tax classes, etc.
+- some documentation updates
 
 1.5.0pre7:
 - historical late notice viewing in web interface
index 1d6f8c4..78e2501 100644 (file)
@@ -4,12 +4,18 @@
 <body>
   <h1>Billing</h1>
   <ul>
+    <li>Add one or more <a href="../browse/part_bill_event.cgi">Invoice events</a> implmenting your business rules for re-sending invoices, retrying cards, suspending, etc.
     <li>You can bill individual customers by clicking on the <i>Bill now</i> link on the main customer view.
     <li>The <a href="man/bin/freeside-daily.html"><b>freeside-daily</b></a> script should be run daily to bill customers and run invoice collection events.
     <li>Real-time credit card processing: Install the <a href="http://search.cpan.org/search?mode=module&query=Business%3A%3AOnlinePayment">Business::OnlinePayment</a> module for your processor.  Configure the <a href="../config/config-view.cgi#business-onlinepayment">business-onlinepayment</a> configuration option.  Disable the default <b>Batch card</b> <a href="../browse/part_bill_event.cgi">invoice event</a> and add one for Business::OnlinePayment.
     <li>Optional: Credit card expiration alerts: Customize <a href="../config/config.cgi#alerter_template">alerter_template</a> configuration option and run <a href="man/bin/freeside-expiration-alerter.html">freeside-expiration-alerter</a> daily.
     <li>Credit card decline alerts: Customize the <a href="../config/config.cgi#declinetemplate">declinetemplate</a> configuration option and set the <a href="../config/config.cgi#emaildecline">emaildecline</a> configuration option.
-    <li>Optional: Invoice template customization
+    <li>Typeset (LaTeX) invoice templates
+      <ul>
+        <li>Place your logo in EPS (Encapsulated PostScript) format at <code>/usr/local/etc/freeside/conf.<i>your_datasrc</i>/logo.eps</code>.
+        <li>Edit the <b>invoice_latexfooter</b>, <b>invoice_latexnotes</b>, and <b>invoice_latexsmallfooter</b> configuration files.  If you are adventurous, edit <b>invoice_latex</b> as well.
+      </ul>
+    <li>Plaintext invoice templates
       <ul>
         <li>See the <a href="http://search.cpan.org/~mjd/Text-Template/lib/Text/Template.pm">Text::Template</a> documentation for details on the substitution language.
         <li>You <b>must</b> call the invoice_lines() function at least once - pass it a number of lines, and it returns a list of array references, each of two elements: a service description column, and a price column.  Alternatively, call invoice_lines() with no arguments, and pagination will be disabled - all invoice line items will print on one page, with no padding (recommended for email invoices).
@@ -23,7 +29,7 @@
 <!--            <li>$overdue - true if this invoice is overdue -->
           </ul>
       </ul>
-    <li>Batch credit card processing
+<!--    <li>Batch credit card processing
       <ul>
         <li>After <a href="man/bin/freeside-daily.html"><b>freeside-daily</b></a> is run, a credit card batch will be in the <a href="schema.html#cust_pay_batch">cust_pay_batch</a> table.  Export this table to your credit card batching.
         <li>When your batch completes, erase the cust_pay_batch records in that batch and add any necessary paymants to the <a href="schema.html#cust_pay">cust_pay</a> table.  Example code to add payments is:
index 71e3acf..c6c6abd 100755 (executable)
@@ -1,55 +1,19 @@
 <head>
-  <title>File exporting</title>
+  <title>Exports</title>
 </head>
 <body>
-  <h1>File exporting</h1>
-  <font size="+2">NOTE: This file is OUT OF DATE with the landing of the new export code and is only here for reference.  DO NOT follow these instructions.  Instead use the new exports in the web interface.</font>
-  <ul>
-    <li>bin/svc_acct.export will create UNIX <b>passwd</b>, <b>shadow</b> and <b>master.passwd</b> files, ERPCD <b>acp_passwd</b> and <b>acp_dialup</b> files and a RADIUS <b>users</b> file in the <b>/usr/local/etc/freeside/export.<i>datasrc</i></b> directory.  Some RADIUS servers (such as <a href="http://www.open.com.au/radiator/">Radiator</a>, <a href="ftp://ftp.cheapnet.net/pub/icradius/">ICRADIUS</a> and <a href="http://www.freeradius.org/">FreeRADIUS</a>) will authenticate directly out of an SQL database.  In these cases,
-it is reccommended that you replicate (<a href="http://www.mysql.com/documentation/mysql/bychapter/manual_MySQL_Database_Administration.html#Replication">Replication in MySQL</a>) the data to an external RADIUS machine or point icradius_secrets to the external machine rather than running the RADIUS server on your Freeside machine.  Using the appropriate <a href="../config/config-view.cgi">configuration settings</a>, you can export these files to your remote machines unattended:
-      <ul>
-        <li>shellmachines - <b>passwd</b> and <b>shadow</b> are copied to the remote machine as <b>/etc/passwd.new</b> and <b>/etc/shadow.new</b> and then moved to <b>/etc/passwd</b> and <b>/etc/shadow</b> if no errors occur.
-        <li>bsdshellmachines - <b>passwd</b> and <b>master.passwd</b> are copied to the remote machine as <b>/etc/passwd.new</b> and <b>/etc/master.passwd.new</b> and moved to <b>/etc/passwd</b> and <b>/etc/master.passwd</b> if no errors occur.
-        <li>nismachines - <b>passwd</b> and <b>shadow</b> are copied to the <b>/etc/global</b> directory on the remote machine.  If no errors occur, the command <b>( cd /var/yp; make; )</b> is executed on the remote machine.
-        <li>erpcdmachines - <b>acp_passwd</b> and <b>acp_dialup</b> are copied to the <b>/usr/annex</b> directory on the remote machine.  If no errors occur, the command <b>( kill -USR1 `cat /usr/annex/erpcd.pid` )</b> is executed on the remote machine. 
-        <li>radiusmachines - <b>users</b> is copied to the <b>/etc/raddb</b> directory on the remote machine.  If no errors occur, the command <b>( builddbm )</b> is executed on the remote machine.
-        <li>icradiusmachines - Turn this option on to enable radcheck table population - by default in the Freeside database, or in the database specified by the <a href="http://rootwood.haze.st/aspside/config/config-view.cgi#icradius_secrets">icradius_secrets</a> config option (the radcheck table needs to be created manually).  You do not need to use MySQL for your Freeside database to export to an ICRADIUS/FreeRADIUS MySQL database with this option.  <blockquote><b>ADDITIONAL DEPRECATED FUNCTIONALITY</b> (instead use <a href="http://www.mysql.com/documentation/mysql/bychapter/manual_MySQL_Database_Administration.html#Replication">MySQL replication</a> or point icradius_secrets to the external database) - your <a href="ftp://ftp.cheapnet.net/pub/icradius">ICRADIUS</a> machines or <a href="http://www.freeradius.org/">FreeRADIUS</a> (with MySQL authentication) machines, one per line.  Machines listed in this file will have the radcheck table exported to them.  Each line should contain four items, separted by whitespace: machine name, MySQL database name, MySQL username, and MySQL password.  For example: <CODE>"radius.isp.tld&nbsp;radius_db&nbsp;radius_user&nbsp;passw0rd"</CODE></blockquote>
-      </ul>
-    <li>svc_acct.pm - If a shellmachine is defined, users can be created, modified and deleted remotely; see below.
-      <ul>
-        <li>Account creation - If the <b>username</b>, <b>uid</b> and <b>dir</b> fields are defined for a new user, the command(s) specified in the <a href="../config/config-view.cgi#shellmachine-useradd">shellmachine-useradd</a> configuration file are executed on shellmachine via ssh.  If this file does not exist, <code>useradd -d $dir -m -s $shell -u $uid $username</code> is the default.  If the file exists but is empty, <code>cp -pr /etc/skel $dir; chown -R $uid.$gid $dir</code> is the default instead.  Otherwise the contents of the file are treated as a double-quoted perl string, with the following variables available: <code>$username</code>, <code>$uid</code>, <code>$gid</code>, <code>$dir</code>, and <code>$shell</code>.
-        <li>Account deletion - The command(s) specified in the <a href="../config/config-view.cgi#shellmachine-userdel">shellmachine-userdel</a> configuration file are executed on shellmachine via ssh.  If this file does not exist, <code>userdel $username</code> is the default.  If the file exists but is empty, <code>rm -rf $dir</code> is the default instead.  Otherwise the contents of the file are treated as a double-quoted perl string, with the following variables available: <code>$username</code> and <code>$dir</code>.
-        <li>Account modification - If a user's home directory changes, the command(s) specified in the <a href="../config/config-view.cgi#shellmachine-usermod">shellmachine-usermod</a> configuration file are execute on shellmachine via ssh.  If this file does not exist or is empty, <code>[ -d $old_dir ] &amp;&amp; mv $old_dir $new_dir || ( chmod u+t $old_dir; mkdir $new_dir; cd $old_dir; find . -depth -print | cpio -pdm $new_dir; chmod u-t $new_dir; chown -R $uid.$gid $new_dir; rm -rf $old_dir )</code> is the default.  Otherwise the contents of the file are treated as a double-quoted perl string, with the following variables available: <code>$old_dir</code>, <code>$new_dir</code>, <code>$uid</code> and <code>$gid</code>.
-      </ul>
-    <li>svc_acct.pm - <a href="http://asg.web.cmu.edu/cyrus/imapd/">Cyrus IMAP Server</a> integration, enabled by the <a href="../config/config-view.cgi#cyrus">cyrus configuration file</a>
-      <ul>
-        <li>Account creation - (Cyrus::IMAP::Admin should be installed locally)
-        <li>Account deletion - (Cyrus::IMAP::Admin should be installed locally)
-        <li>Account modification - (not yet implemented)
-      </ul>
-    <li>bin/svc_acct_sm.export will create <a href="http://www.qmail.org">Qmail</a> <b>rcpthosts</b>, <b>recipientmap</b> and <b>virtualdomains</b> files and <a href="http://www.sendmail.org">Sendmail</a> <b>virtusertable</b> and <b>sendmail.cw</b> files in the <b>/usr/local/etc/freeside/export.<i>datasrc</i></b> directory.  Using the appropriate <a href="../config/config-view.cgi">configuration files</a>, you can export these files to your remote machines unattemded:
-      <ul>
-        <li>qmailmachines - <b>recipientmap</b>, <b>virtualdomains</b> and <b>rcpthosts</b> are copied to the <b>/var/qmail/control</b> directory on the remote machine.  Note: If you <a href="legacy.html#svc_acct_sm">imported</a> qmail configuration files, run the generated <b>/usr/local/etc/freeside/export.<i>datasrc</i>/virtualdomains.FIX</b> on a machine with your user home directories before exporting qmail configuration files.
-        <li>shellmachine - The command <b>[ -e <i>homedir</i>/.qmail-default ] || { touch <i>homedir</i>/.qmail-default; chown <i>uid</i>.<i>gid</i> <i>homedir</i>/.qmail-default; }</b> will be run on this machine for users in the virtualdomains file.
-        <li>sendmailmachines - <b>sendmail.cw</b> and <b>virtusertable</b> are copied to the remote machine as <b>/etc/sendmail.cw.new</b> and <b>/etc/virtusertable.new</b>.  If no errors occur, they are moved to <b>/etc/sendmail.cw</b> and <b>/etc/virtusertable</b> and the command specified in the <a href="../config/config-view.cgi#sendmailrestart">sendmailrestart</a> configuration file is executed.  (The path can be changed from the default <b>/etc</b> with the <a href="../config/config-view.cgi#sendmailconfigpath">sendmailconfigpath</a> configuration file.)
-      </ul>
-    <li>svc_domain.pm - If the qmailmachines configuration file exists and a shellmachine is defined, user <b>.qmail-</b> files can be updated for catchall mailboxes.
-      <ul>
-        <li>The command <pre>[ -e <i>homedir</i>/.qmail-<i>domain</i>-default ] || {
-    touch <i>homedir</i>/.qmail-<i>domain</i>-default;
-    chown <i>uid</i>.<i>gid</i> <i>homedir</i>/.qmail-<i>domain</i>-default;
-}</pre> is run.
-      </ul>
-    <li>svc_forward.pm - Not yet documented; see manpage.
-    <li>svc_www.pm - Not yet documented; see manpage.
-  </ul>
-  <br><a name=ssh>Unattended remote login</a> - Freeside can login to remote machines unattended using SSH.  This can pose a security risk if not configured correctly, and will allow an intruder who breaks into your freeside machine full access to your remote machines.  <b>Do not use this feature unless you understand what you are doing!</b>
-    <ul>
-      <li>As the freeside user (on your freeside machine), generate an authentication key using <a href="http://www.tac.eu.org/cgi-bin/man-cgi?ssh-keygen+1">ssh-keygen</a>.  Since this is for unattended operation, use a blank passphrase.
-      <li>Append the newly-created <code>identity.pub</code> file to <code>~root/.ssh/authorized_keys</code> on the remote machine(s).
-      <li>Some new SSH v2 implementation accept v2 style keys only.  Use the <code>-t</code> option to <a href="http://www.tac.eu.org/cgi-bin/man-cgi?ssh-keygen+1">ssh-keygen</a>, and append the created <code>id_dsa.pub</code> or <code>id_rsa.pub</code> to <code>~root/.ssh/authorized_keys2</code> on the remote machine(s).
-      <li>You may need to set <code>PermitRootLogin without-password</code> (meaning with keys only) in your <code>sshd_config</code> file on the remote machine(s).
-    </ul>
+  <h1>Exports</h1>
+  <p>Exports allow you to provision services to remote machines, databases and
+  APIs.  Some exports, such as <b>sqlradius</b> and
+  <b>sqlradius_withdomain</b>, enable a feed for retreiving rating/usage data.
+  <p>Exports can be added and edited under
+     <a href="../browse/part_export.cgi"><i>Sysadmin | View/Edit Exports</i></a>.
+  <p>Selecting an export on the
+     <a href="../edit/part_export.cgi"><i>Sysadmin | View/Edit Exports | Add a new export</i></a> page will
+     show more information on that specific export, including available
+     options, setup and usage.
+  <p>Exports are activated by associating them with one or more service
+     definitions: <a href="../browse/part_svc.cgi"><i>Sysadmin | View/Edit Service definitions<i></a>.
 
 </body>
 
index 648cb98..d0151ed 100644 (file)
@@ -1,9 +1,10 @@
 <head>
-  <title>Documentation</title>
+  <title>Freeside Documentation</title>
 </head>
 <body bgcolor="#ffffff">
-  <h1>Documentation</h1>
-<img src="overview.png">
+  <h1>Freeside Documentation</h1>
+<img src="overview-new.png">
+<h3>Installation and upgrades</h3>
 <ul>
   <li><a href="install.html">New Installation</a>
   <li><a href="upgrade7.html">Upgrading from 1.3.0 to 1.3.1</a>
@@ -11,6 +12,9 @@
   <li><a href="upgrade9.html">Upgrading from 1.4.0 to 1.4.1</a>
   <li><a href="upgrade-1.4.2.html">Upgrading from 1.4.1 to 1.4.2</a>
   <li><a href="upgrade10.html">Upgrading from 1.4.1 (or 1.4.2?) to 1.5.0</a>
+</ul>
+<h3>Configuration and setup</h3>
+<ul>
 <!--
   <li><a href="config.html">Configuration files</a>
 !-->
 <!--
   <li><a href="../index.html#admin">Administration</a>
 !-->
-  <li><a href="legacy.html">Importing legacy data</a>
-  <li><a href="export.html">File exporting and remote setup</a>
-  <li><a href="passwd.html">fs_passwd</a>
-  <li><a href="signup.html">Signup server</a>
-  <li><a href="session.html">Session monitor</a>
+  <li><a href="export.html">Exports</a>
+  <li><a href="selfservice.html">Signup, self-service and reseller interfaces</a>
   <li><a href="billing.html">Billing</a>
+</ul>
+<h3>Developer</h3>
+<ul>
   <li><a href="schema.html">Schema reference</a>
   <li><a href="man/FS.html">Perl API</a>
+  <li><a href="legacy.html">Importing legacy data</a>
 </ul>
 </body>
diff --git a/httemplate/docs/overview-new.dia b/httemplate/docs/overview-new.dia
new file mode 100644 (file)
index 0000000..8995cd9
Binary files /dev/null and b/httemplate/docs/overview-new.dia differ
diff --git a/httemplate/docs/overview-new.png b/httemplate/docs/overview-new.png
new file mode 100644 (file)
index 0000000..bcae522
Binary files /dev/null and b/httemplate/docs/overview-new.png differ
index 85026c7..8523a4a 100644 (file)
@@ -3,7 +3,7 @@
 </head>
 <body>
   <h1>Schema reference</h1>
-  Schema diagram: <a href="schema.png">as a giant .png</a> or <a href="schema.dia">dia source</a> (<a href="http://www.lysator.liu.se/~alla/dia/">dia homepage</a>).
+  Schema diagram (1.4.1): <a href="schema.png">as a giant .png</a> or <a href="schema.dia">dia source</a> (<a href="http://www.lysator.liu.se/~alla/dia/">dia homepage</a>).
   <ul>
     <li><a name="agent" href="man/FS/agent.html">agent</a> - Agents are resellers of your service.  Agents may be limited to a subset of your full offerings (via their agent type).
       <ul>
diff --git a/httemplate/docs/selfservice.html b/httemplate/docs/selfservice.html
new file mode 100644 (file)
index 0000000..a4dc6aa
--- /dev/null
@@ -0,0 +1,60 @@
+<head>
+  <title>Signup, self-service and reseller interfaces</title>
+</head>
+<body>
+  <h1>Signup, self-service and reseller interfaces</h1>
+For security reasons, the self-service interface should run on a public
+machine, not the backend Freeside server.  On the public machine, install:
+<ul>
+  <li>A web server, such as <a href="http://www.apache.org">Apache</a> (<a href="http://www.modssl.org/">mod_ssl</a> or <a href="http://www.apache-ssl.org">Apache-SSL</a> highly recommended)
+
+  <li><a href="ftp://ftp.cs.hut.fi/pub/ssh/">SSH</a>
+  <li><a href="http://www.perl.com/CPAN/doc/relinfo/INSTALL.html">Perl</a>.
+  <li><a href="http://search.cpan.org/search?dist=Text-Template">Text::Template</a>
+  <li><a href="http://search.cpan.org/search?dist=Storable">Storable</a>
+  <li><a href="http://search.cpan.org/search?dist=Business-CreditCard">Business-CreditCard</a>
+  <li><a href="http://search.cpan.org/search?dist=HTTP-BrowserDetect">HTTP::BrowserDetect</a>
+
+  <li><a href="man/FS/SelfService.html">FS::SelfService</a> (copy the fs_selfservice/FS-SelfService directory to the external machine, then: perl Makefile.PL; make; make install)
+  <li><a href="man/FS/SignupClient.html">FS::SignupClient</a> (copy the fs_signup/FS-SignupClient directory to the external machine, then: perl Makefile.PL; make; make install)
+</ul>
+Then:
+<ul>
+  <li>Set the <a href="../config/config.cgi#unclassified"><i>signup_server-default_agentnum</i></a> configuration value to a default <a href="../browse/agent.cgi">agent number</a>.
+  <li>Set the <a href="../config/config.cgi#unclassified"><i>signup_server-default_refnum</i></a> to a default <a href="../browse/part_referral.cgi">advertising source</a>.
+  <li>Add the user `freeside' to the the external machine.
+  <li>Copy or symlink the <pre>fs_signup/FS-SelfService/cgi/</pre> directory into the web server's document space, for customer self-service and reseller access.  Optionally, customize the .html templates.
+  <li>Copy or symlink the <pre>fs_signup/FS-SignupClient/cgi/</pre> directory into the web server's document space, for signups. Optionally, customize the .html templates.
+  <li>When linking to signup.cgi, you can include a referring custnum in the URL as follows: <code>http://public.web.server/path/signup.cgi?ref=1542</code>
+  <li>Enable CGI execution for files with the `.cgi' extension.  (with <a href="http://www.apache.org/docs/mod/mod_mime.html#addhandler">Apache</a>)
+  <li>Create the /usr/local/freeside directory on the external machine (owned by the freeside user).
+  <li>touch /usr/local/freeside/fs_signupd_socket; chown freeside /usr/local/freeside/fs_signupd_socket; chmod 600 /usr/local/freeside/fs_signupd_socket
+  <li>Use <a href="http://www.apache.org/docs/suexec.html">suEXEC</a> or <a href="http://www.perl.com/CPAN-local/doc/manual/html/pod/perlsec.html#Security_Bugs">setuid</a> (see <a href="install.html">install.html</a> for details) to run signup.cgi, selfservice.cgi, agent.cgi and passwd.cgi as the freeside user.
+  <li>Append the identity.pub from the freeside user on your freeside machine to the authorized_keys file of the newly created freeside user on the external machine(s).
+  <li>Run an instance of <pre>freeside-selfservice-server <i>user</i> <i>machine</i> <i>agentnum</i> <i>refnum</i></pre> on the Freeside machine for each external machine.
+  <ul>
+    <li><i>user</i> is a user from the mapsecrets file.
+    <li><i>machine</i> is the name of the external machine.
+
+
+  </ul>
+</ul>
+Optional:
+<ul>
+  <li>If you create a <b>/usr/local/freeside/ieak.template</b> file on the external machine, it will be sent to IE users with MIME type <i>application/x-Internet-signup</i>.  This file will be processed with <a href="http://search.cpan.org/doc/MJD/Text-Template-1.23/Template.pm">Text::Template</a> with the variables listed below available.
+  (an example file is included as <b>fs_signup/ieak.template</b>)  See the section on <a href="http://www.microsoft.com/windows/ieak/techinfo/deploy/60/en/INS.HTM">internet settings files</a> in the <a href="http://www.microsoft.com/windows/ieak/techinfo/deploy/60/en/toc.asp">IEAK documentation</a> for more information.
+<!--  <li>If you create a <b>/usr/local/freeside/success.html</b> file on the external machine, it will be used as the success HTML page.  Although template substiutions are available, a regular HTML file will work fine here, unlike signup.html.  An example file is included as <b>fs_signup/FS-SignupClient/cgi/success.html</b>-->
+  <li>Variable substitutions available in <b>ieak.template</b> and <b>success.html</b>:
+    <ul>
+      <li>$ac - area code of selected POP
+      <li>$exch - exchange of selected POP
+      <li>$loc - local part of selected POP
+      <li>$username
+      <li>$password
+      <li>$email_name - first and last name
+      <li>$pkg - package name
+    </ul>
+<!--  <li>If you create a <b>/usr/local/freeside/signup.html</b> file on the external machine, it will be used as a template for the form HTML.  This requires the template to be constructed appropriately; probably best to start with the example file included as <b>fs_signup/FS-SignupClient/cgi/signup.html</b>. -->
+<!--  <li>If there are any entries in the <i>prepay_credit</i> table, a user can enter a string matching the <b>identifier</i> column to receive the credit specified in the <b>amount</b> column, and/or the time specified in the <b>seconds</b> column (for use with the <a href="session.html">session monitor</a>), after which that <b>identifier</b> is no longer valid.  This can be used to implement pre-paid "calling card" type signups.  The <i>bin/generate-prepay</i> script can be used to populate the <i>prepay_credit</i> table. -->
+</ul>
+</body>