Annotation of loncom/loncapa_apache.conf, revision 1.7

1.1       harris41    1: ##
                      2: ## loncapa_apache.conf -- Apache HTTP LON-CAPA configuration file
                      3: ##
1.7     ! bowersj2    4: ## $Id: loncapa_apache.conf,v 1.2 2002/05/16 00:06:23 harris41 Exp $
1.1       harris41    5: ##
                      6: ## 1/11/2002 - Scott Harrison
                      7: ## 2/19/2002 - Scott Harrison
                      8: ## 2/28/2002 - Scott Harrison
                      9: ## 3/2/2002 - Scott Harrison
                     10: ## 5/12/2002 - Scott Harrison
                     11: 
                     12: #
                     13: # LON-CAPA Section (extensions to httpd.conf daemon configuration)
                     14: #
1.7     ! bowersj2   15: # ======================================================================== User
1.1       harris41   16: 
                     17: DocumentRoot "/home/httpd/html"
                     18: 
                     19: # ======================================================================== User
                     20: 
                     21: User www
                     22: Group www
                     23: 
                     24: # ======================================================= Shared Object Modules
                     25: 
                     26: LoadModule perl_module       modules/libperl.so
                     27: AddModule mod_perl.c
                     28: 
                     29: # =============================================================== Miscellaneous
                     30: 
                     31: ServerAdmin korte@lite.msu.edu
                     32: ExtendedStatus On
                     33: 
                     34: #
                     35: # LON-CAPA Section (extensions to srm.conf name space servicing)
                     36: #
                     37: # ===================================================================== Aliases
                     38: 
                     39: Alias /prtspool/ /home/httpd/prtspool/
                     40: 
                     41: # ================================================================= Directories
                     42: 
                     43: # ------------------------------------------------------------- Access Handlers
                     44: 
                     45: <LocationMatch "^/res.*">
                     46: PerlAccessHandler       Apache::lonacc
                     47: PerlHeaderParserHandler Apache::lonrep
                     48: ErrorDocument     403 /adm/login
                     49: ErrorDocument     404 /adm/notfound.html
                     50: ErrorDocument     406 /adm/roles
                     51: ErrorDocument	  500 /adm/errorhandler
                     52: </LocationMatch>
                     53: 
                     54: <LocationMatch "^/priv.*">
                     55: PerlAccessHandler Apache::loncacc
                     56: SetHandler        perl-script
                     57: PerlHandler       Apache::lonconstruct
                     58: ErrorDocument     403 /adm/login
                     59: ErrorDocument     404 /adm/notfound.html
                     60: ErrorDocument     406 /adm/unauthorized.html
                     61: ErrorDocument	  500 /adm/errorhandler
                     62: </LocationMatch>
                     63: 
                     64: <LocationMatch "^/raw.*">
                     65: PerlAccessHandler Apache::lonracc
                     66: </LocationMatch>
                     67: 
                     68: <LocationMatch "^/\~.*">
                     69: PerlAccessHandler Apache::loncacc
                     70: ErrorDocument     403 /adm/login
                     71: ErrorDocument     404 /adm/notfound.html
                     72: ErrorDocument     406 /adm/unauthorized.html
                     73: ErrorDocument	  500 /adm/errorhandler
                     74: AllowOverride None
                     75: </LocationMatch>
                     76: 
                     77: # ------------------------------------------------------------------------- RAT
                     78: 
                     79: <LocationMatch "^/\~.*\.sequence$">
                     80: SetHandler perl-script
                     81: PerlHandler Apache::lonratedt
                     82: </LocationMatch>
                     83: 
                     84: <LocationMatch "^/\~.*\.page$">
                     85: SetHandler perl-script
                     86: PerlHandler Apache::lonratedt
                     87: </LocationMatch>
                     88: 
                     89: <LocationMatch "^/\~.*\/ratserver$">
                     90: SetHandler perl-script
                     91: PerlHandler Apache::lonratsrv
                     92: </LocationMatch>
                     93: 
                     94: <Location /adm/ratparms>
                     95: PerlAccessHandler       Apache::lonacc
                     96: SetHandler perl-script
                     97: PerlHandler Apache::lonratparms
                     98: ErrorDocument     403 /adm/login
                     99: ErrorDocument	  500 /adm/errorhandler
                    100: </Location>
                    101: 
                    102: # --------------------------------------------- Resource Space Content Handlers
                    103: 
                    104: <LocationMatch "^/res.*/$">
                    105: SetHandler perl-script
                    106: PerlHandler Apache::lonindexer
                    107: </LocationMatch>
                    108: 
                    109: <LocationMatch "^/(res|\~).*\.tex$">
                    110: SetHandler perl-script
                    111: PerlHandler Apache::lontex
                    112: </LocationMatch>
                    113: 
                    114: <LocationMatch "^/res/.*\.page$>
                    115: SetHandler perl-script
                    116: PerlHandler Apache::lonpage
                    117: </LocationMatch>
                    118: 
                    119: <LocationMatch "^/res/.*\.sequence$>
                    120: SetHandler perl-script
                    121: PerlHandler Apache::lonsequence
                    122: </LocationMatch>
                    123: 
