PDA

View Full Version : apnscp esprit FAQ and Ideas Thread


Matt
06-23-2005, 05:39 PM
1) What is apnscp esprit?
apnscp esprit is the codename for the next generation apnscp, which is an acronym for "Apis Networks Control Panel". It's a proprietary control panel unique to Apis Networks that originally began as a Tcl/PHP framework, but is now being migrated strictly to PHP5 along with total modularity.

2) When is it expected to be released?
Prospectively, I'm gauging a late Q3 release, but the official statement is Q4 to ensure it passes through QA testing, has enough features to differentiate and dominate other hosting control panels, and warrants the nickname "esprit".

3) What's so great between apnscp and apnscp esprit?
apnscp was put together a little too hastily to meet my satisfaction of a "good" control panel. There's limited modularity, the Tcl-based backend is limited by its minute extensions, session verification between the front-end and back-end relies on a potentially error-prone lock file, and the functions are limited.

apnscp esprit aims to revolutionize the notion of a control panel by expanding its reach to more advanced features that a hosting account can exploit, but is rarely done because of lack of information. For example, access control lists ("ACLs") are a powerful way of permitting file access to users in the "other" permissions context, without sacrificing file access to everyone in the "other" context. Most people are unaware of this feature and it is rarely requested. Think of being able to add a new subuser to your control panel, then from there, granting your primary user access to the subuser's directory for file modifications. This is particularly useful if you're setting up a forums subdomain and would like to install it inside /home/forums/public_html/ without having to login as that user, then immediately switch over to say /home/someothersubdomain/public_html/ all in one fell swoop, without having to remember the individual login/password combinations for the users "forums" and "someothersubdomain". An ACL can permit this, but it is never seen as a control panel feature.

It doesn't just stop at ACLs though thanks to the new backbone of apnscp esprit. Every module has privileged commands that can be executed by a particular user of a particular privilege level. It's a simple operation of "write your function", "assign the privilege levels", "export it (make it an exposed function) to users", "tie the calls into a page", "let the user access the page".

Additionally frames will hopefully be removed in favor of a quick menu in the title bar of the control panel. That is still pending on whether the native Ensim pages can be successfully integrated into apnscp esprit without a high overhead.

4) Are there any demos yet for apnscp esprit?
There are no live demonstrations at this time; however though, once apnscp esprit begins maturing into alpha quality, there will be a live demonstration updated nightly probably at http://betacp.apisnetworks.com/ or some other location.

5) Is there going to be an API to access commands?
It wouldn't quite be clever if there were no API for apnscp esprit. There will be a SOAP-based API for sending requests available to everyone with an account. Anything that the control panel can do in terms of gathering and storing data for your domain will also be accessible through a SOAP call. Tentatively, there may be a native PHP5 API as well, the jury is still out on that one though. Hooking the SOAP transformation into apnscp esprit is still a couple months away though and will probably happen last.

6) Where is the documentation for using the commands?
Documentation will be released once the alpha is publically released.

7) Do you have any pre-development screenshots to look at?
I certainly do:
http://apisnetworks.com/images/esprit/dhtml/1.png (http://apisnetworks.com/images/esprit/concepts/concept-20050725.png)
This was taken back on June 16th and is considered a concept at this point. The design may (and probably will change) based upon user feedback of its usability and aesthetics.

8) Tenative module listings:
If you want a say in what apnscp esprit will offer and to what extent it will offer the functionality, please read this. The following provides a quick overview of what's going into apnscp and what each module will encompass:
Site Module:
Overview: This will provide non-service specific functionality to site administrators -- or the main user of an account in other words. Examples would include fetching enabled services, getting bandwidth/disk space quota, and so on.

User Module:
Overview: This will provide common non-service specific functionality to user administrators -- or a subuser of an account. Common operations would include getting enabled services, listing domain preview, and fetching disk quota usage.

Common Module:
Overview: This will provide common non-service specific functionality available to more than one class of users (possible roles: site, user, admin, reseller). Examples of this would include fetching load average, server uptime, checking service status, retrieving the e-mail address attached to an account (site and user only), returning the Perl binary location, MySQL version, and so on.

DNS Module:
Overview: Provides DNS operations such as adding a new record to your zone, modifying a record, and removing a record.

Mail Module:
Overview: May possibly house SpamAssassin-related functionality, but will certainly be responsible for adding a new e-mail alias, listing e-mail aliases, and so on.

ACL Module:
Overview: Permits assigning arbitrary permissions for users within your subdomain and the special user apache (Web server username), without opening file access to everyone of a group or everyone in general.

Stats Module:
Overview: It just wouldn't be an Apis Networks control panel without some statistics. Generally speaking, this will at the very least, provide confidence interval generations and averages/standard deviations.

Graph Module:
Overview: Potentially this may exist to aid in creation of graphs, I don't know whether graph generation will be strictly embedded within apnscp esprit as a function or as an open module. If it is a module open to everyone, it would generate a graph from the data and return the binary data from the image creation.

