Difference between revisions of "ACF Libraries"

From Alpine Linux
Jump to: navigation, search
(Reorganized into generic and ACF-specific libraries)
Line 5: Line 5:
 
We are also using as a standard the lposix library which is documented here [[LPOSIX]]
 
We are also using as a standard the lposix library which is documented here [[LPOSIX]]
  
 +
== Generic Libraries (acf-lib) ==
  
==[[apk.lua]]==
+
===[[apk.lua]]===
 
Functions to load/unload apk packages
 
Functions to load/unload apk packages
 
* repository
 
* repository
Line 16: Line 17:
 
* is_installed
 
* is_installed
  
==[[authenticator.lua]]==
+
===[[date.lua]]===
Authentication module.  This module loads one sub-authenticator module and exposes its functionality via '''auth''' table.
 
* authenticate
 
* get_userinfo
 
* get_userinfo_roles
 
* list_users
 
* change_settings
 
* new_settings
 
* delete_user
 
 
 
==[[authenticator-plaintext.lua]]==
 
Authentication sub-module for plaintext database
 
* list_fields
 
* read_field
 
* delete_field
 
* write_entry
 
* read_entry
 
* delete_entry
 
 
 
==[[controllerfunctions.lua]]==
 
Controller helper functions
 
* handle_clientdata
 
* handle_form
 
* handle_startstop
 
 
 
==[[date.lua]]==
 
 
Date and time functions
 
Date and time functions
 
To be used with os.time() and os.date()
 
To be used with os.time() and os.date()
Line 63: Line 39:
 
***Months of the Year
 
***Months of the Year
  
== [[format.lua]] ==
+
=== [[format.lua]] ===
 
Used to format tables and strings
 
Used to format tables and strings
 
*dostounix - converts dos line endings to unix
 
*dostounix - converts dos line endings to unix
Line 85: Line 61:
 
*set_ini_section
 
*set_ini_section
  
== [[fs.lua]] ==
+
=== [[fs.lua]] ===
 
Used for various filesystem specific functions
 
Used for various filesystem specific functions
 
*is_dir  - test if the path is a directory
 
*is_dir  - test if the path is a directory
Line 98: Line 74:
 
*stat
 
*stat
  
== [[html.lua]] ==
+
=== [[html.lua]] ===
 
Functions used by web_elements.lua. Written by nangel for ACF.
 
Functions used by web_elements.lua. Written by nangel for ACF.
 
*cookie.set -creates a cookie to be used with ACF
 
*cookie.set -creates a cookie to be used with ACF
Line 120: Line 96:
 
**form.stop
 
**form.stop
  
== menubuilder.lua ==
+
=== [[processinfo.lua]] ===
 +
*package_version
 +
*process_botsequence
 +
*daemoncontrol
 +
*pidof - find the process ID of a running program
 +
 
 +
=== [[validator.lua]] ===
 +
This contains multiple different functions that each will validate input in there own way.
 +
*is_string
 +
*is_boolean
 +
*is_number
 +
*is_ipv4 - test if this is a valid ipv4 address
 +
*is_partial_ipv4
 +
*is_mac - test to see if this is a valid mac address
 +
*is_integer - is the number and int
 +
*is_integer_in_range - is the int in the range of numbers
 +
*is_port - the the number in the ip port range
 +
*is_valid_filename
 +
 
 +
== ACF-specific Libraries (acf-core) ==
 +
===[[authenticator.lua]]===
 +
Authentication module.  This module loads one sub-authenticator module and exposes its functionality via '''auth''' table.
 +
* authenticate
 +
* get_userinfo
 +
* get_userinfo_roles
 +
* list_users
 +
* change_settings
 +
* new_settings
 +
* delete_user
 +
 
 +
===[[authenticator-plaintext.lua]]===
 +
Authentication sub-module for plaintext database
 +
* list_fields
 +
* read_field
 +