1.7     ! bowersj2  124: <LocationMatch "^/res/.*\.meta$>
1.1       harris41  125: SetHandler perl-script
                    126: PerlHandler Apache::lonmeta
                    127: </LocationMatch>
                    128: 
                    129: <LocationMatch "^/(res|\~).*\.(xml|html|htm|xhtml|xhtm)$">
                    130: SetHandler perl-script
                    131: PerlHandler Apache::lonxml
                    132: </LocationMatch>
                    133: 
                    134: <LocationMatch "^/(res|\~).*\.(problem|exam|quiz|assess|survey|form|library)$">
                    135: SetHandler perl-script
                    136: PerlHandler Apache::lonhomework
                    137: </LocationMatch>
                    138: 
                    139: <LocationMatch "^/adm/wrapper/">
                    140: PerlAccessHandler       Apache::lonacc
                    141: SetHandler perl-script
                    142: PerlHandler Apache::lonwrapper
                    143: ErrorDocument     403 /adm/login
                    144: ErrorDocument	  500 /adm/errorhandler
                    145: </LocationMatch>
                    146: 
                    147: # -------------------------------------------------------------- Admin Programs
                    148: 
                    149: <Location /adm/statistics>
                    150: PerlAccessHandler       Apache::lonacc
                    151: SetHandler perl-script
                    152: PerlHandler Apache::lonstatistics
                    153: ErrorDocument     403 /adm/login
                    154: ErrorDocument	  500 /adm/errorhandler
                    155: </Location>
                    156: 
                    157: <Location /adm/roles>
                    158: PerlAccessHandler       Apache::lonacc
                    159: SetHandler perl-script
                    160: PerlHandler Apache::lonroles
                    161: ErrorDocument     403 /adm/login
                    162: ErrorDocument	  500 /adm/errorhandler
                    163: </Location>
                    164: 
                    165: <Location /adm/login>
                    166: SetHandler perl-script
                    167: PerlHandler Apache::lonlogin
                    168: </Location>
                    169: 
                    170: <Location /adm/logout>
                    171: PerlAccessHandler       Apache::lonacc
                    172: SetHandler perl-script
                    173: PerlHandler Apache::lonlogout
                    174: ErrorDocument     403 /adm/login
                    175: </Location>
                    176: 
                    177: <Location /adm/authenticate>
                    178: SetHandler perl-script
                    179: PerlHandler Apache::lonauth
                    180: </Location>
                    181: 
                    182: <Location /adm/annotations>
                    183: PerlAccessHandler       Apache::lonacc
                    184: SetHandler perl-script
                    185: PerlHandler Apache::admannotations
                    186: ErrorDocument     403 /adm/login
                    187: ErrorDocument	  500 /adm/errorhandler
                    188: </Location>
                    189: 
                    190: <Location /adm/bookmarks>
                    191: PerlAccessHandler       Apache::lonacc
                    192: SetHandler perl-script
                    193: PerlHandler Apache::admbookmarks
                    194: ErrorDocument     403 /adm/login
                    195: ErrorDocument	  500 /adm/errorhandler
                    196: </Location>
                    197: 
                    198: <Location /adm/flip>
                    199: PerlAccessHandler       Apache::lonacc
                    200: SetHandler perl-script
                    201: PerlHandler Apache::lonpageflip
                    202: ErrorDocument     406 /adm/roles
                    203: ErrorDocument     403 /adm/login
                    204: ErrorDocument	  500 /adm/errorhandler
                    205: </Location>
                    206: 
                    207: <Location /adm/ambiguous>
                    208: PerlAccessHandler       Apache::lonacc
                    209: SetHandler perl-script
                    210: PerlHandler Apache::lonambiguous
                    211: ErrorDocument     403 /adm/login
                    212: ErrorDocument	  500 /adm/errorhandler
                    213: </Location>
                    214: 
                    215: <Location /adm/email>
                    216: PerlAccessHandler       Apache::lonacc
                    217: SetHandler perl-script
                    218: PerlHandler Apache::lonmsg
                    219: ErrorDocument     403 /adm/login
                    220: ErrorDocument	  500 /adm/errorhandler
                    221: </Location>
                    222: 
                    223: <Location /adm/parmset>
                    224: PerlAccessHandler       Apache::lonacc
                    225: SetHandler perl-script
                    226: PerlHandler Apache::lonparmset
                    227: ErrorDocument     403 /adm/login
                    228: ErrorDocument     406 /adm/roles
                    229: ErrorDocument	  500 /adm/errorhandler
                    230: </Location>
                    231: 
                    232: <Location /adm/grades>
                    233: PerlAccessHandler       Apache::lonacc
                    234: SetHandler perl-script
                    235: PerlHandler Apache::grades
                    236: ErrorDocument     403 /adm/login
                    237: ErrorDocument     406 /adm/roles
                    238: ErrorDocument	  500 /adm/errorhandler
                    239: </Location>
                    240: 
                    241: <Location /adm/createcourse>
                    242: PerlAccessHandler       Apache::lonacc
                    243: SetHandler perl-script
                    244: PerlHandler Apache::loncreatecourse
                    245: ErrorDocument     403 /adm/login
                    246: ErrorDocument     406 /adm/roles
                    247: ErrorDocument	  500 /adm/errorhandler
                    248: </Location>
                    249: 
                    250: <Location /adm/createuser>
                    251: PerlAccessHandler       Apache::lonacc
                    252: SetHandler perl-script
                    253: PerlHandler Apache::loncreateuser
                    254: ErrorDocument     403 /adm/login
                    255: ErrorDocument     406 /adm/roles
                    256: ErrorDocument	  500 /adm/errorhandler
                    257: </Location>
                    258: 
                    259: <Location /adm/publish>
                    260: PerlAccessHandler       Apache::lonacc
                    261: SetHandler perl-script
                    262: PerlHandler Apache::lonpublisher
                    263: ErrorDocument     403 /adm/login
                    264: ErrorDocument     404 /adm/notfound.html
                    265: ErrorDocument     406 /adm/unauthorized.html
                    266: ErrorDocument	  500 /adm/errorhandler
                    267: </Location>
                    268: 
                    269: <LocationMatch "^/\~.*/$">
                    270: PerlAccessHandler       Apache::loncacc
                    271: SetHandler perl-script
                    272: PerlHandler Apache::lonpubdir
                    273: ErrorDocument     403 /adm/login
                    274: ErrorDocument     404 /adm/notfound.html
                    275: ErrorDocument     406 /adm/unauthorized.html
                    276: ErrorDocument	  500 /adm/errorhandler
                    277: </LocationMatch>
                    278: 
                    279: <Location /adm/pubdir>
                    280: PerlAccessHandler       Apache::lonacc
                    281: SetHandler perl-script
                    282: PerlHandler Apache::lonpubdir
                    283: ErrorDocument     403 /adm/login
                    284: ErrorDocument     404 /adm/notfound.html
                    285: ErrorDocument     406 /adm/unauthorized.html
                    286: ErrorDocument	  500 /adm/errorhandler
                    287: </Location>
                    288: 
                    289: <Location /adm/retrieve>
                    290: PerlAccessHandler       Apache::lonacc
                    291: SetHandler perl-script
                    292: PerlHandler Apache::lonretrieve
                    293: ErrorDocument     403 /adm/login
                    294: ErrorDocument     404 /adm/notfound.html
                    295: ErrorDocument     406 /adm/unauthorized.html
                    296: ErrorDocument	  500 /adm/errorhandler
                    297: </Location>
                    298: 
                    299: <Location /adm/cfile>
                    300: PerlAccessHandler       Apache::lonacc
                    301: SetHandler perl-script
                    302: PerlHandler Apache::loncfile
                    303: ErrorDocument     403 /adm/login
                    304: ErrorDocument     404 /adm/notfound.html
                    305: ErrorDocument     406 /adm/unauthorized.html
                    306: ErrorDocument	  500 /adm/errorhandler
                    307: </Location>
                    308: 
                    309: <Location /adm/diff>
                    310: PerlAccessHandler       Apache::lonacc
                    311: SetHandler perl-script
                    312: PerlHandler Apache::londiff
                    313: ErrorDocument     403 /adm/login
                    314: ErrorDocument     404 /adm/notfound.html
                    315: ErrorDocument     406 /adm/unauthorized.html
                    316: ErrorDocument	  500 /adm/errorhandler
                    317: </Location>
                    318: 
                    319: <Location /adm/upload>
                    320: PerlAccessHandler       Apache::lonacc
                    321: SetHandler perl-script
                    322: PerlHandler Apache::lonupload
                    323: ErrorDocument     403 /adm/login
                    324: ErrorDocument     404 /adm/notfound.html
                    325: ErrorDocument     406 /adm/unauthorized.html
                    326: ErrorDocument	  500 /adm/errorhandler
                    327: </Location>
                    328: 
                    329: <Location /adm/assesscalc>
                    330: PerlAccessHandler       Apache::lonacc
                    331: SetHandler perl-script
                    332: PerlHandler Apache::lonspreadsheet
                    333: ErrorDocument     403 /adm/login
                    334: ErrorDocument     406 /adm/roles
                    335: ErrorDocument	  500 /adm/errorhandler
                    336: </Location>
                    337: 
                    338: <Location /adm/studentcalc>
                    339: PerlAccessHandler       Apache::lonacc
                    340: SetHandler perl-script
                    341: PerlHandler Apache::lonspreadsheet
                    342: ErrorDocument     403 /adm/login
                    343: ErrorDocument     406 /adm/roles
                    344: ErrorDocument	  500 /adm/errorhandler
                    345: </Location>
                    346: 
                    347: <Location /adm/classcalc>
                    348: PerlAccessHandler       Apache::lonacc
                    349: SetHandler perl-script
                    350: PerlHandler Apache::lonspreadsheet
                    351: ErrorDocument     403 /adm/login
                    352: ErrorDocument     406 /adm/roles
                    353: ErrorDocument	  500 /adm/errorhandler
                    354: </Location>
                    355: 
                    356: <Location /adm/chart>
                    357: PerlAccessHandler       Apache::lonacc
                    358: SetHandler perl-script
                    359: PerlHandler Apache::lonchart
                    360: ErrorDocument     403 /adm/login
                    361: ErrorDocument     406 /adm/roles
                    362: ErrorDocument	  500 /adm/errorhandler
                    363: </Location>
                    364: 
                    365: <Location /adm/dropadd>
                    366: PerlAccessHandler       Apache::lonacc
                    367: SetHandler perl-script
                    368: PerlHandler Apache::londropadd
                    369: ErrorDocument     403 /adm/login
                    370: ErrorDocument     406 /adm/roles
                    371: ErrorDocument	  500 /adm/errorhandler
                    372: </Location>
                    373: 
                    374: <Location /adm/printout>
                    375: PerlAccessHandler       Apache::lonacc
                    376: SetHandler perl-script
                    377: PerlHandler Apache::lonprintout
                    378: ErrorDocument     403 /adm/login
                    379: ErrorDocument	  500 /adm/errorhandler
                    380: </Location>
                    381: 
                    382: <Location /adm/feedback>
                    383: PerlAccessHandler       Apache::lonacc
                    384: SetHandler perl-script
                    385: PerlHandler Apache::lonfeedback
                    386: ErrorDocument     403 /adm/login
                    387: ErrorDocument	  500 /adm/errorhandler
                    388: </Location>
                    389: 
                    390: <Location /adm/evaluate>
                    391: PerlAccessHandler       Apache::lonacc
                    392: SetHandler perl-script
                    393: PerlHandler Apache::lonevaluate
                    394: ErrorDocument     403 /adm/login
                    395: ErrorDocument	  500 /adm/errorhandler
                    396: </Location>
                    397: 
                    398: <Location /adm/preferences>
                    399: PerlAccessHandler       Apache::lonacc
                    400: SetHandler perl-script
                    401: PerlHandler Apache::lonpreferences
                    402: ErrorDocument     403 /adm/login
                    403: ErrorDocument	  500 /adm/errorhandler
                    404: </Location>
                    405: 
                    406: <Location /adm/assignments>
                    407: PerlAccessHandler       Apache::lonacc
                    408: SetHandler perl-script
                    409: PerlHandler Apache::lonassignments
                    410: ErrorDocument     403 /adm/login
                    411: ErrorDocument     406 /adm/roles
                    412: ErrorDocument	  500 /adm/errorhandler
                    413: </Location>
                    414: 
                    415: <Location /adm/communicate>
                    416: PerlAccessHandler       Apache::lonacc
                    417: SetHandler perl-script
                    418: PerlHandler Apache::loncommunicate
                    419: ErrorDocument     403 /adm/login
                    420: ErrorDocument	  500 /adm/errorhandler
                    421: </Location>
                    422: 
                    423: <Location /adm/searchcat>
                    424: PerlAccessHandler       Apache::lonacc
                    425: SetHandler perl-script
                    426: PerlHandler Apache::lonsearchcat
                    427: ErrorDocument     403 /adm/login
                    428: ErrorDocument	  500 /adm/errorhandler
                    429: </Location>
                    430: 
                    431: <Location /adm/navmaps>
                    432: PerlAccessHandler       Apache::lonacc
                    433: SetHandler perl-script
                    434: PerlHandler Apache::lonnavmaps
                    435: ErrorDocument     403 /adm/login
                    436: ErrorDocument     406 /adm/roles
                    437: ErrorDocument	  500 /adm/errorhandler
                    438: </Location>
                    439: 
                    440: <Location /adm/groupsort>
                    441: PerlAccessHandler	Apache::lonacc
                    442: SetHandler perl-script
                    443: PerlHandler Apache::groupsort
                    444: ErrorDocument     403 /adm/login
                    445: ErrorDocument	  500 /adm/errorhandler
                    446: </Location>
                    447: 
                    448: <Location /adm/errorhandler>
                    449: SetHandler perl-script
                    450: PerlHandler Apache::lonerrorhandler
                    451: </Location>
                    452: 