File Manager Module (suggested by chwilliam):
Overview: A replacement file manager for Ensim; this would be accessible to both the primary user ("Site Administrator") and sub-users ("User Administrator") of an account. Potential ideas for it, other than the stock features provided by Ensim, would be to include a text box for the user to plug in a directory to browse to instead of tediously clicking on each directory within a given path.

Crontab Module:
Overview: Originally everything site administrator-related was going to be crammed into the "site" module, but that proved to be an awful idea. Instead, things are getting further spread out to save on speed; enter the crontab module. This module facilitates adding, removing, and listing cronjobs for a user's account.

Billing Module:
Overview: This will pull up prior payment entries, permit credit card information changes, account billing changes, and house referral data. Of course that implies PayPal is getting axed, which in case you were curious, it is. The new credit card processor decision hasn't been finalized yet, but we're moving to one with API access. Of course for those still on PayPal, there will be a discount applied to your hosting charge if you switch out of PayPal to the new billing processor. More to come once esprit's beta is done.

CRM Module:
Overview: A generic name for trouble ticket methods. Right now it solely contains methods relevant to handling trouble ticket filing.

SQL Module:
Overview: Create and delete MySQL/PostgreSQL databases, add new users with limited permissions to databases you own, and also handle recovery of the MySQL/PostgreSQL password for use with logging into phpMyAdmin/phpPgAdmin. That's going to be encrypted via your account password, so even if the database were compromised, no one will know the MySQL/PostgreSQL password to your account without knowing your password.

Monitor Module:
Overview: Used in conjunction with EWNS (Early Warning Notification System). EWNS is designed right now around monitoring disk usage, bandwidth usage, domain expiration, and billing delinquencies.

Auth Module:
Overview: Handles password changes and password confirmations.

Backup Module:
Overview: Backup/restore functionality.

Demo Module:
Overview: Really this serves no other purpose than to test SOAP calls. It can return either a scalar, array, or exception depending on what you call.



10) Is that all the modules?
Hopefully not. This is where everyone else comes in. apnscp esprit won't be a definitive, ground-breaking control panel without your assistance. The general idea of this thread is to cultivate ideas; it doesn't matter how abstract your concept is, if it's a good idea and isn't entirely too cryptic/time consuming to implement, then it will make its way to apnscp esprit. If your idea does happen to be rejected, it's for the better, but don't let that dissuade you.

We're looking for ideas and freshminds, this is going to be your new control panel, so help craft it to fit your desires.

chwilliam
07-14-2005, 08:36 PM
One thing I'd like to see is a more accesable file browser. I use the online file brower to make small adjustments while I am away from my main computer. There is no way to jump to a certain folder, or the root directory. It can be tedious to try and get to / by going up folder by folder.

Matt
07-14-2005, 11:37 PM
One thing I'd like to see is a more accesable file browser. I use the online file brower to make small adjustments while I am away from my main computer. There is no way to jump to a certain folder, or the root directory. It can be tedious to try and get to / by going up folder by folder.

While I like your idea, there's one complication -- permuting through the directory options and categorizing in an easy-to-use list every time a directory is changed. It's possible to cache the directories available within your filesystem and add/remove directories as they're created or removed, but the drop down list would be a little cluttered, plus the overhead of finding all directories would be significant. There's going to be at least 2500 directories in a user's filesystem on average and that would not render well at all.

Here's an option though: what about if I throw in a text box for you to plug in your own directory? From there, you can hit enter and it would request a new page and bring up that directory as the current working directory for the file manager.

I'll have to produce an in-house version of the file manager and remove Ensim's built-in one for this to work out, so while we're on the topic, are there any other criticisms of the existing file manager you would like to see changed or added?

chwilliam
07-15-2005, 12:43 PM
The text box is more along the lines of what I was thinking about, but, if you can get it done more quickly, I'd at least like the ability to jump straight to the root folder.

Matt
07-15-2005, 05:27 PM
The text box is more along the lines of what I was thinking about, but, if you can get it done more quickly, I'd at least like the ability to jump straight to the root folder.
All right, so in addition to the textbox where a user can plug in the directory to change to, you would like to include a drop-down list of commonly referred to directories, like /var/www/html/, /var/log/httpd/, /home/USERNAME/, and /home/USERNAME/public_html/ where applicable, correct?

chwilliam
07-16-2005, 11:49 AM
Yeah. That sounds perfect.

Matt
07-19-2005, 10:50 PM
Another idea that has been given would be a compressed folder-style view as we see in Windows Explorer, that is to say, the ability to descend into a compressed archive and extract the files/view the files. That's another idea to add into the file manager.