* delete_field
 +
* write_entry
 +
* read_entry
 +
* delete_entry
 +
 
 +
===[[controllerfunctions.lua]]===
 +
Controller helper functions
 +
* handle_clientdata
 +
* handle_form
 +
* handle_startstop
 +
 
 +
=== menubuilder.lua ===
 
Written by nangel for ACF
 
Written by nangel for ACF
 
*get_menuitems
 
*get_menuitems
  
== [[modelfunctions.lua]] ==
+
=== [[modelfunctions.lua]] ===
 
*getenabled
 
*getenabled
 
*startstop_service
 
*startstop_service
Line 134: Line 155:
 
*write_file_with_audit
 
*write_file_with_audit
  
== [[processinfo.lua]] ==
+
=== [[roles.lua]] ===
*package_version
 
*process_botsequence
 
*daemoncontrol
 
*pidof - find the process ID of a running program
 
 
 
== [[roles.lua]] ==
 
 
*list_controllers
 
*list_controllers
 
*get_controllers
 
*get_controllers
Line 153: Line 168:
 
*set_role_perm
 
*set_role_perm
  
== [[session.lua]] ==
+
=== [[session.lua]] ===
 
Written by nangel for ACF.
 
Written by nangel for ACF.
 
*random_hash - will create a bash64-like hash from /dev/urandom
 
*random_hash - will create a bash64-like hash from /dev/urandom
Line 166: Line 181:
 
*expired_events - delete the expired invalid attempts and saved sessions
 
*expired_events - delete the expired invalid attempts and saved sessions
  
== [[validator.lua]] ==
+
=== [[viewfunctions.lua]] ===
This contains multiple different functions that each will validate input in there own way.
 
*is_string
 
*is_boolean
 
*is_number
 
*is_ipv4 - test if this is a valid ipv4 address
 
*is_partial_ipv4
 
*is_mac - test to see if this is a valid mac address
 
*is_integer - is the number and int
 
*is_integer_in_range - is the int in the range of numbers
 
*is_port - the the number in the ip port range
 
*is_valid_filename
 
 
 
== [[viewfunctions.lua]] ==
 
 
displayinfo - obsolete
 
displayinfo - obsolete
 
displaymanagement - obsolete
 
displaymanagement - obsolete

Revision as of 08:53, 29 June 2010

ACF Libraries

Because of using lua, a very small language, the need arises to build everything from scratch. This can lead to some confusion, apprehension, or just feeling overwhelmed. Here is documentation on what we have now in the form of libraries and common functions. We hope to build some more and use this information to get the juices flowing in regard to ACF.

Some of these are lua libs or ones written for ACF. We are also using as a standard the lposix library which is documented here LPOSIX

Generic Libraries (acf-lib)

apk.lua

Functions to load/unload apk packages

  • repository
  • get_all
  • get_loaded
  • get_available
  • delete
  • install
  • is_installed

date.lua

Date and time functions To be used with os.time() and os.date()

  • date_to_seconds - Takes a date table and converts it to seconds from 1970
  • seconds_to_date - Takes table of seconds values and converts to a date sorted smallest to largest
  • string_to_table
  • date_diff - Takes two values of seconds and gives back the difference
  • num_month_name - Month number to name of month
  • num_month_name_abr - Month number to abr of month
  • name_month_num - Month name to number
  • abr_month_num - Month abbreviation to number
  • num_dow_name - Day of Week number to name
  • num_dow_name_abr - Day of week number to abbreviation
  • name_dow_num - Day of Week full name to number
  • abr_dow_num - Day of week abbreviation to number
  • what_tz - Checks to see what timezone the box is set to; /etc/TZ
  • change_tz - Changes the timezone
    • Tables are included with this information
      • Timezones
      • Days of Week
      • Months of the Year

format.lua