1.7     ! bowersj2  453: <LocationMatch "^/adm/help/.*\.hlp$">
        !           454: SetHandler perl-script
        !           455: PerlHandler Apache::lonhelp
        !           456: </LocationMatch>
        !           457: 
1.1       harris41  458: # ------------------------------------------------- Backdoor Adm Tests/Programs
                    459: 
                    460: <Location /cgi-bin/loncron.pl>
                    461: AuthName "LON-CAPA Network Administration"
                    462: AuthType Basic
                    463: AuthUserFile /home/httpd/lonTabs/htpasswd
                    464: require user lonadm
                    465: </Location>
                    466: 
                    467: <Location /cgi-bin/lonversions.pl>
                    468: AuthName "LON-CAPA Network Administration"
                    469: AuthType Basic
                    470: AuthUserFile /home/httpd/lonTabs/htpasswd
                    471: require user lonadm
                    472: </Location>
                    473: 
                    474: <Location /cgi-bin/clusterstatus.pl>
                    475: AuthName "LON-CAPA Network Administration"
                    476: AuthType Basic
                    477: AuthUserFile /home/httpd/lonTabs/htpasswd
                    478: require user lonadm
                    479: </Location>
                    480: 
                    481: <Location /cgi-bin/metadata_keywords.pl>
                    482: AuthName "LON-CAPA Network Administration"
                    483: AuthType Basic
                    484: AuthUserFile /home/httpd/lonTabs/htpasswd
                    485: require user lonadm
                    486: </Location>
                    487: 
                    488: <Location /adm/test>
                    489: AuthName "LON-CAPA Network Administration"
                    490: AuthType Basic
                    491: AuthUserFile /home/httpd/lonTabs/htpasswd
                    492: require user lonadm
                    493: SetHandler perl-script
                    494: PerlAccessHandler Apache::lonacc
                    495: PerlHandler Apache::lontest
                    496: </Location>
                    497: 
                    498: # ------------------------------------------------------- Shutting down a child
                    499: 
                    500: PerlChildExitHandler Apache::lonnet::goodbye
                    501: 
                    502: #
                    503: # LON-CAPA Section (extensions to access.conf permission configuration)
                    504: #
                    505: # =========================================================== Directory Options
                    506: 
                    507: # Start out with "no"
                    508: 
                    509: <Directory />
                    510: Options None
                    511: AllowOverride None
                    512: </Directory>
                    513: 
                    514: # Yes to symbolic links and server-side includes
                    515: 
                    516: <Directory /home/httpd/html>
                    517: Options Includes FollowSymLinks
                    518: AllowOverride None
                    519: order allow,deny
                    520: allow from all
                    521: </Directory>
                    522: 
                    523: # If it is in cgi-bin, then it can be executed as a CGI script.
                    524: 
                    525: <Directory /home/httpd/cgi-bin>
                    526: AllowOverride None
                    527: Options ExecCGI
                    528: </Directory>
                    529: 
                    530: # ============================================================= Access Handlers
                    531: 
                    532: # ------------------------------------------------- Allow server-status reports
                    533: <Location /server-status>
                    534: SetHandler server-status
                    535: AuthName "LON-CAPA Network Administration"
                    536: AuthType Basic
                    537: AuthUserFile /home/httpd/lonTabs/htpasswd
                    538: require user lonadm
                    539: </Location>
                    540: 
                    541: # ------------------------ Allow LON-CAPA "low-level" connection status reports
                    542: <Location /lon-status>
                    543: AuthName "LON-CAPA Network Administration"
                    544: AuthType Basic
                    545: AuthUserFile /home/httpd/lonTabs/htpasswd
                    546: require user lonadm
                    547: </Location>
                    548: 
                    549: # ------------------- Allow access to local system documentation from localhost
                    550: Alias /doc /usr/doc
                    551: <Directory /usr/doc>
                    552: order deny,allow
                    553: deny from all
                    554: allow from localhost
                    555: Options Indexes FollowSymLinks
                    556: </Directory>
                    557: 
                    558: # ******** THESE "SHOULD" NEVER BE ALTERED BY THE USER ************************
                    559: # ====================================== Internal Settings / Perl Configuration
                    560: 
                    561: PerlSetVar       lonIDsDir    /home/httpd/lonIDs
                    562: PerlSetVar       lonTabDir    /home/httpd/lonTabs
                    563: PerlSetVar       lonUsersDir  /home/httpd/lonUsers
                    564: PerlSetVar       lonIconsURL  /adm/lonIcons
                    565: PerlSetVar       londPort     5663
                    566: PerlSetVar       lonSysEMail  korte@lite.msu.edu
                    567: PerlSetVar       lonDaemons   /home/httpd/perl
                    568: PerlSetVar       lonSockDir   /home/httpd/sockets
                    569: PerlSetVar       lonDocRoot   /home/httpd/html
                    570: PerlSetVar       lonIncludes  /home/httpd/html/res/adm/includes
                    571: PerlSetVar       lonBrowsDet  netscape:mozilla:msie:mozilla\/(\d+\.\d+)\s:9999&explorer:msie:netscape:msie\s(\d+\.\d+)\;:9999&mozilla:mozilla\/[5-9]:msie:mozilla\/(\d+\.\d+)\s:9999&amaya:amaya:mozilla:V(\d+\.\d+)\s:1
1.2       harris41  572: 
                    573: # -----------------------------------------------------------------------------
                    574: # NOTE: lonSqlAccess key is the password for the MySQL user
                    575: # www@localhost.  This value must always be "localhostkey".
                    576: # The only security risk occurs when somebody logs in as 'www' on your system
                    577: # (in which case you have much bigger problems than whether or not they
                    578: # can access the non-authoritative loncapa database on your machine).
                    579: 
                    580: PerlSetVar       lonSqlAccess   localhostkey
                    581: 
                    582: # -----------------------------------------------------------------------------
                    583: 
                    584: 
1.7     ! bowersj2  585: # ================================================== Initiate mod_perl starting
1.2       harris41  586: 
                    587: Include conf/loncapa.conf
1.1       harris41  588: 
                    589: # ================================================== Initiate mod_perl starting
                    590: 
                    591: PerlRequire      conf/startup.pl
                    592: PerlFreshRestart On

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>