<!-- 
RSS generated by JIRA (1001.0.0-SNAPSHOT#100246-sha1:7a5c50119eb0633d306e14180817ddef5e80c75d) at Thu Feb 08 23:09:53 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary add field=key&field=summary to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>FOLIO Jira</title>
    <link>https://folio-org.atlassian.net</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>1001.0.0-SNAPSHOT</version>
        <build-number>100246</build-number>
        <build-date>07-02-2024</build-date>
    </build-info>

<item>
            <title>[FOLIO-971] How does an administrator add new apps to the App Store?</title>
                <link>https://folio-org.atlassian.net/browse/FOLIO-971</link>
                <project id="10290" key="FOLIO">FOLIO</project>
                    <description>&lt;p&gt;How does an administrator add new apps to the App Store?  By specifying URLs that point to GitHub repositories?  What do the UX and back-end look like for this?  Later there will have to be a distribution system of some kind to make this process less manual; are there any implications of that for the current design?&lt;/p&gt;</description>
                <environment></environment>
        <key id="79383">FOLIO-971</key>
            <summary>How does an administrator add new apps to the App Store?</summary>
                <type id="10003" iconUrl="https://folio-org.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10318?size=medium">Task</type>
                                            <priority id="10002" iconUrl="https://dev.folio.org/assets/jira-priority/jira-p3.svg">P3</priority>
                        <status id="1" iconUrl="https://folio-org.atlassian.net/images/icons/statuses/open.png" description="The issue is open and ready for the assignee to start work on it.">Open</status>
                    <statusCategory id="2" key="new" colorName="blue-gray"/>
                                    <resolution id="-1">Unresolved</resolution>
                                                        <assignee accountid="-1">Unassigned</assignee>
                                                                <reporter accountid="70121:8d96963c-ce4c-478d-9023-2de35bc14b67">Nassib Nassar</reporter>
                                    <labels>
                            <label>devmtg-201801</label>
                    </labels>
                <created>Wed, 6 Dec 2017 20:53:26 +0000</created>
                <updated>Fri, 18 Jan 2019 12:47:58 +0000</updated>
                                                                                <due></due>
                            <votes>0</votes>
                                    <watches>9</watches>
                                                                <comments>
                                                            <comment id="191030" author="5f9abc1eb45b2e007453f423" created="Fri, 8 Dec 2017 01:09:31 +0000"  >&lt;p&gt;An &quot;app store&quot; pointing to source code repositories seems a little odd.   Why not to actual application artifacts?  Perhaps a distribution model not so dissimilar to linux-based repositories.   For example,  an &quot;official&quot; core FOLIO application repository (&quot;core/base&quot;) and a user/community-contributed repository (user-contrib) as well as the ability to add third-party or private repositories similar in concept to adding third-party yum or apt repositories.    Also, additional possibilities of separate &lt;br/&gt;
&quot;stable&quot; vs &quot;experimental&quot; repositories, etc. &lt;/p&gt;</comment>
                                                            <comment id="191033" author="70121:8d96963c-ce4c-478d-9023-2de35bc14b67" created="Fri, 8 Dec 2017 02:50:02 +0000"  >&lt;p&gt;I wasn&apos;t very clear.  So I&apos;m assuming that a distribution model might not be ready for the first &quot;release&quot; of the app store, but maybe that is not a fair assumption.&lt;/p&gt;

&lt;p&gt;If there is initially no distribution model, I imagine the app store needs some way to add new apps individually, and my first thought was that GitHub URLs might be easy for users to understand and enter/feed into an app store configuration.  Maybe there could be a metadata artifact that describes the app, in a well known location in each repository that the app store can find.&lt;/p&gt;

&lt;p&gt;In terms of a distribution model, I had in mind exactly the same linux-style model that you describe.&lt;/p&gt;</comment>
                                                            <comment id="191037" author="557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d" created="Fri, 8 Dec 2017 10:55:49 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=70121%3A8d96963c-ce4c-478d-9023-2de35bc14b67&quot; class=&quot;user-hover&quot; rel=&quot;70121:8d96963c-ce4c-478d-9023-2de35bc14b67&quot; data-account-id=&quot;70121:8d96963c-ce4c-478d-9023-2de35bc14b67&quot; accountid=&quot;70121:8d96963c-ce4c-478d-9023-2de35bc14b67&quot; rel=&quot;noreferrer&quot;&gt;Nassib Nassar&lt;/a&gt; I think a starting point for this analysis is the current model we have in place for:&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;Central Registry (&lt;a href=&quot;http://folio-registry.aws.indexdata.com&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;http://folio-registry.aws.indexdata.com&lt;/a&gt;) &amp;#8211; centralized FOLIO package metadata and dependency registry, integrated with FOLIO CI. CR deployment descriptors point to dist artifacts (maven/npm/docker)&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;FOLIO snapshots (&lt;a href=&quot;http://folio-snapshot.aws.indexdata.com&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;http://folio-snapshot.aws.indexdata.com&lt;/a&gt;) &amp;#8211; FOLIO vagrant distribution and AWS deployment constructed for daily snapshots of pre-selected Apps, with dependency resolution provided by CR&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Those systems are the most basic building blocks for FOLIO App Store. What&apos;s missing is:&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;a mechanism for dynamic selection of Apps &amp;#8211; here the main element is a module, along the lines of (now deprecated) &apos;okapi-stripes&apos;, which allows dynamic generation of FOLIO Stripes bundle, based on the admin&apos;s selection of Apps. Relevant here is the current work from Matt Jones on &apos;stripes-cli&apos;, which will serve as the foundation for said module.&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;App Store UI &amp;#8211; (possibly a FOLIO App) a graphical interface to the above module and selected Okapi tenant services&lt;/li&gt;
&lt;/ul&gt;
</comment>
                                                            <comment id="191040" author="5d1cd1e35e43080ce8bf881f" created="Fri, 8 Dec 2017 17:11:12 +0000"  >&lt;p&gt;As for adding new Stripes apps, you include them in a new version of your &apos;platform&apos; which is little more than a list of available apps presented as an npm package to readily facilitate pulling in the necessary dependencies. NB, per-tenant configuration does not specify versions of apps, the platform does. The tenant config chooses a subset of the platform to enable. This narrows the possible combinations of versions to the available platforms so we don&apos;t wind up in a situation where every deployment is unique. A unique combination can be offered to a tenant that needs it via a custom platform but that would be an explicit choice.&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10000" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummarycf">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10057" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Development Team</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10144"><![CDATA[Core: Platform]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10019" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|hzy4lr:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10020" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10024" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>[CHART] Date of First Response</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Fri, 8 Dec 2017 01:09:31 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                </customfields>
    </item>
</channel>
</rss>