Used to format tables and strings

  • dostounix - converts dos line endings to unix
  • parse_lines - takes out the blank and commented lines
  • parse_linesandwords
  • parse_configfile
  • search_replace - will go through a file or table and search and replace
  • search_for_lines - will go through a file and return a table with matches
  • cap_begin_word - will capitalize beginning of words
  • string_to_table - takes a delimited string and turns it into a table
  • md5sum_string
  • expand_bash_syntax_vars
  • replace_line
  • insert_line
  • get_line
  • opts_to_table
  • table_to_opts
  • update_ini_file
  • parse_ini_file
  • get_ini_section
  • set_ini_section

fs.lua

Used for various filesystem specific functions

  • is_dir - test if the path is a directory
  • is_file - test if the path is a file
  • is_link - test if the path is a link
  • create_file
  • read_file / read_file_as_array - will read a file as a string / array
  • write_file - replace contents of a file
  • write_line_file - appends lines to a file
  • md5sum_file - give a hash, md5sum of a file
  • find - Give a path and a search string and iterate over matching files
  • stat

html.lua

Functions used by web_elements.lua. Written by nangel for ACF.

  • cookie.set -creates a cookie to be used with ACF
  • cookie.unset
  • html_escape - will escape html encoded strings
  • entity
  • link
  • cfe_unpack - returns the whole of a cfe as a string. Great for troubleshooting.
  • Form setup functions - also are the "types" of cfe. See ACF_core_principles
    • form.text
    • form.longtext
    • form.password
    • form.hidden
    • form.submit
    • form.action
    • form.file
    • form.image
    • form.select
    • form.checkbox
    • form.start
    • form.stop

processinfo.lua

  • package_version
  • process_botsequence
  • daemoncontrol
  • pidof - find the process ID of a running program

validator.lua

This contains multiple different functions that each will validate input in there own way.

  • is_string
  • is_boolean
  • is_number
  • is_ipv4 - test if this is a valid ipv4 address
  • is_partial_ipv4
  • is_mac - test to see if this is a valid mac address
  • is_integer - is the number and int
  • is_integer_in_range - is the int in the range of numbers
  • is_port - the the number in the ip port range
  • is_valid_filename

ACF-specific Libraries (acf-core)

authenticator.lua

Authentication module. This module loads one sub-authenticator module and exposes its functionality via auth table.

  • authenticate
  • get_userinfo
  • get_userinfo_roles
  • list_users
  • change_settings
  • new_settings
  • delete_user

authenticator-plaintext.lua

Authentication sub-module for plaintext database

  • list_fields
  • read_field
  • delete_field
  • write_entry
  • read_entry
  • delete_entry

controllerfunctions.lua

Controller helper functions

  • handle_clientdata
  • handle_form
  • handle_startstop

menubuilder.lua

Written by nangel for ACF

  • get_menuitems

modelfunctions.lua

  • getenabled
  • startstop_service
  • getstatus
  • getfiledetails
  • setfiledetails
  • validateselect
  • validatemulti
  • write_file_with_audit

roles.lua

  • list_controllers
  • get_controllers
  • get_controllers_func
  • get_controllers_view
  • list_default_roles
  • list_roles
  • list_all_roles
  • get_roles_perm
  • get_role_perm
  • delete_role
  • set_role_perm

session.lua

Written by nangel for ACF.

  • random_hash - will create a bash64-like hash from /dev/urandom
  • hash_ip_addr - create a hash encoded ip address
  • ip_addr_from_hash - take the hash encoded ip and give me the ip
  • serialize - go through a table or set of tables and serialize
  • save_session - save the session table
  • load_session - load a saved session table
  • unlink_session - delete a saved session table
  • record_event - record an invalid login attempt
  • count_events - check if there are too many invalid attempts
  • expired_events - delete the expired invalid attempts and saved sessions

viewfunctions.lua

displayinfo - obsolete displaymanagement - obsolete

  • displayitem
  • displayformitem
  • displayform
  • displaycommandresults