Right now I'm working on integrating the PHP Layers Menu System (http://phplayersmenu.sourceforge.net/) into the main page and virtual Ensim containers. Once that's done, Prado (http://www.xisc.com/) will be used to generate a generic PHP-based framework for all the non-Ensim components for apnscp esprit. As soon as I get that setup, then I can start working on crafting the individual modules, including the file manager portion and I'll let you know on a beta of it as soon as I can churn it out.

Matt
09-24-2005, 07:22 PM
All right I'm at the crossroads for the new trouble ticket system. Either I can go with the classic site administrator -> administrator trouble ticket escalation or I can add a feature where sub-users ("user administrators") file tickets that the site administrators tackle.

What do you think about adding that, too much of a hassle or unnecessary? There won't be an option to escalate the ticket directly to the administrator since sub-user liability exists solely with the site administrator.

Also, ticket responses are now displayed inline, linearly. This means instead of seeing:


Administrator Responses:
9/24/2005 at 6:18 PM: Some stuff
9/24/2005 at 6:30 PM: Some more stuff
9/24/2005 at 7:00 PM: Waiting on confirmation

Your Text:
9/24/2005 at 6:10 PM: Stuff
9/24/2005 at 6:25 PM: More stuff
9/24/2005 at 6:50 PM: Again some more stuff


it is now ordered and displayed as such:

Trouble ticket data:
U: 9/24/2005 at 6:10 PM: Stuff
A: 9/24/2005 at 6:18 PM: Some stuff
U: 9/24/2005 at 6:25 PM: More stuff
A: 9/24/2005 at 6:30 PM: Some more stuff
U: 9/24/2005 at 6:50 PM: Again some more stuff
A: 9/24/2005 at 7:00 PM: Waiting on confirmation

to make it a bit easier to discern which party typed the response out, they will be color coded, probably red and blue.

Full-text searches will be included to the new interface as well, for you habitual trouble ticket filers.

I'll get a new pre-alpha of esprit pushed out probably later tomorrow once the new trouble ticket provision is completed and the one-click passthroughs for phpMyAdmin, phpPgAdmin, Urchin, Horde, and SquirrelMail are added.

Matt
10-06-2005, 01:57 AM
Well the next pre-alpha release will come out as soon as the one-click logins are set up properly, which at this point looks like I'm going to need to do a bit of modifications to how Horde handles authentication tokens.

The snag I've hit is how Horde handles authentication, two things I could do, either include the login/password in the URL, which may pose a security risk in a public terminal or go with passing the session identifier off to the URL. The latter is what I'm aiming for and Horde isn't playing nice with it either. If I turn cookies off in the browser and access Horde with the session id generated from the cURL simulation, it works fine. Turn cookies back on, access, and bam. Apparently the precedence of it is cookies -> post -> get ? for picking up the session, but if the browser is capable of cookies, doesn't have it, then the entire session is invalidated, even the one setup earlier.

Matters only get worse once you compound the size of the codebase involved with Horde, but I'll have to do some more investigating and toying around to get it working correctly.

That's all for now.

Matt
11-24-2005, 01:59 PM
The text box is more along the lines of what I was thinking about, but, if you can get it done more quickly, I'd at least like the ability to jump straight to the root folder.

New apnscp esprit released today with the brand spanking new file manager. It is written from scratch designed to emulate Ensim's file manager (what you currently see on the server in apnscp). There probably will be some bugs; hopefully none that are critical, but in the event you do crash it, file a trouble ticket to get it brought back up.

I took your idea into consideration and added a quick link bar at the top of the file manager. Instead of going with the textbox, I used a dropdown with common paths within the filesystem. The only problem that I could see with the freeform textbox input is that a fair bit of people wouldn't know their home directory, document root, et cetera. This simplifies it a bit while still retaining commonly accessed paths. Let me know if this is satisfactory in your opinion or if I should tweak it a bit.

Compressed file support was also added; you can now extract zip, gzip, and bzip files from within the control panel to anywhere in the filesystem. This should help immensely for those with slower connections.

Lastly basic ACL read support was added to the file properties screen.

You can access the pre-alpha of apnscp esprit by visiting your current control panel (typically http://yourdomain.com/cpadmin/) and clicking on today's news article with your localized link to esprit.

Give it a whirl and let me know what you think.

dkozinn
11-25-2005, 01:32 PM
Matt,

I was playing around a little with the beta and found that there are a bunch of pages missing. Do you want those reported as errors (via the trouble ticket system) or should we just assume you know that stuff is missing?

Matt
11-25-2005, 01:41 PM
Matt,

I was playing around a little with the beta and found that there are a bunch of pages missing. Do you want those reported as errors (via the trouble ticket system) or should we just assume you know that stuff is missing?

A lot of those represent "pending features" and are not bugs. The basic idea is put the pages out there to let everyone know what's coming and then when the time comes to implement those specific provisions, they'll work. Think of it as a rough draft in other words -- basic ideas are out there, but not all are fully supported.

The target release date is still near the end of this year.

Matt
02-25-2006, 03:06 AM
Unsticking this thread in favor of the Enhancements bug category for the esprit bugtracker (http://apnscp.com/bugtracker/). New threads with ideas are more than welcomed to spawn here, but if you want anything done, file a bug report ;). I'm forgetful.